The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.59 - 2016-08-03

  • ADDED
    • is_prime_power Returns k if n=p^k for p a prime.
    • logint(n,b) Integer logarithm. Largest e s.t. b^e <= n.
    • rootint(n,k) Integer k-th root.
    • ramanujan_sum(k,n) Ramanujan's sum
  • FUNCTIONALITY AND PERFORMANCE
    • Fixes for quadmath:
      • Fix "infinity" in t/11-primes.t.
      • Fix native Pi to use quads.
      • Trim some threading tests.
    • Fix fromdigits memory error with large string.
    • Remove 3 threading tests that were causing issues with Perl -DDEBUGGING.
    • foroddcomposites with some odd start values could index incorrectly.
    • is_primitive_root(1,0) returns 0 instead of fp exception.
    • mertens() uses a little less memory.
    • 2x speedup for znlog with bigint values.
    • is_pseudoprime() and is_euler_pseudoprime() use Montgomery math so are much faster. They seem to be ~5% faster than Miller-Rabin now.
    • is_catalan_pseudoprime 1.1x to 1.4x faster.
    • is_perrin_pseudoprime over 10x faster. Uses Adams/Shanks doubling and Montgomery math. Single core, odd composites: ~8M range/s.
    • Add restricted Perrin pseudoprimes using an optional argument.
    • Add bloom filters to reject non-perfect cubes, fifths, and sevenths. is_power about 2-3x faster for native inputs.
    • forcomposites / foroddcomposites about 1.2x faster past 64-bit.
    • exp_mangoldt rewritten to use is_prime_power.
    • Integer root code rewritten and now exported.
    • We've been hacking around the problem of older Perls autovivifying functions at compile time. This makes functions that don't exist return true when asked if they're defined, which causes us distress.
      • Store the available GMP functions before loading the PP code.
      • XS code knows MPU::GMP version and calls as appropriate. This works around the auto-vivication, and lets us choose to call the GMP function based on version instead of just existence. E.g. GMP's is_power was added in 0.19, but didn't support negative powers until 0.28.

Modules

Utilities related to prime numbers, including fast sieves and factoring
Elliptic curve operations for affine points
Elliptic curve operations for projective points
An auto-free object for Math::Prime::Util
Pure Perl version of Math::Prime::Util
PP front end for Math::Prime::Util
Primality proofs and certificates
A tied array for primes
An object iterator for primes
Generate random primes
Perl Big Float versions of Riemann Zeta and R functions
Number theory utilities