This is an automated email from the git hooks/post-receive script. ppm-guest pushed a commit to annotated tag v0.26 in repository libmath-prime-util-perl.
commit 80cb008d0b719746dd390c98f8620aa756a10aee Author: Dana Jacobsen <[email protected]> Date: Sun Apr 21 16:48:11 2013 -0700 Fixes for final release --- Changes | 4 ++-- examples/verify-gmp-eccp-cert.pl | 0 lib/Math/Prime/Util.pm | 10 ++++++---- t/81-bignum.t | 18 +++++++++++------- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/Changes b/Changes index 7176213..c2d3246 100644 --- a/Changes +++ b/Changes @@ -1,6 +1,6 @@ Revision history for Perl extension Math::Prime::Util. -0.26 xx April 2013 +0.26 21 April 2013 - Pure Perl factoring: - real p-1 -- much faster and more effective @@ -14,7 +14,7 @@ Revision history for Perl extension Math::Prime::Util. verify_prime checks a primality certificate. - Pure perl primality proof now uses BLS75 instead of Lucas, so some - numbers will be much faster. n-1 only needs factoring to (n/2)^1/3. + numbers will be much faster [n-1 only needs factoring to (n/2)^1/3]. - Math::Prime::Util::ECAffinePoint and ECProjectivePoint modules for dealing with elliptic curves. diff --git a/examples/verify-gmp-eccp-cert.pl b/examples/verify-gmp-eccp-cert.pl old mode 100644 new mode 100755 diff --git a/lib/Math/Prime/Util.pm b/lib/Math/Prime/Util.pm index 44c9464..1fc59b2 100644 --- a/lib/Math/Prime/Util.pm +++ b/lib/Math/Prime/Util.pm @@ -2895,16 +2895,18 @@ A certificate is an array holding an C<n-cert>. An C<n-cert> is one of: n,"AGKM",[ec-block],[ec-block],... An Elliptic Curve certificate. We are given n, the method "AGKM" - or "ECPP", and a one or more 6-element blocks representing a + or "ECPP", and one or more 6-element blocks representing a standard ECPP or Atkin-Goldwasser-Kilian-Morain certificate. - The format of this n-cert is non-recursive so it can be easily - used for similar programs such as Sage and GMP-ECPP. + In its traditional form, it is non-recursive, with each q value + being proved by successive blocks (this makes it easy to use for + programs like Sage and GMP-ECPP). A q value is also allowed to + be an n-cert, which allows an alternative proof for the last q. Every ec-block has 6 elements: N the N value this block proves prime if q is prime a value describing the elliptic curve to be used b value describing the elliptic curve to be used m order of the curve - q a probable prime > (N^1/4+1)^2 + q a probable prime > (N^1/4+1)^2 (may be an n-cert) P a point [x,y] on the curve (affine coordinates) The certificate passes if: - the final q can be proved with BPSW. diff --git a/t/81-bignum.t b/t/81-bignum.t index dc02569..dc41837 100644 --- a/t/81-bignum.t +++ b/t/81-bignum.t @@ -76,7 +76,8 @@ plan tests => 0 + scalar(keys %allfactors) + 5 # moebius, euler_phi, jordan totient + 15 # random primes - + 5 # verify_prime + + 3 # verify_prime + + 2*$extra # "big" prime verification + 0; # Using GMP makes these tests run about 2x faster on some machines @@ -292,7 +293,7 @@ sub check_pcbounds { ############################################################################### # Provable primes -SKIP: { +{ my @proof; @proof = (20907001, "Pratt", [ 2, @@ -315,8 +316,14 @@ SKIP: { [ 2, 2, 2, 2, 2 ]); ok( verify_prime(@proof), "simple n-1 proof verified" ); - skip "Skipping bigger proofs without fast BigInt library", 3 - if $bigintlib !~ /^(GMP|Pari)/; + @proof = ('677826928624294778921',"AGKM", ['677826928624294778921', '404277700094248015180', '599134911995823048257', '677826928656744857936', '104088901820753203', ['2293544533', '356794037129589115041']], ['104088901820753203', '0', '73704321689372825', '104088902465395836', '1112795797', ['3380482019', '53320146243107032']], ['1112795797', '0', '638297481', '1112860899', '39019', ['166385704', '356512285']]); + ok( verify_prime(@proof), "ECPP primality proof of 677826928624294778921 verified" ); +} + +if ($extra) { + my @proof; + #skip "Skipping bigger proofs without fast BigInt library", 2 + # if $bigintlib !~ /^(GMP|Pari)/; @proof = ('6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151', 'n-1', [ 2,3,5,11,17,31,41,53,131,157,521,1613,61681,8191,42641,858001,51481, '7623851', '308761441' ], @@ -331,7 +338,4 @@ SKIP: { ] ], [ 3,5,3,2,3,3,3,3 ] ); ok( verify_prime(@proof), "2**607-1 primality proof verified" ); - - @proof = ('677826928624294778921',"AGKM", ['677826928624294778921', '404277700094248015180', '599134911995823048257', '677826928656744857936', '104088901820753203', ['2293544533', '356794037129589115041']], ['104088901820753203', '0', '73704321689372825', '104088902465395836', '1112795797', ['3380482019', '53320146243107032']], ['1112795797', '0', '638297481', '1112860899', '39019', ['166385704', '356512285']]); - ok( verify_prime(@proof), "ECPP primality proof of 677826928624294778921 verified" ); } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libmath-prime-util-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits
