Please sign in to comment.
Update Math-BigInt to CPAN version 1.999811
[DELTA] 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 bigfltpm.inc. 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 v1.999801. * 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 incorrectly. * Fix CPAN RT #120242 rearding c3 method resolution. 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-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 as_bin(). * 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.
- Loading branch information...
Showing with 1,749 additions and 552 deletions.
- +2 −0 MANIFEST
- +1 −1 Porting/Maintainers.pl
- +115 −18 cpan/Math-BigInt/lib/Math/BigFloat.pm
- +324 −48 cpan/Math-BigInt/lib/Math/BigInt.pm
- +4 −9 cpan/Math-BigInt/lib/Math/BigInt/Calc.pm
- +1 −1 cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm
- +699 −344 cpan/Math-BigInt/lib/Math/BigInt/Lib.pm
- +2 −2 cpan/Math-BigInt/t/Math/BigFloat/Subclass.pm
- +2 −2 cpan/Math-BigInt/t/Math/BigInt/Subclass.pm
- +1 −1 cpan/Math-BigInt/t/bare_mbf.t
- +1 −1 cpan/Math-BigInt/t/bare_mbi.t
- +86 −0 cpan/Math-BigInt/t/bfib-mbi.t
- +130 −58 cpan/Math-BigInt/t/bigfltpm.inc
- +1 −1 cpan/Math-BigInt/t/bigfltpm.t
- +83 −48 cpan/Math-BigInt/t/bigintpm.inc
- +1 −1 cpan/Math-BigInt/t/bigintpm.t
- +86 −0 cpan/Math-BigInt/t/blucas-mbi.t
- +1 −1 cpan/Math-BigInt/t/calling.t
- +13 −1 cpan/Math-BigInt/t/from_bin-mbf.t
- +13 −1 cpan/Math-BigInt/t/from_bin-mbi.t
- +13 −1 cpan/Math-BigInt/t/from_hex-mbf.t
- +13 −1 cpan/Math-BigInt/t/from_hex-mbi.t
- +13 −1 cpan/Math-BigInt/t/from_oct-mbf.t
- +13 −1 cpan/Math-BigInt/t/from_oct-mbi.t
- +1 −1 cpan/Math-BigInt/t/sub_mbf.t
- +1 −1 cpan/Math-BigInt/t/sub_mbi.t
- +126 −5 cpan/Math-BigInt/t/upgrade.inc
- +1 −1 cpan/Math-BigInt/t/upgrade.t
- +1 −1 cpan/Math-BigInt/t/upgradef.t
- +1 −1 cpan/Math-BigInt/t/with_sub.t
Oops, something went wrong.