diff options
author | Kevin Ryde <user42@zip.com.au> | 2001-02-02 01:39:44 +0100 |
---|---|---|
committer | Kevin Ryde <user42@zip.com.au> | 2001-02-02 01:39:44 +0100 |
commit | edcbb6e038298e382d5494bf0162c75d5115c832 (patch) | |
tree | 80678c648ac935fbf6a929dbdcca83e4e8764125 /tune/many.pl | |
parent | 80a4028871d0f15cabe3bc3ffc59ae090a9b1d05 (diff) | |
download | gmp-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-x | tune/many.pl | 46 |
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'}; |