Changes for version 0.41 - 2016-10-09

  • API CHANGES
    • bernreal and harmreal will use the second argument to mean the digits of precision to use, rather than the number of digits past the decimal place.
    • is_pseudoprime and is_strong_pseudoprime act like Math::Prime::Util.
  • ADDED
    • todigits(n[,base[,len]]) Convert number to digit array
    • zeta(s[,digits]) Riemann Zeta of integer or FP s
    • riemannr(s[,digits]) Riemann R function of integer or FP s
    • divisors(n) Returns list of divisors
    • is_euler_pseudoprime(n,@a) Euler-Jacobi primality test
  • OTHER
    • With verbose >= 3, prints factors found in partial sieve.
    • factor(1) returns empty list, just like non-GMP code.
    • factor() went through a Perl layer for obsolete reasons. Removed.
    • bernreal and bernfrac will use the Zeta/Pi method for large values, making it orders of magnitude faster for large sizes.
    • Added internal FP log, exp, pow functions, which are not in GMP.
    • is_prime will do one extra M-R test for probable primes, down from 1-5. Also, if is_provable_prime adds two Frobenius tests if returning a 1.
    • Removed Perl layer from is_strong_pseudoprime.
    • is_pseudoprime and is_strong_pseudoprime take a list of bases, and there is no default base.
    • sieve_primes with small n and large range (e.g. 10^20 to 10^20+8e9) is much faster. This tunes the full vs. partial sieve crossover.

Modules

Utilities related to prime numbers and factoring, using GMP