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

Changes for version 1.999817 - 2019-10-11

  • Avoid non-integers in intermediate computations in Math::BigInt::Calc. This causes errors due to rounding issues, e.g., 47265625999999999 / 1000000000 is 47265626 with double precision.
  • Remove api_version() and the corresponding test file. There is no need to check which methods are supported by a backend library now that each backend library is a subclass of Math::BigInt::Lib. Methods not provided in the backend library are provided by the parent class.
  • Add to_ieee745() and from_ieee754().
  • Add backermann() and ackermann() for the Ackermann function.
  • Add buparrow() and uparrow() for Knuth's up-arrow notation.
  • Add information about the github repository.
  • Update links in SUPPORT section in POD.
  • Fix bpow(). It returned NaN when it should truncate to zero.
  • Make blsft() in Math::BigInt allow bases up until the largest unsigned integer.
  • Make _lsft() in Math::BigInt::Calc handle an arbitrarily large base.
  • Add new methods bdigitsum() and digitsum() to Math::BigInt. Add new method _digitsum() to Math::BigInt::Lib.
  • Add new methods is_non_negative() and is_non_positive().
  • Extend the default collation sequence used by to_base() and from_base() to all the 94 printable ASCII characters except blank/space.
  • Make new() in Math::BigFloat handle octal floating point numbers.
  • Slightly more robust t/01load.t.
  • Remove unused variables.
  • Miscellaneous code cleanup.

Modules

Arbitrary size floating point math package
Arbitrary size integer/float math package
Pure Perl module to support Math::BigInt
virtual parent class for Math::BigInt libraries