./math/p5-Math-BigInt, Arbitrary size integer math perl package

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 1.999811, Package name: p5-Math-BigInt-1.999811, Maintainer: pkgsrc-users

Math::BigInt provides support for arbitrary precision integers.
Overloading is also provided for Perl operators.

Required to run:

Required to build:

Master sites: (Expand)

SHA1: 42fd2271c1cb29c36ee3662429c649ac5a159d46
RMD160: 076305b93f279e70c51161dd672900163cbc848a
Filesize: 2828.267 KB

Version history: (Expand)

CVS history: (Expand)

   2017-05-13 02:52:04 by Wen Heping | Files touched by this commit (2) | Package updated
Log message:
Update to 1.999811

Upstream changes: 2017-03-15 v1.999811 pjacklam

 * Fix an old in the Math::BigFloat methods as_hex(), as_oct(), and as_bin()
   methods resulting in loss of accuracy. This bug was introduced in bug in
   Math-BigInt-1.76. Due to a naive copy and paste by me, and lack of tests,
   this bug was also present in the newer to_hex(), to_oct(), and to_bin()
   methods. This shows the bug, as it did not print "0xffff...":

       print Math::BigFloat -> from_hex("f" x 30) -> as_hex();

 * Fix incorrect formatting in the output from the Math::BigFloat methods
   to_hex(), to_oct(), and to_bin() when the output was zero. A prefix was
   added when it shouldn't have been.

 * Add tests to bigintpm.inc and bigfltpm.inc for better testing of as_hex(),
   as_oct(), and as_bin() as well as to_hex(), to_oct(), and to_bin().

 * "Synchronize" tests and code formatting in bigintpm.inc and \ 

2017-03-01 v1.999810 pjacklam

 * CPAN RT #120240 revealed that the problems with undefined values is still
   present. After a close examination, I believe the only way to get this
   really working is to to make blog() call objectify() differently depending
   on whether the base for the logarithm is undefined or not. That way we can
   avoid objectify() converting the undefined value to a zero. Ideally, we
   should warn about undefined values when used in any other context, but we'll
   handle that in a later release. See also the related changelog entry for

 * Fix the way the argument count is computed in objectify(). When an argument
   count of 0 is given, it means that we should objectify all input arguments.
   However, it turned out that the actual argument count was computed

 * Fix CPAN RT #120242 rearding c3 method resolution.
   2017-02-11 12:06:22 by Makoto Fujiwara | Files touched by this commit (2) | Package updated
Log message:
Updated math/p5-Math-BigInt to 1.999809
2017-02-10 v1.999809 pjacklam

 * When a new method is added to Math::BigInt or Math::BigFloat, and this new
   method requires a new backend library method, die with a suitable error
   message if the installed backend library does not support this new method.
   The error message says that the method requires a newer version of the
   backend library.

 * Fix typos in Math::BigFloat and Math::BigInt.

 * Add bfib() and blucas() to Math::BigInt. They return Fibonacci and Lucas
   numbers, respectively. The actual computation of the numbers is done by the
   backend library. Documented both methods in POD. Add test files bfib-mbi.t
   and blucas-mbi.t.

 * Add _fib() and _lucas() to Math::BigInt::Lib. They return Fibonacci and
   Lucas numbers, respectively. Document both methods in POD. Add test files
   author-lib-arithmetic-unary-_fib.t and author-lib-arithmetic-unary-_lucas.t.
   2017-01-18 13:59:17 by Wen Heping | Files touched by this commit (2) | Package updated
Log message:
Update to 1.999808

Upstream changes:
2017-01-11 v1.999808 pjacklam

 * In Math::BigInt and Math::BigFloat, add methods bdfac() for double
   factorial. Add tests for this method.

 * In Math::BigInt and Math::BigFloat, add methods to_hex(), to_oct(), and
   to_bin() for hexadecimal, octal, and binary string output without prefix.
   Even for Math::BigFloat there is still only support for integer output. Add
   tests for these methods.

 * Add test for as_oct() corresponding to the old tests for as_hex() and

 * In Math::BigInt::Lib, add method _dfac() for double factorial. Add
   corresponding tests.

 * In Math::BigInt::Lib, fix bug in overloaded "int".

 * In Math::BigInt::Lib, implement much faster versions of _from_hex(),
   _from_oct(), and _from_bin().

 * In Makefile.PL, improve the wording in the message displayed if some of
   the installed backend libraries are not a subclass of Math::BigInt::Lib (and
   hence will not provide

 * Fix minor bugs in some of the author library test files (t/author-lib*.t).

 * Allow leading and trailing whitespace in the input to from_hex(),
   from_oct(), and from_bin().  Add tests to verify. This is a regressions
   (CPAN RT #119805).

2016-12-23 v1.999807 pjacklam

 * Add a message to Makefile.PL recommending upgrade if old libraries are
   installed. This message is more or less equivalent to the one appearing in
   Math-BigInt up until v1.997.

 * Improve the documentation (POD) in Math::BigInt::Lib.

 * Speed up _sqrt() and _root() in Math::BigInt::Lib.

 * Remove checking for exception cases (cases that would return +Inf, -Inf, or
   NaN) in Math::BigInt::Lib. It has been documented for a long time that such
   checking should be done by the caller.

 * Add library methods _to_bin(), _to_oct(), _to_hex(), which are equivalent to
   the _as_bin(), _as_oct(), and _as_hex() methods respectively, except that
   the _to_*() methods don't use a prefix in the output. This removes the need
   for the frequent removal of the various prefixes. Now each _as_*() method
   calls the equivalent _to_*() method, adds a prefix, and returns the output.
   The _to_*() methods are faster than the equivalent _as_*() methods were.

 * Add author test files for the methods _to_bin(), _to_oct(), and _to_hex().

 * Add library method _to_bytes(). The method _as_bytes() would have been
   called _to_bytes() if I had thought of it earlier. The method _as_bytes() is
   now just an alias to _to_bytes(). The _to_bytes() method also fixes a bug
   that was present in the _as_bytes() method. (CPAN RT #119346).

 * Add author test files for the method _to_bytes().

 * Add more tests for library methods _inc() and _dec(). When trying to bring
   the Math::BigInt::BitVect library back to life I realized that the test
   suite didn't catch certain errors in _inc() and _dec().

 * Die if trying to use as_bytes() or from_bytes() with a backend library that
   doesn't support the corresponding library methods.

 * Correct minor errors in the output messages in the test files.

 * Improve/correct various comments in the source code.

 * More diagnostic output is displayed by the author test files if the
   AUTHOR_DEBUGGING environment variable is set.

2016-12-13 v1.999806 pjacklam

 * Add more logic to Makefile.PL regarding INSTALLDIRS (CPAN RT #119199
   and #119225).

 * In the TODO file, remove stuff that has been implemented.

2016-12-11 v1.999805 pjacklam

 * Fix Makefile.PL so that this module installs over the core version.

 * Add more tests for _nok() (binomial coefficient "n over k"). These \ 
new tests
   revealed some problems with some of the backend libraries when _nok() was
   given very large arguments.

 * Remove t/Math/BigFloat/#Subclass.pm#, which is an Emacs temporary file
   included by accident.

2016-12-07 v1.999804 pjacklam

 * Implement as_bytes(), as requested (CPAN RT 119096). Also implement the
   inverse conversion from_bytes(). This applies to Math::BigInt only. (Alas,
   these methods will be inherited from Math::BigInt into Math::BigFloat,
   Math::BigRat etc. where the methods won't work. Fixing this class
   relationship is an issue of its own.)

 * Implement _as_bytes() and _from_bytes() in Math::BigInt::Lib. Preferably,
   the various backend libraries will implement faster versions of their
   own. Add author test files for testing these methods thorougly.

 * Fix from_hex(), from_oct(), and from_bin().
   - When called as instance methods, the new value should be assigned to the
     invocand unless the invocand is read-only (a constant).
   - When called as instance methods, the assigned value was incorrect, if the
     invocand was inf or NaN.
   - Add tests to t/from_hex-mbf.t, t/from_oct-mbf.t, and t/from_bin-mbf.t
     to confirm the fix.
   - Add new test files t/from_hex-mbi.t, t/from_oct-mbi.t, and
     t/from_bin-mbi.t for better testing of these methods with Math::BigInt.

 * Correct typo in Math/BigInt/Lib.pm (otherise -> otherwise) (CPAN RT 118829).

 * Add POD coverage testing of Math::BigInt::Lib to t/03podcov.t.

2016-12-03 v1.999803 pjacklam

 * Remove BENCHMARK file. The information was obsolete.

 * Use ExtUtils::MakeMaker rather than Module::Install in Makefile.PL

 * Reorder CHANGES file (this file) so the newest entries appear at the top.

 * Fix error in test information text in various author test files.

 * Remove author information in LICENSE file.

 * Inform that the TODO file is not up to date.

2016-11-28 v1.999802 pjacklam

 * When bzero(), bone(), binf(), and bnan() are used as constructors, don't
   check whether the class allows the object to be modified. A constructor
   isn't modifying any existing object. This applies to both Math::BigInt and

 * Improve bgcd() and blcm(). This applies to both Math::BigInt and
   2016-11-28 13:29:48 by Wen Heping | Files touched by this commit (2) | Package updated
Log message:
Update to 1.999801

Upstream changes:
2016-11-23 v1.999801 pjacklam

 * Fix, hopefully once and for all, the longstanding problem of handling undef
   as an operand to mathematical methods. The only method that accepts undef as
   an operand is blog(), where the second operand might be undef, as in
   $x->blog() or $x->blog($b), where $b is undef. The undef signifies that
   Euler's number should be used as the base. With this fix, we should be able
   to get Math::BigInt::Lite working again.

 * Add least common multiple method _lcm() to Math::BigInt::Lib, and add
   corresponding test file t/author-lib-arithmetic-binary-_lcm.t and test data
   file t/author-lib-arithmetic-binary-_lcm.dat.

 * Remove internal function __lcm() which has become redundant now that _lcm()
   is in the library.

 * Make it possible to use bgcd() and blcm() as class methods, since other
   methods can be used as class methods. This applies to both Math::BigInt and

 * Fix blcm() with negative input. The LCM should always be non-negative. This
   applies to both Math::BigInt and Math::BigFloat.

 * Add tests for bgcd() and blcm() in t/bigintpm.t and t/bigfltpm.t.

 * Fix tests for blcm() assuming that LCM(0,0) should be a NaN. LCM(0,0) is 0
   by convention.

 * Prefer Class->config('option') over Class->config()->{option}. \ 
However, this
   does not seem to be working for all options. It seems that this won't work
   properly until we move the global variables into the OO interface.

 * Explicitly specify the library in all test files that are shared between
   Math-BigInt and the library distributions (FaatCalc, GMP, Pari, ...) with,
   e.g., "use Math::BigInt only => 'Calc';". This way, it will fail \ 
   if the specified library can't be loaded rather than using the fallback
   2016-11-17 16:28:50 by Wen Heping | Files touched by this commit (2) | Package updated
Log message:
Update to 1.999800

Upstream changes:
2016-11-04 v1.999727 pjacklam

 * Skip test exceeding the range of VAX floating point number in t/bigintpm.inc
   (CPAN RT 118468).

 * Fix typo in lib/Math/BigInt.pm (CPAN RT 118550).

2016-11-15 v1.999800 pjacklam

 * Upgrade bundled Module::Install from version 1.16 to version 1.17.

 * Add Math::BigInt::Lib (lib/Math/BigInt/Lib.pm), a parent class for
   Math::BigInt backend libraries.

 * Use objects in Math::BigInt::Calc, not just array refs. Also use OO-style,
   i.e., use $class->_add($x, $y) rather than _add($class, $x, $y).

 * Not all library methods modify the invocand, so call library methods as,
   e.g, $x = $LIB->method($x, $y) rather than just $LIB->method($x, $y).

 * Math::BigInt::Calc is now a subclass of Math::BigInt::Lib.

 * Add Math::BigInt::Lib::Minimal (t/Math/BigInt/Lib/Minimal.pm) for testing
   inheritance from Math::BigInt::Lib.

 * Minor simplification in Math::BigInt::Calc->_str().

 * Speed up Math::BigInt::Calc->_root().

 * Remove test files that were included in the previous release by accident.

 * Add more tests and use more verbose output in some tests.

 * Fix typo in lib/Math/BigFloat.pm

 * Fix documentation error in lib/Math/Calc.pm

 * Use Config::Tiny and an .ini file to handle the library specific
   configuration for the author-lib*.t test files.
   2016-08-09 01:51:38 by Wen Heping | Files touched by this commit (3)
Log message:
Import Math-BigInt-1.999726 as math/p5-Math-BigInt.

Math::BigInt provides support for arbitrary precision integers.
Overloading is also provided for Perl operators.