Changes for version 0.49 - 2017-11-27

  • ADDED
    • Euler([digits]) Euler's constant with this many digits
    • li(x[,digits]) Logarithmic Integral of x (x floating point)
    • ei(x[,digits]) Exponential Integral of x (x floating point)
    • logreal(x[,digits]) Natural logarithm of x
    • expreal(x[,digits]) e^x
    • powreal(n,x[,digits]) n^x
    • agmreal(a,b[,digits]) AGM(a,b) - arithmetic-geometric mean
    • prime_count_lower(n) lower bounds for prime count
    • prime_count_upper(n) upper bounds for prime count
  • FIXES
    • When real functions rounded 0.999... to 1.0 and were given too few digits, they could return .0 instead of 1.0.
  • OTHER
    • moebius handles negative inputs
    • Added Jason P's cofactorize-tinyqs, which handles up to 126 bit. This gives us faster and more consistent timing when factoring 20 to 38 digit inputs.
    • Rewrite internal log and exp functions. Among other things, this speeds up LambertW and non-integer Zeta by 10x.
    • Use Ramanujan/Chudnovsky Pi algorithm. 2x faster with many digits.
    • Constants Euler, Pi, and Log2 are cached, just like Pari/GP, MPFR, etc. All three are used quite a bit internally.
    • Calling Pi or Euler in void context just calculates (and caches) the value. This saves the expensive string conversion.

Modules

Utilities related to prime numbers and factoring, using GMP