pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/math/p5-Math-Prime-Util Update to 0.65



details:   https://anonhg.NetBSD.org/pkgsrc/rev/fcfa7a529cd9
branches:  trunk
changeset: 362382:fcfa7a529cd9
user:      wen <wen%pkgsrc.org@localhost>
date:      Sat May 13 01:29:02 2017 +0000

description:
Update to 0.65

Upstream changes:
0.65 2017-05-03

    [API Changes]

    - Config options irand and primeinc are deprecated.  They will carp if set.

    [FUNCTIONALITY AND PERFORMANCE]

    - Add Math::BigInt::Lite to list of known bigint objects.

    - sum_primes fix for certain ranges with results near 2^64.

    - is_prime, next_prime, prev_prime do a lock-free check for a find-in-cache
      optimization.  This is a big help on on some platforms with many threads.

    - C versions of LogarithmicIntegral and inverse_li rewritten.
      inverse_li honors the documentation promise within FP representation.
      Thanks to Kim Walisch for motivation and discussion.

    - Slightly faster XS nth_prime_approx.

    - PP nth_prime_approx uses inverse_li past 1e12, which should run
      at a reasonable speed now.

    - Adjusted crossover points for segment vs. LMO interval prime_count.

    - Slightly tighter prime_count_lower, nth_prime_upper, and Ramanujan bounds.


0.64 2017-04-17

    [FUNCTIONALITY AND PERFORMANCE]

    - inverse_li switched to Halley instead of binary search.  Faster.

    - Don't call pre-0.46 GMP backend directly for miller_rabin_random.


0.63 2017-04-16

    [FUNCTIONALITY AND PERFORMANCE]

    - Moved miller_rabin_random to separate interface.
      Make catching of negative bases more explicit.


0.62 2017-04-16

    [API Changes]

    - The 'irand' config option is removed, as we now use our own CSPRNG.
      It can be seeded with csrand() or srand().  The latter is not exported.

    - The 'primeinc' config option is deprecated and will go away soon.

    [ADDED]

    - irand()                  Returns uniform random 32-bit integer
    - irand64()                Returns uniform random 64-bit integer
    - drand([fmax])            Returns uniform random NV (floating point)
    - urandomb(n)              Returns uniform random integer less than 2^n
    - urandomm(n)              Returns uniform random integer in [0, n-1]
    - random_bytes(nbytes)     Return a string of CSPRNG bytes
    - csrand(data)             Seed the CSPRNG
    - srand([UV])              Insecure seed for the CSPRNG (not exported)
    - entropy_bytes(nbytes)    Returns data from our entropy source

    - :rand                    Exports srand, rand, irand, irand64

    - nth_ramanujan_prime_upper(n)       Upper limit of nth Ramanujan prime
    - nth_ramanujan_prime_lower(n)       Lower limit of nth Ramanujan prime
    - nth_ramanujan_prime_approx(n)      Approximate nth Ramanujan prime
    - ramanujan_prime_count_upper(n)     Upper limit of Ramanujan prime count
    - ramanujan_prime_count_lower(n)     Lower limit of Ramanujan prime count
    - ramanujan_prime_count_approx(n)    Approximate Ramanujan prime count

    [FUNCTIONALITY AND PERFORMANCE]

    - vecsum is faster when returning a bigint from native inputs (we
      construct the 128-bit string in C, then call _to_bigint).

    - Add a simple Legendre prime sum using uint128_t, which means only for
      modern 64-bit compilers.  It allows reasonably fast prime sums for
      larger inputs, e.g. 10^12 in 10 seconds.  Kim Walisch's primesum is
      much more sophisticated and over 100x faster.

    - is_pillai about 10x faster for composites.

    - Much faster Ramanujan prime count and nth prime.  These also now use
      vastly less memory even with large inputs.

    - small speed ups for cluster sieve.

    - faster PP is_semiprime.

    - Add prime option to forpart restrictions for all prime / non-prime.

    - is_primitive_root needs two args, as documented.

    - We do random seeding ourselves now, so remove dependency.

    - Random primes functions moved to XS / GMP, 3-10x faster.


0.61 2017-03-12

    [ADDED]

    - is_semiprime(n)        Returns 1 if n has exactly 2 prime factors
    - is_pillai(p)           Returns 0 or v wherev v! % n == n-1 and n % v != 1
    - inverse_li(n)          Integer inverse of Logarithmic Integral

    [FUNCTIONALITY AND PERFORMANCE]

    - is_power(-1,k) now returns true for odd k.

    - RiemannZeta with GMP was not subtracting 1 from results > 9.

    - PP Bernoulli algorithm changed to Seidel from Brent-Harvey.  2x speedup.
      Math::BigNum is 10x faster, and our GMP code is 2000x faster.

    - LambertW changes in C and PP.  Much better initial approximation, and
      switch iteration from Halley to Fritsch.  2 to 10x faster.

    - Try to use GMP LambertW for bignums if it is available.

    - Use Montgomery math in more places:
       = sqrtmod.  1.2-1.7x faster.
       = is_primitive_root.  Up to 2x faster for some inputs.
       = p-1 factoring stage 1.

    - Tune AKS r/s selection above 32-bit.

    - primes.pl uses twin_primes function for ~3x speedup.

    - native chinese can handle some cases that used to overflow.  Use Shell
      sort on moduli to prevent pathological-but-reasonable test case.

    - chinese directly to GMP

    - Switch to Bytes::Random::Secure::Tiny -- fewer dependencies.

    - PP nth_prime_approx has better MSE and uses inverse_li above 10^12.

    - All random prime functions will use GMP versions if possible and
      if a custom irand has not been configured.
      They are much faster than the PP versions at smaller bit sizes.

    - is_carmichael and is_pillai small speedups.

diffstat:

 math/p5-Math-Prime-Util/Makefile |   4 ++--
 math/p5-Math-Prime-Util/distinfo |  10 +++++-----
 2 files changed, 7 insertions(+), 7 deletions(-)

diffs (27 lines):

diff -r f67f6361da46 -r fcfa7a529cd9 math/p5-Math-Prime-Util/Makefile
--- a/math/p5-Math-Prime-Util/Makefile  Sat May 13 01:20:35 2017 +0000
+++ b/math/p5-Math-Prime-Util/Makefile  Sat May 13 01:29:02 2017 +0000
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.14 2016/11/28 12:36:05 wen Exp $
+# $NetBSD: Makefile,v 1.15 2017/05/13 01:29:02 wen Exp $
 
-DISTNAME=      Math-Prime-Util-0.60
+DISTNAME=      Math-Prime-Util-0.65
 PKGNAME=       p5-${DISTNAME}
 CATEGORIES=    math perl5
 MASTER_SITES=  ${MASTER_SITE_PERL_CPAN:=Math/}
diff -r f67f6361da46 -r fcfa7a529cd9 math/p5-Math-Prime-Util/distinfo
--- a/math/p5-Math-Prime-Util/distinfo  Sat May 13 01:20:35 2017 +0000
+++ b/math/p5-Math-Prime-Util/distinfo  Sat May 13 01:29:02 2017 +0000
@@ -1,6 +1,6 @@
-$NetBSD: distinfo,v 1.11 2016/11/28 12:36:05 wen Exp $
+$NetBSD: distinfo,v 1.12 2017/05/13 01:29:02 wen Exp $
 
-SHA1 (Math-Prime-Util-0.60.tar.gz) = 8567f0193d4ffc96df28e66af435fdfe6f0ab7c5
-RMD160 (Math-Prime-Util-0.60.tar.gz) = ddbf0b8cac76cb919dc83fb05f8c8c270f2fedc0
-SHA512 (Math-Prime-Util-0.60.tar.gz) = 390121193b045fac5cb14225a785e06969e7851d86ab253cfab5cd77b50b172a5cde7747243830e5f513912a1b3519116716b668844d112af7237e7ab2c230c9
-Size (Math-Prime-Util-0.60.tar.gz) = 535032 bytes
+SHA1 (Math-Prime-Util-0.65.tar.gz) = 1b3acd8d45dbe1a82b7137bc17f8fecb7dced847
+RMD160 (Math-Prime-Util-0.65.tar.gz) = a273945fdd85c84f4dc55a36a8d0c11679a5b33c
+SHA512 (Math-Prime-Util-0.65.tar.gz) = 7d6db326291f3b09491ecb9e4280dc2cc97d65cec9fbcb70f1e521111170e51c0d2a57f0723d2866a8c492779fc57d01b3a2a7f7d38fa5d106422e4500c5de20
+Size (Math-Prime-Util-0.65.tar.gz) = 575615 bytes



Home | Main Index | Thread Index | Old Index