summaryrefslogtreecommitdiff
path: root/tune/many.pl
diff options
context:
space:
mode:
authorKevin Ryde <user42@zip.com.au>2001-02-02 01:39:44 +0100
committerKevin Ryde <user42@zip.com.au>2001-02-02 01:39:44 +0100
commitedcbb6e038298e382d5494bf0162c75d5115c832 (patch)
tree80678c648ac935fbf6a929dbdcca83e4e8764125 /tune/many.pl
parent80a4028871d0f15cabe3bc3ffc59ae090a9b1d05 (diff)
downloadgmp-edcbb6e038298e382d5494bf0162c75d5115c832.tar.gz
* tests/devel/try.c: Partial rewrite, new scheme of function types,
allow result validation functions, add sqrtrem and jacobi testing. * tune/many.pl: Corresponding updates.
Diffstat (limited to 'tune/many.pl')
-rwxr-xr-xtune/many.pl46
1 files changed, 24 insertions, 22 deletions
diff --git a/tune/many.pl b/tune/many.pl
index 4d12b4ff8..6dcfff64d 100755
--- a/tune/many.pl
+++ b/tune/many.pl
@@ -211,8 +211,8 @@
#
# INTERNALS
#
-# The nonsense involving $ENV in the code below is some hooks used during
-# development to add additional functions temporarily.
+# The nonsense involving $ENV is some hooks used during development to add
+# additional functions temporarily.
#
#
# FUTURE
@@ -265,7 +265,7 @@ if (defined $ENV{directories}) { push @DIRECTORIES, @{$ENV{directories}} }
# set then it's used, otherwise plain args is used. "mp_limb_t
# carry" is appended for carry-in variants.
#
-# try - TRY_TYPE_ to use, defaulting to TRY_TYPE_fun with the function name
+# try - try.c TYPE_ to use, defaulting to TYPE_fun with the function name
# in upper case. "C" is appended for carry-in variants. Can be
# 'none' for no try program entry.
#
@@ -281,7 +281,6 @@ my @table =
'ret' => 'mp_limb_t',
'args' => 'mp_ptr wp, mp_srcptr xp, mp_srcptr yp, mp_size_t size',
'speed' => 'SPEED_ROUTINE_MPN_BINARY_N',
- 'try' => 'TRY_TYPE_AORS_N',
},
{
'regexp'=> 'aors_n',
@@ -289,7 +288,6 @@ my @table =
'ret' => 'mp_limb_t',
'args' => 'mp_ptr wp, mp_srcptr xp, mp_srcptr yp, mp_size_t size',
'speed' => 'SPEED_ROUTINE_MPN_BINARY_N',
- 'try' => 'TRY_TYPE_AORS_N',
},
{
@@ -298,7 +296,6 @@ my @table =
'args' => 'mp_ptr wp, mp_srcptr xp, mp_size_t size, mp_limb_t mult',
'speed' => 'SPEED_ROUTINE_MPN_UNARY_1',
'speed_flags'=> 'FLAG_R',
- 'try' => 'TRY_TYPE_AORSMUL_1',
},
{
'regexp'=> 'aorsmul_1',
@@ -307,7 +304,6 @@ my @table =
'args' => 'mp_ptr wp, mp_srcptr xp, mp_size_t size, mp_limb_t mult',
'speed' => 'SPEED_ROUTINE_MPN_UNARY_1',
'speed_flags'=> 'FLAG_R',
- 'try' => 'TRY_TYPE_AORSMUL_1',
},
{
@@ -416,10 +412,11 @@ my @table =
{
'regexp'=> 'jacobi',
+ 'funs' => ['jacobi', 'legendre', 'kronecker'],
'mpX' => 'mpz',
'ret' => 'int',
'args' => 'mpz_srcptr a, mpz_srcptr b',
- 'try' => 'none',
+ 'try-legendre' => 'TYPE_MPZ_JACOBI',
},
{
'regexp'=> 'jacbase',
@@ -436,7 +433,6 @@ my @table =
'ret' => 'void',
'args' => 'mp_ptr wp, mp_srcptr xp, mp_srcptr yp, mp_size_t size',
'speed' => 'SPEED_ROUTINE_MPN_BINARY_N',
- 'try' => 'TRY_TYPE_LOGOPS_N',
},
{
@@ -469,7 +465,6 @@ my @table =
'funs' => ['modexact_1_odd'],
'ret' => 'mp_limb_t',
'args' => 'mp_srcptr src, mp_size_t size, unsigned divisor',
- 'try' => 'none',
'speed_flags'=> 'FLAG_R',
},
@@ -524,8 +519,7 @@ my @table =
'ret' => 'void',
'args' => 'mp_ptr wp, mp_srcptr xp, mp_size_t size',
'speed' => 'SPEED_ROUTINE_MPN_SQR',
- 'try' => 'TRY_TYPE_SQR',
- 'refmpn'=> 'refmpn_sqr',
+ 'try' => 'TYPE_SQR',
},
{
@@ -603,8 +597,8 @@ open(TRY, ">try-many.c") or die;
print TRY
"/* try-many.c generated by many.pl - DO NOT EDIT, CHANGES WILL BE LOST */\n" .
"\n";
-my $TRY_EXTRA_ROUTINES = "#define TRY_EXTRA_ROUTINES \\\n";
-my $TRY_EXTRA_PROTOS = "#define TRY_EXTRA_PROTOS \\\n";
+my $TRY_EXTRA_ROUTINES = "#define EXTRA_ROUTINES \\\n";
+my $TRY_EXTRA_PROTOS = "#define EXTRA_PROTOS \\\n";
open(MAKEFILE, ">Makefile.many") or die;
print MAKEFILE
@@ -859,24 +853,32 @@ EOF
my $funfull="${mpX}_${fun_carry}_$suffix$pic->{'suffix'}";
print "funfull $funfull\n" if $opt{'t'};
- my $proto = "$t->{'ret'} $funfull ($args$carryarg); \\\n";
+ my $proto = "$t->{'ret'} $funfull _PROTO (($args$carryarg)); \\\n";
$SPEED_EXTRA_PROTOS .= $proto;
$TRY_EXTRA_PROTOS .= $proto;
- my $try_type = $t->{'try'};
- $try_type = "TRY_TYPE_\U$fun_carry" if ! defined $try_type;
+ my $try_type = $t->{"try-$fun"};
+ $try_type = $t->{'try'} if ! defined $try_type;
+ if (! defined $try_type) {
+ if ($mpX eq 'mpn') {
+ $try_type = "TYPE_\U$fun_carry";
+ } else {
+ $try_type = "TYPE_\U${mpX}_\U$fun_carry";
+ }
+ }
print "try_type $try_type\n" if $opt{'t'};
my $try_minsize = $t->{'try-minsize'};
- $try_minsize = 0 if ! defined $try_minsize;
+ if (defined $try_minsize) {
+ $try_minsize = ", " . $try_minsize;
+ } else {
+ $try_minsize = "";
+ }
print "try_minsize $try_minsize\n" if $opt{'t'};
- my $refmpn = $t->{'refmpn'};
- $refmpn = "ref${mpX}_$fun_carry" if ! defined $refmpn;
-
if ($try_type ne 'none') {
$TRY_EXTRA_ROUTINES .=
- " { TRY($refmpn), TRY(mpn_${fun_carry}_$suffix$pic->{'suffix'}), $try_type, $try_minsize }, \\\n";
+ " { TRY(${mpX}_${fun_carry}_$suffix$pic->{'suffix'}), $try_type$try_minsize }, \\\n";
}
my $speed_flags = $t->{'speed_flags'};