2016-06-24 04:57:02 +00:00
|
|
|
-------------------------------------------------------------------
|
|
|
|
Mon Jun 13 07:19:00 UTC 2016 - coolo@suse.com
|
|
|
|
|
|
|
|
- updated to 0.58
|
|
|
|
see /usr/share/doc/packages/perl-Math-Prime-Util/Changes
|
|
|
|
|
|
|
|
0.58 2016-05-21
|
|
|
|
|
|
|
|
[API Changes]
|
|
|
|
|
|
|
|
- prev_prime($n) where $n <= 2 now returns undef instead of 0. This
|
|
|
|
may enable catching range errors, and is technically more correct.
|
|
|
|
|
|
|
|
- nth_prime(0) now returns undef instead of 0. This should help catch
|
|
|
|
cases where the base wasn't understood. The change is similar for
|
|
|
|
all the nth_* functions (e.g. nth_twin_prime).
|
|
|
|
|
|
|
|
- sumdigits(n,base) will interpret n as a number in the given base,
|
|
|
|
rather than the Pari/GP method of converting decimal n to that base
|
|
|
|
then summing. This allows sumdigits to easily sum hex strings.
|
|
|
|
The old behavior is easily done with vecsum(todigits(n, base)).
|
|
|
|
|
|
|
|
- binary() was not intended to be released (todigits and todigitstring
|
|
|
|
are supersets), but the documentation got left in. Remove docs.
|
|
|
|
|
|
|
|
[ADDED]
|
|
|
|
|
|
|
|
- addmod(a, b, n) a + b mod n
|
|
|
|
- mulmod(a, b, n) a * b mod n
|
|
|
|
- divmod(a, b, n) a / b mod n
|
|
|
|
- powmod(a, b, n) a ^ b mod n
|
|
|
|
- sqrtmod(a, n) modular square root
|
|
|
|
- is_euler_pseudoprime(n,a[...]) Euler test to given bases
|
|
|
|
- is_primitive_root(r, n) is r a primitive root mod n
|
|
|
|
- is_quasi_carmichael(n) is n a Quasi-Carmichael number
|
|
|
|
- hclassno(n) Hurwitz class number H(n) * 12
|
|
|
|
- sieve_range(n, width, depth) sieve to given depth, return offsets
|
|
|
|
|
|
|
|
[FUNCTIONALITY AND PERFORMANCE]
|
|
|
|
|
|
|
|
- Fixed incorrect table entries for 2^16th Ramanujan prime count and
|
|
|
|
nth_ramanujan_prime(23744).
|
|
|
|
|
|
|
|
- foroddcomposites with certain arguments would start with 10 instead of 9.
|
|
|
|
|
|
|
|
- lucasu and lucasv should return bigint types.
|
|
|
|
|
|
|
|
- vecsum will handle 128-bit sums internally (performance increase).
|
|
|
|
|
|
|
|
- Speedup is_carmichael.
|
|
|
|
|
|
|
|
- Speedup znprimroot, 10% for small inputs, 10x for large composites.
|
|
|
|
|
|
|
|
- Speedup znlog ~2x. It is now Rho racing an interleaved BSGS.
|
|
|
|
|
|
|
|
- Change AKS to Bernstein 2003 theorem 4.1.
|
|
|
|
5-20x faster than Bornemann, 20000+x faster than V6.
|
|
|
|
|
|
|
|
- sum_primes now uses tables for native sizes (performance increase).
|
|
|
|
|
|
|
|
- ramanujan_tau uses Cohen's hclassno method instead of the sigma
|
|
|
|
calculation. This is 3-4x faster than the GMP code for inputs > 300k,
|
|
|
|
and much faster than the older PP code.
|
|
|
|
|
|
|
|
- fromdigits much faster for large base-10 arrays. Timing is better than
|
|
|
|
split plus join when output is a bigint.
|
|
|
|
|
|
|
|
|
|
|
|
0.57 2016-01-03
|
|
|
|
|
|
|
|
[ADDED]
|
|
|
|
|
|
|
|
- formultiperm { ... } \@n loop over multiset permutations
|
|
|
|
- todigits(n[,base[,len]]) convert n to digit array
|
|
|
|
- todigitstring(n[,base[,len]]) convert n to string
|
|
|
|
- fromdigits(\@d[,base]) convert digit array ref to number
|
|
|
|
- fromdigits(str[,base]) convert string to number
|
|
|
|
- ramanujan_prime_count counts Ramanujan primes in range
|
|
|
|
- vecany { expr } @n true if any expr is true
|
|
|
|
- vecall { expr } @n true if all expr are true
|
|
|
|
- vecnone { expr } @n true if no expr are true
|
|
|
|
- vecnotall { expr } @n true if not all expr are true
|
|
|
|
- vecfirst { expr } @n returns first element with expr true
|
|
|
|
|
|
|
|
[FUNCTIONALITY AND PERFORMANCE]
|
|
|
|
|
|
|
|
- nth_ramanujan_prime(997) was wrong. Fixed.
|
|
|
|
|
|
|
|
- Tighten Ramanujan prime bounds. Big speedups for large nth Rp.
|
|
|
|
|
|
|
|
|
|
|
|
0.56 2015-12-13
|
|
|
|
|
|
|
|
[ADDED]
|
|
|
|
|
|
|
|
- is_carmichael(n) Returns 1 if n is a Carmichael number
|
|
|
|
- forcomp { ... } n[,{...}] loop over compositions
|
|
|
|
|
|
|
|
[FUNCTIONALITY AND PERFORMANCE]
|
|
|
|
|
|
|
|
- Faster, nonrecursive divisors_from_factors routine.
|
|
|
|
|
|
|
|
- gcdext(0,0) returns (0,0,0) to match GMP and Pari/GP.
|
|
|
|
|
|
|
|
- Use better prime count lower/upper bounds from Büthe 2015.
|
|
|
|
|
|
|
|
- forpart and forcomp both use lexicographic order (was anti-lexico).
|
|
|
|
|
|
|
|
|
|
|
|
0.55 2015-10-19
|
|
|
|
|
|
|
|
- Fixed test that was using a 64-bit number on 32-bit machines.
|
|
|
|
|
|
|
|
[FUNCTIONALITY AND PERFORMANCE]
|
|
|
|
|
|
|
|
- Speed up PP versions of sieve_prime_cluster, twin_primes,
|
|
|
|
twin_prime_count, nth_twin_prime, primes.
|
|
|
|
|
|
|
|
|
|
|
|
0.54 2015-10-14
|
|
|
|
|
|
|
|
[ADDED]
|
|
|
|
|
|
|
|
- sieve_prime_cluster(low,high[,...]) find prime clusters
|
|
|
|
|
|
|
|
[Misc]
|
|
|
|
|
|
|
|
- Certain small primes used to return false with Frobenius and AES Lucas
|
|
|
|
tests when given extra arguments. Both are unusual cases never used
|
|
|
|
by the main system. Fixed.
|
|
|
|
|
|
|
|
|
|
|
|
0.53 2015-09-05
|
|
|
|
|
|
|
|
[ADDED]
|
|
|
|
|
|
|
|
- ramanujan_tau(n) Ramanujan's Tau function
|
|
|
|
- sumdigits(n[,base]) sum digits of n
|
|
|
|
|
|
|
|
[FUNCTIONALITY AND PERFORMANCE]
|
|
|
|
|
|
|
|
- Don't use Math::MPFR unless underlying MPFR library is at least 3.x.
|
|
|
|
|
|
|
|
- Use new Math::Prime::Util::GMP::sigma function for divisor_sum.
|
|
|
|
|
|
|
|
- Use new Math::Prime::Util::GMP::sieve_twin_primes(a,b).
|
|
|
|
|
2015-09-20 17:01:41 +00:00
|
|
|
-------------------------------------------------------------------
|
|
|
|
Sun Sep 20 17:01:37 UTC 2015 - coolo@suse.com
|
|
|
|
|
|
|
|
- initial package 0.52
|
|
|
|
* created by cpanspec 1.78.08
|
|
|
|
|