|
Packit Service |
3bf9d6 |
2017-03-15 v1.999811 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix an old in the Math::BigFloat methods as_hex(), as_oct(), and as_bin()
|
|
Packit Service |
3bf9d6 |
methods resulting in loss of accuracy. This bug was introduced in bug in
|
|
Packit Service |
3bf9d6 |
Math-BigInt-1.76. Due to a naive copy and paste by me, and lack of tests,
|
|
Packit Service |
3bf9d6 |
this bug was also present in the newer to_hex(), to_oct(), and to_bin()
|
|
Packit Service |
3bf9d6 |
methods. This shows the bug, as it did not print "0xffff...":
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
print Math::BigFloat -> from_hex("f" x 30) -> as_hex();
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix incorrect formatting in the output from the Math::BigFloat methods
|
|
Packit Service |
3bf9d6 |
to_hex(), to_oct(), and to_bin() when the output was zero. A prefix was
|
|
Packit Service |
3bf9d6 |
added when it shouldn't have been.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add tests to bigintpm.inc and bigfltpm.inc for better testing of as_hex(),
|
|
Packit Service |
3bf9d6 |
as_oct(), and as_bin() as well as to_hex(), to_oct(), and to_bin().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* "Synchronize" tests and code formatting in bigintpm.inc and bigfltpm.inc.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2017-03-01 v1.999810 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* CPAN RT #120240 revealed that the problems with undefined values is still
|
|
Packit Service |
3bf9d6 |
present. After a close examination, I believe the only way to get this
|
|
Packit Service |
3bf9d6 |
really working is to to make blog() call objectify() differently depending
|
|
Packit Service |
3bf9d6 |
on whether the base for the logarithm is undefined or not. That way we can
|
|
Packit Service |
3bf9d6 |
avoid objectify() converting the undefined value to a zero. Ideally, we
|
|
Packit Service |
3bf9d6 |
should warn about undefined values when used in any other context, but we'll
|
|
Packit Service |
3bf9d6 |
handle that in a later release. See also the related changelog entry for
|
|
Packit Service |
3bf9d6 |
v1.999801.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix the way the argument count is computed in objectify(). When an argument
|
|
Packit Service |
3bf9d6 |
count of 0 is given, it means that we should objectify all input arguments.
|
|
Packit Service |
3bf9d6 |
However, it turned out that the actual argument count was computed
|
|
Packit Service |
3bf9d6 |
incorrectly.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix CPAN RT #120242 rearding c3 method resolution.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2017-02-10 v1.999809 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* When a new method is added to Math::BigInt or Math::BigFloat, and this new
|
|
Packit Service |
3bf9d6 |
method requires a new backend library method, die with a suitable error
|
|
Packit Service |
3bf9d6 |
message if the installed backend library does not support this new method.
|
|
Packit Service |
3bf9d6 |
The error message says that the method requires a newer version of the
|
|
Packit Service |
3bf9d6 |
backend library.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix typos in Math::BigFloat and Math::BigInt.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add bfib() and blucas() to Math::BigInt. They return Fibonacci and Lucas
|
|
Packit Service |
3bf9d6 |
numbers, respectively. The actual computation of the numbers is done by the
|
|
Packit Service |
3bf9d6 |
backend library. Documented both methods in POD. Add test files bfib-mbi.t
|
|
Packit Service |
3bf9d6 |
and blucas-mbi.t.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add _fib() and _lucas() to Math::BigInt::Lib. They return Fibonacci and
|
|
Packit Service |
3bf9d6 |
Lucas numbers, respectively. Document both methods in POD. Add test files
|
|
Packit Service |
3bf9d6 |
author-lib-arithmetic-unary-_fib.t and author-lib-arithmetic-unary-_lucas.t.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2017-01-11 v1.999808 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* In Math::BigInt and Math::BigFloat, add methods bdfac() for double
|
|
Packit Service |
3bf9d6 |
factorial. Add tests for this method.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* In Math::BigInt and Math::BigFloat, add methods to_hex(), to_oct(), and
|
|
Packit Service |
3bf9d6 |
to_bin() for hexadecimal, octal, and binary string output without prefix.
|
|
Packit Service |
3bf9d6 |
Even for Math::BigFloat there is still only support for integer output. Add
|
|
Packit Service |
3bf9d6 |
tests for these methods.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add test for as_oct() corresponding to the old tests for as_hex() and
|
|
Packit Service |
3bf9d6 |
as_bin().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* In Math::BigInt::Lib, add method _dfac() for double factorial. Add
|
|
Packit Service |
3bf9d6 |
corresponding tests.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* In Math::BigInt::Lib, fix bug in overloaded "int".
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* In Math::BigInt::Lib, implement much faster versions of _from_hex(),
|
|
Packit Service |
3bf9d6 |
_from_oct(), and _from_bin().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* In Makefile.PL, improve the wording in the message displayed if some of
|
|
Packit Service |
3bf9d6 |
the installed backend libraries are not a subclass of Math::BigInt::Lib (and
|
|
Packit Service |
3bf9d6 |
hence will not provide
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix minor bugs in some of the author library test files (t/author-lib*.t).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Allow leading and trailing whitespace in the input to from_hex(),
|
|
Packit Service |
3bf9d6 |
from_oct(), and from_bin(). Add tests to verify. This is a regressions
|
|
Packit Service |
3bf9d6 |
(CPAN RT #119805).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-12-23 v1.999807 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add a message to Makefile.PL recommending upgrade if old libraries are
|
|
Packit Service |
3bf9d6 |
installed. This message is more or less equivalent to the one appearing in
|
|
Packit Service |
3bf9d6 |
Math-BigInt up until v1.997.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Improve the documentation (POD) in Math::BigInt::Lib.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Speed up _sqrt() and _root() in Math::BigInt::Lib.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Remove checking for exception cases (cases that would return +Inf, -Inf, or
|
|
Packit Service |
3bf9d6 |
NaN) in Math::BigInt::Lib. It has been documented for a long time that such
|
|
Packit Service |
3bf9d6 |
checking should be done by the caller.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add library methods _to_bin(), _to_oct(), _to_hex(), which are equivalent to
|
|
Packit Service |
3bf9d6 |
the _as_bin(), _as_oct(), and _as_hex() methods respectively, except that
|
|
Packit Service |
3bf9d6 |
the _to_*() methods don't use a prefix in the output. This removes the need
|
|
Packit Service |
3bf9d6 |
for the frequent removal of the various prefixes. Now each _as_*() method
|
|
Packit Service |
3bf9d6 |
calls the equivalent _to_*() method, adds a prefix, and returns the output.
|
|
Packit Service |
3bf9d6 |
The _to_*() methods are faster than the equivalent _as_*() methods were.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add author test files for the methods _to_bin(), _to_oct(), and _to_hex().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add library method _to_bytes(). The method _as_bytes() would have been
|
|
Packit Service |
3bf9d6 |
called _to_bytes() if I had thought of it earlier. The method _as_bytes() is
|
|
Packit Service |
3bf9d6 |
now just an alias to _to_bytes(). The _to_bytes() method also fixes a bug
|
|
Packit Service |
3bf9d6 |
that was present in the _as_bytes() method. (CPAN RT #119346).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add author test files for the method _to_bytes().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add more tests for library methods _inc() and _dec(). When trying to bring
|
|
Packit Service |
3bf9d6 |
the Math::BigInt::BitVect library back to life I realized that the test
|
|
Packit Service |
3bf9d6 |
suite didn't catch certain errors in _inc() and _dec().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Die if trying to use as_bytes() or from_bytes() with a backend library that
|
|
Packit Service |
3bf9d6 |
doesn't support the corresponding library methods.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Correct minor errors in the output messages in the test files.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Improve/correct various comments in the source code.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* More diagnostic output is displayed by the author test files if the
|
|
Packit Service |
3bf9d6 |
AUTHOR_DEBUGGING environment variable is set.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-12-13 v1.999806 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add more logic to Makefile.PL regarding INSTALLDIRS (CPAN RT #119199
|
|
Packit Service |
3bf9d6 |
and #119225).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* In the TODO file, remove stuff that has been implemented.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-12-11 v1.999805 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix Makefile.PL so that this module installs over the core version.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add more tests for _nok() (binomial coefficient "n over k"). These new tests
|
|
Packit Service |
3bf9d6 |
revealed some problems with some of the backend libraries when _nok() was
|
|
Packit Service |
3bf9d6 |
given very large arguments.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Remove t/Math/BigFloat/#Subclass.pm#, which is an Emacs temporary file
|
|
Packit Service |
3bf9d6 |
included by accident.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-12-07 v1.999804 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Implement as_bytes(), as requested (CPAN RT 119096). Also implement the
|
|
Packit Service |
3bf9d6 |
inverse conversion from_bytes(). This applies to Math::BigInt only. (Alas,
|
|
Packit Service |
3bf9d6 |
these methods will be inherited from Math::BigInt into Math::BigFloat,
|
|
Packit Service |
3bf9d6 |
Math::BigRat etc. where the methods won't work. Fixing this class
|
|
Packit Service |
3bf9d6 |
relationship is an issue of its own.)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Implement _as_bytes() and _from_bytes() in Math::BigInt::Lib. Preferably,
|
|
Packit Service |
3bf9d6 |
the various backend libraries will implement faster versions of their
|
|
Packit Service |
3bf9d6 |
own. Add author test files for testing these methods thorougly.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix from_hex(), from_oct(), and from_bin().
|
|
Packit Service |
3bf9d6 |
- When called as instance methods, the new value should be assigned to the
|
|
Packit Service |
3bf9d6 |
invocand unless the invocand is read-only (a constant).
|
|
Packit Service |
3bf9d6 |
- When called as instance methods, the assigned value was incorrect, if the
|
|
Packit Service |
3bf9d6 |
invocand was inf or NaN.
|
|
Packit Service |
3bf9d6 |
- Add tests to t/from_hex-mbf.t, t/from_oct-mbf.t, and t/from_bin-mbf.t
|
|
Packit Service |
3bf9d6 |
to confirm the fix.
|
|
Packit Service |
3bf9d6 |
- Add new test files t/from_hex-mbi.t, t/from_oct-mbi.t, and
|
|
Packit Service |
3bf9d6 |
t/from_bin-mbi.t for better testing of these methods with Math::BigInt.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Correct typo in Math/BigInt/Lib.pm (otherise -> otherwise) (CPAN RT 118829).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add POD coverage testing of Math::BigInt::Lib to t/03podcov.t.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-12-03 v1.999803 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Remove BENCHMARK file. The information was obsolete.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Use ExtUtils::MakeMaker rather than Module::Install in Makefile.PL
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Reorder CHANGES file (this file) so the newest entries appear at the top.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix error in test information text in various author test files.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Remove author information in LICENSE file.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Inform that the TODO file is not up to date.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-11-28 v1.999802 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* When bzero(), bone(), binf(), and bnan() are used as constructors, don't
|
|
Packit Service |
3bf9d6 |
check whether the class allows the object to be modified. A constructor
|
|
Packit Service |
3bf9d6 |
isn't modifying any existing object. This applies to both Math::BigInt and
|
|
Packit Service |
3bf9d6 |
Math::BigFloat.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Improve bgcd() and blcm(). This applies to both Math::BigInt and
|
|
Packit Service |
3bf9d6 |
Math::BigFloat.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-11-23 v1.999801 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix, hopefully once and for all, the longstanding problem of handling undef
|
|
Packit Service |
3bf9d6 |
as an operand to mathematical methods. The only method that accepts undef as
|
|
Packit Service |
3bf9d6 |
an operand is blog(), where the second operand might be undef, as in
|
|
Packit Service |
3bf9d6 |
$x->blog() or $x->blog($b), where $b is undef. The undef signifies that
|
|
Packit Service |
3bf9d6 |
Euler's number should be used as the base. With this fix, we should be able
|
|
Packit Service |
3bf9d6 |
to get Math::BigInt::Lite working again.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add least common multiple method _lcm() to Math::BigInt::Lib, and add
|
|
Packit Service |
3bf9d6 |
corresponding test file t/author-lib-arithmetic-binary-_lcm.t and test data
|
|
Packit Service |
3bf9d6 |
file t/author-lib-arithmetic-binary-_lcm.dat.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Remove internal function __lcm() which has become redundant now that _lcm()
|
|
Packit Service |
3bf9d6 |
is in the library.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Make it possible to use bgcd() and blcm() as class methods, since other
|
|
Packit Service |
3bf9d6 |
methods can be used as class methods. This applies to both Math::BigInt and
|
|
Packit Service |
3bf9d6 |
Math::BigFloat.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix blcm() with negative input. The LCM should always be non-negative. This
|
|
Packit Service |
3bf9d6 |
applies to both Math::BigInt and Math::BigFloat.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add tests for bgcd() and blcm() in t/bigintpm.t and t/bigfltpm.t.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix tests for blcm() assuming that LCM(0,0) should be a NaN. LCM(0,0) is 0
|
|
Packit Service |
3bf9d6 |
by convention.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Prefer Class->config('option') over Class->config()->{option}. However, this
|
|
Packit Service |
3bf9d6 |
does not seem to be working for all options. It seems that this won't work
|
|
Packit Service |
3bf9d6 |
properly until we move the global variables into the OO interface.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Explicitly specify the library in all test files that are shared between
|
|
Packit Service |
3bf9d6 |
Math-BigInt and the library distributions (FaatCalc, GMP, Pari, ...) with,
|
|
Packit Service |
3bf9d6 |
e.g., "use Math::BigInt only => 'Calc';". This way, it will fail immediately
|
|
Packit Service |
3bf9d6 |
if the specified library can't be loaded rather than using the fallback
|
|
Packit Service |
3bf9d6 |
library.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-11-15 v1.999800 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Upgrade bundled Module::Install from version 1.16 to version 1.17.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add Math::BigInt::Lib (lib/Math/BigInt/Lib.pm), a parent class for
|
|
Packit Service |
3bf9d6 |
Math::BigInt backend libraries.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Use objects in Math::BigInt::Calc, not just array refs. Also use OO-style,
|
|
Packit Service |
3bf9d6 |
i.e., use $class->_add($x, $y) rather than _add($class, $x, $y).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Not all library methods modify the invocand, so call library methods as,
|
|
Packit Service |
3bf9d6 |
e.g, $x = $LIB->method($x, $y) rather than just $LIB->method($x, $y).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Math::BigInt::Calc is now a subclass of Math::BigInt::Lib.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add Math::BigInt::Lib::Minimal (t/Math/BigInt/Lib/Minimal.pm) for testing
|
|
Packit Service |
3bf9d6 |
inheritance from Math::BigInt::Lib.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Minor simplification in Math::BigInt::Calc->_str().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Speed up Math::BigInt::Calc->_root().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Remove test files that were included in the previous release by accident.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add more tests and use more verbose output in some tests.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix typo in lib/Math/BigFloat.pm
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix documentation error in lib/Math/Calc.pm
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Use Config::Tiny and an .ini file to handle the library specific
|
|
Packit Service |
3bf9d6 |
configuration for the author-lib*.t test files.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-11-04 v1.999727 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Skip test exceeding the range of VAX floating point number in t/bigintpm.inc
|
|
Packit Service |
3bf9d6 |
(CPAN RT 118468).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix typo in lib/Math/BigInt.pm (CPAN RT 118550).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-07-15 v1.999726 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Re-insert Math::BigFloat->DESTROY, which was accidentally removed in
|
|
Packit Service |
3bf9d6 |
v1.999725.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-07-13 v1.999725 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
Changes:
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add method is_finite().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* In Math::BigInt and Math::BigFloat, remove warnings about deprecated usage,
|
|
Packit Service |
3bf9d6 |
at least until we have removed this usage from the "bignum" distribution.
|
|
Packit Service |
3bf9d6 |
These warnings were too annoying for some people.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
Improvements:
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Faster bnok() when the library (backend) does not support it.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* In the Math::BigFloat method bpi(), use a precomputed list of digits when
|
|
Packit Service |
3bf9d6 |
the accuracy is <= 1000. This speeds up the trigonometric functions
|
|
Packit Service |
3bf9d6 |
considerably, when I will introduce range reduction in a later release. This
|
|
Packit Service |
3bf9d6 |
makes the _atan_inv() method redundant, so remove it. Also, the _alen()
|
|
Packit Service |
3bf9d6 |
library method is now only used in _log_int(), which is good, because it
|
|
Packit Service |
3bf9d6 |
isn't clear from the docs and tests what it was supposed to do.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
Fixes:
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix bug in the Math::BigInt::Calc library method _digit(). It would
|
|
Packit Service |
3bf9d6 |
sometimes return undef or an empty string when it should have returned zero.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix bug in the Math::BigInt::Calc library method _rsft(). It would sometimes
|
|
Packit Service |
3bf9d6 |
return two output arguments.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix bug in the Math::BigInt::Calc library method _lsft(). When the number
|
|
Packit Service |
3bf9d6 |
zero was shifted N places in base 10, the result was not zero, but an
|
|
Packit Service |
3bf9d6 |
invalid object.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix bug in the Math::BigInt::Calc library methods _and(), _or(), and _xor().
|
|
Packit Service |
3bf9d6 |
They always assigned zero to the first input argument (the invocand).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Improve the Math::BigInt::Calc library method _log_int() for the cases when
|
|
Packit Service |
3bf9d6 |
the output is zero or one. Also simplify the code.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Simplify the code for the Math::BigInt::Calc library method _zeros().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Reformat Math::BigInt::Calc so it is easier to read, for me anyway.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add file t/author-bnok-mbi.t
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add one test file for every method in the libraries, including
|
|
Packit Service |
3bf9d6 |
t/Math/BigInt/Lib/TestUtil.pm with test utilities.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Clean up whitespace in all files in the distribution.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Better testing in t/author-bpi-mbf.t
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* The Math::BigInt::Calc library now always uses integers inside the objects,
|
|
Packit Service |
3bf9d6 |
so there is no longer any need for all the "0 + ..." to convert strings to
|
|
Packit Service |
3bf9d6 |
numbers, and the "int()" inside "length(int(...))" to determine the length
|
|
Packit Service |
3bf9d6 |
of an array element. The only case that needs "0 + ..." now is the
|
|
Packit Service |
3bf9d6 |
constructor _new(), whose input is a string.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
Note, however, that the Math::BigInt::FastCalc library method _new() still
|
|
Packit Service |
3bf9d6 |
creates objects with leading zeros, so until that is fixed, we can't remove
|
|
Packit Service |
3bf9d6 |
all the "0 + ..." etc. until Math::BigInt::FastCalc has been modified.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-06-19 v1.999724 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* In Math/BigInt.pm and Math/BigFloat.pm, correct and improve to the
|
|
Packit Service |
3bf9d6 |
documentation, e.g., reorder the methods so that methods that belogin
|
|
Packit Service |
3bf9d6 |
together are grouped together.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* In Math/BigInt.pm and Math/BigFloat.pm, refactor the code so that methods
|
|
Packit Service |
3bf9d6 |
that belong together are grouped together. Also use consistent code
|
|
Packit Service |
3bf9d6 |
formatting.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* In Math/BigInt/Calc.pm, reformat the code.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-06-09 v1.999723 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add Math::BigInt and Math::BigFloat methods bnstr(), bestr(), and bdstr(),
|
|
Packit Service |
3bf9d6 |
as well as corresponding methods nparts(), eparts(), and dparts(). Also add
|
|
Packit Service |
3bf9d6 |
test files bdstr-mbf.t, bdstr-mbi.t, bestr-mbf.t, bestr-mbi.t, bnstr-mbf.t,
|
|
Packit Service |
3bf9d6 |
bnstr-mbi.t, bsstr-mbf.t, bsstr-mbi.t, dparts-mbf.t, dparts-mbi.t,
|
|
Packit Service |
3bf9d6 |
eparts-mbf.t, eparts-mbi.t, nparts-mbf.t, nparts-mbi.t, sparts-mbf.t, and
|
|
Packit Service |
3bf9d6 |
sparts-mbi.t.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix documentation errors.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-04-26 v1.999722 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix bug in bone() and binf() when used as a function. The error caused
|
|
Packit Service |
3bf9d6 |
warnings about using an unitialized variable. This fix applies to both
|
|
Packit Service |
3bf9d6 |
Math::BigInt and Math::BigFloat.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-04-26 v1.999721 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Prevent Math::BigFloat methods band(), bior(), bxor(), and bnot() from
|
|
Packit Service |
3bf9d6 |
modifying unmodifiable objects.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-04-26 v1.999720 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Overloaded 'int' should not modify it's argument.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Better documentation of blsft() and brsft().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-04-25 v1.999719 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Revert the change to Math::BigFloat's blsft() and brsft() methods, which
|
|
Packit Service |
3bf9d6 |
truncated the input (and output) to integers. However, now convert the base
|
|
Packit Service |
3bf9d6 |
to an object only when the base isn't an object already. Also return NaN if
|
|
Packit Service |
3bf9d6 |
any of the three operands is a NaN.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Change t/bigfltpm.inc to reflect the changes to blsft() and brsft(). Also,
|
|
Packit Service |
3bf9d6 |
when a method should be tested, actually test that method, not the
|
|
Packit Service |
3bf9d6 |
overloaded operator, which doesn't necessarily behave in the exact same
|
|
Packit Service |
3bf9d6 |
manner as the method. This applies to the methods binc(), bdec(), bpow(),
|
|
Packit Service |
3bf9d6 |
badd(), bsub(), bmul(), bdiv() in scalar context, brsft(), blsft(), and
|
|
Packit Service |
3bf9d6 |
bmod().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* The first output argument from objectify() is the class name, so use the
|
|
Packit Service |
3bf9d6 |
variable name $class, not $self.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-04-22 v1.999718 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Improve documentation on large, unquoted input values to Math::BigInt.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Remove stuff from bitfltpm.inc that was placed into author-numify-mbf.t, but
|
|
Packit Service |
3bf9d6 |
accidentally still present in bitfltpm.inc. Adjusted test counts as needed.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix file headers in author-bmod-bdiv-mbi.t and author-btmod-btdiv-mbi.t.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add bnan(), binf(), and bsub() methods to Math::BigFloat. This is a step
|
|
Packit Service |
3bf9d6 |
along the way to having Math::BigFloat no longer being a subclass of
|
|
Packit Service |
3bf9d6 |
Math::BigInt.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Using bnan, binf(), bzero() and bone() as functions is deprecated. This is a
|
|
Packit Service |
3bf9d6 |
step along the way to a pure object oriented design.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* When bnan() and binf() are used as instance methods, they no longer delete
|
|
Packit Service |
3bf9d6 |
the accuracy and precision instance variables.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add test files from_bin-mbf.t, from_oct-mbf.t, and new-mbf.t.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Remove some code for Perl prior to 5.6. Such old versions are no longer
|
|
Packit Service |
3bf9d6 |
support anyway.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix buggy handling of NaN in bcmp().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add methods beq(), bne(), blt(), ble(), bgt(), and bge() to Math::BigInt and
|
|
Packit Service |
3bf9d6 |
Math::BigFloat. These methods are called for the overloaded operators.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add overloading of '==', '!=', '<', '<=', '>', to to Math::BigInt and
|
|
Packit Service |
3bf9d6 |
Math::BigFloat and fix the broken overloading of '>='. These overloaded
|
|
Packit Service |
3bf9d6 |
operators now behave like the equivalent core Perl operators.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add test file author-relop-mbi-mbf.t for testing bcmp(), beq(), bne(),
|
|
Packit Service |
3bf9d6 |
blt(), ble(), bgt(), and bge(), as well as the overloaded operators '==',
|
|
Packit Service |
3bf9d6 |
'!=', '<', '<=', '>', and '>='.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* 'int' now truncates a Math::BigFloat object to an integer without converting
|
|
Packit Service |
3bf9d6 |
it to a Math::BigInt. When an object becomes a Math::BigInt, further
|
|
Packit Service |
3bf9d6 |
computations with that object as invocand causes the arguments to be
|
|
Packit Service |
3bf9d6 |
converted to Math::BigInt objects too, leading to unexpected results. This
|
|
Packit Service |
3bf9d6 |
is confusing people. Unless downgrading is in effect, no Math::BigFloat
|
|
Packit Service |
3bf9d6 |
object should become a Math::BigInt unless a Math::BigInt is explicitly
|
|
Packit Service |
3bf9d6 |
requested.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* For Math::BigFloat, modify bitwise operations brsft() and brsft(), and add
|
|
Packit Service |
3bf9d6 |
band(), bior(), bxor(), and bnot(). These now handle floating point numbers
|
|
Packit Service |
3bf9d6 |
the same way as core Perl does, i.e., truncate non-integers to integers
|
|
Packit Service |
3bf9d6 |
before applying the bitwise operator. This change will also make Perl's
|
|
Packit Service |
3bf9d6 |
behaviour more consistent whether 'use bignum' is in effect or not.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add overloading of '~' (bitwise not). It just calls bnot(), which has been
|
|
Packit Service |
3bf9d6 |
implemented for ages.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix error in POD for bone().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Take parts of the code in t/calling.t and move it into the new files
|
|
Packit Service |
3bf9d6 |
t/calling-class-methods.t and t/calling-instance-methods.t.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Improve test descriptions in t/mbimbf.inc.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-04-16 v1.999717 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Using new() with an undefined argument no longer gives a warning. Explicit
|
|
Packit Service |
3bf9d6 |
use of this is discouraged, but it is sometimes used by the modules
|
|
Packit Service |
3bf9d6 |
themselves issuing warnings that is confusing to the end user. Just
|
|
Packit Service |
3bf9d6 |
uncomment the code, since we plan to reintroduce this warning later.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Avoid using L<> around e-mail addressess in POD.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-04-03 v1.999716 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* $x->new(...) can no longer be used to assign a value to $x. This was a
|
|
Packit Service |
3bf9d6 |
mistake introduced in v1.999712. As the name "new" implies, it should always
|
|
Packit Service |
3bf9d6 |
return a new object.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Using new() with no argument no longer gives a warning. This use has been
|
|
Packit Service |
3bf9d6 |
discouraged, in favour of bzero(), for many years, but people are still
|
|
Packit Service |
3bf9d6 |
using it, so I am reintroducing the support for this.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Added btdiv() and btmod() for truncated division (T-division) and ditto
|
|
Packit Service |
3bf9d6 |
remainder. Add tests.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add test files author-bmod-bdiv-mbi.t author-btmod-btdiv-mbi.t with more
|
|
Packit Service |
3bf9d6 |
thorough testing of bdiv(), bmod(), btdiv(), and btmod().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* When new() is used as an instance method, the new object is initialized as a
|
|
Packit Service |
3bf9d6 |
copy of the invocand.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Move test for numfiy() of +Inf, -Inf, NaN, and big integers from
|
|
Packit Service |
3bf9d6 |
bigfltpm.inc and bigintpm.inc into author-numify-mbi.t and
|
|
Packit Service |
3bf9d6 |
author-numify-mbf.t.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Improved wording and fixed typos in earlier changelog entries.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-01-05 v1.999715 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix Math::BigFloat->bexp() based on patch by DANAJ (Dana Jacobsen).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add Math::BigFloat->bexp() tests to "t/biglog.t" and new file
|
|
Packit Service |
3bf9d6 |
"t/author-bexp-mbf.t".
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix flawed test in test_bpow. It used ok($x, $y) rather than is($x, $y).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add better descriptions (test names) to a few tests.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Wrap long line in the CHANGES file.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2016-01-03 v1.999714 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add code to speed up Math::BigFloat->batan(). Thanks to DANAJ (Dana
|
|
Packit Service |
3bf9d6 |
Jacobsen) for the patch.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Re-write Math::BigFloat->batan2() completely, except for the parts related
|
|
Packit Service |
3bf9d6 |
to the rounding. The old version was sometimes correct, sometimes off by pi,
|
|
Packit Service |
3bf9d6 |
and sometimes very inaccurate. Also add more tests.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Make it clearer in Math::BigFloat->bpi() when it is called as a method vs.
|
|
Packit Service |
3bf9d6 |
as a function.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* The Math::BigFloat->bpi() method can now be used as an instance method to
|
|
Packit Service |
3bf9d6 |
assign pi to $x, as in $x->bpi().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add tests for as_oct().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Minor simplifications in Math::BigInt->as_oct() and
|
|
Packit Service |
3bf9d6 |
Math::BigInt::Calc::_as_oct().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2015-12-31 v1.999713 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix Math::BigInt->new(), which had a faulty handling in the shortcut for
|
|
Packit Service |
3bf9d6 |
non-zero scalar integers with no non-zero exponent, like "12", "12.000",
|
|
Packit Service |
3bf9d6 |
"12e3", and "12.000e4". Added tests for this in t/bigintpm.inc.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2015-12-29 v1.999712 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix bug in internal function _e_add() and _e_sub() which causes it to return
|
|
Packit Service |
3bf9d6 |
"-0" in some cases.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Let new() be used for assignment. Now $x->new(3) assigns 3 to $x.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Improve code in new() for non-zero scalar integers with no exponent.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Allow both "inf" and "infinity". Allow a leading sign, and ignore letter
|
|
Packit Service |
3bf9d6 |
case. This is to be consistent with core Perl.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Be more consistent about allowed whitespace in input. E.g., "23 " gave 23,
|
|
Packit Service |
3bf9d6 |
but "inf " gave a NaN.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Core Perl allows both "0x" and "0X" as hexadecimal prefix, and both "0b" and
|
|
Packit Service |
3bf9d6 |
"0B" as binary prefix, so we do too. Previously, only 0x and 0b were
|
|
Packit Service |
3bf9d6 |
allowed.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Math::BigFloat now has its own from_bin() method which supports binary
|
|
Packit Service |
3bf9d6 |
floating point numbers, e.g., "0b1.1001p-4". This complements from_hex().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Math::BigFloat now has its own from_oct() method which supports octal
|
|
Packit Service |
3bf9d6 |
floating point numbers, e.g., "1.3267p-4". This complements from_hex().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* The Math::BigInt and Math::BigFloat methods from_hex(), from_oct(), and
|
|
Packit Service |
3bf9d6 |
from_bin() can now be used as instance methods to assign values to the
|
|
Packit Service |
3bf9d6 |
invocand, e.g, $x->from_oct("10") assigns 8 to $x.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Update documentation. Perl now uses "Inf", not "inf" to represent infinity.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* When the new() method is called with an undefined argument, the round
|
|
Packit Service |
3bf9d6 |
parameters are now passed on to bzero(). This applies to both Math::BigInt
|
|
Packit Service |
3bf9d6 |
and Math::BigFloat.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Replace "UNIVERSAL::isa($this, $that)" with "$this->isa($that)", and ditto
|
|
Packit Service |
3bf9d6 |
for "can()", where possible. Not every instance of "UNIVERSAL::Isa()" has
|
|
Packit Service |
3bf9d6 |
been replaced, though, since the change causes some tests to fail. This must
|
|
Packit Service |
3bf9d6 |
be looked into.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Simplify the copy() methods. Always copy accuracy and precision parameters,
|
|
Packit Service |
3bf9d6 |
even when they are undefined.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Reformat more of the code in accordancw with the "perlstyle" manual page.
|
|
Packit Service |
3bf9d6 |
This makes the code a lot easier to read -- for me, anyway.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Use a more generic regex in t/calling.t, since the exact wording of the
|
|
Packit Service |
3bf9d6 |
error message depends not on the Perl version, but on the module that does
|
|
Packit Service |
3bf9d6 |
the version checking.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Avoid infinite loop in the Math::BigFloat->batan() method. Thanks to DANAJ
|
|
Packit Service |
3bf9d6 |
(Dana Jacobsen) for the patch. This was not intended to be added before the
|
|
Packit Service |
3bf9d6 |
next release, but was included in this release by accident.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2015-11-12 v1.999710 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* New method Math::BigFloat -> from_hex() which supports hexadecimal floating
|
|
Packit Service |
3bf9d6 |
point numbers, e.g., "0x1.999ap-4".
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* New test file t/from_hex-mbf.t for testing Math::BigFloat -> from_hex().
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add 'from_hex' and 'from_bin' to list of methods in the Math::BigInt POD.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2015-11-06 v1.999709 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Represent and return zero as 0E0, not 0E1. The old POD said "A zero is
|
|
Packit Service |
3bf9d6 |
represented and returned as 0E1, not 0E0 (after Knuth)." I find no
|
|
Packit Service |
3bf9d6 |
references to Knuth ever having said this. The closest reference I can find
|
|
Packit Service |
3bf9d6 |
is that Knuth says 0**0 should be defined to be 1, not 0, but that is
|
|
Packit Service |
3bf9d6 |
something else than 0e0, which is 0*10**0. I have yet to see any other
|
|
Packit Service |
3bf9d6 |
mathematical software that represents and returns zero as 0e1 rather than
|
|
Packit Service |
3bf9d6 |
0e0.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Required version of Test::More is 0.9301.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2015-11-03 v1.999708 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Use bxxx() method names consistently, rather than mixing bxxx() and fxxx()
|
|
Packit Service |
3bf9d6 |
in code and test files. The fxxx() methods for Math::BigFloat objects are
|
|
Packit Service |
3bf9d6 |
still available through autoloading. However, we leave the fround() method
|
|
Packit Service |
3bf9d6 |
in Math::BigInt, as it seems to provide some kind of compatibility with
|
|
Packit Service |
3bf9d6 |
Math::BigFloat.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Correct author information in the README file.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Remove INSTALL file, which by accident wasn't removed in v1.999707.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Use present tense, not past tense, in CHANGES file.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add '#!perl' to Makefile.PL for correct syntax highlighting in editors
|
|
Packit Service |
3bf9d6 |
supporting this.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Use Math::Complex::Inf() in testfiles also (for generating Perl scalar
|
|
Packit Service |
3bf9d6 |
infinity) since it is more portable.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2015-10-29 v1.999707 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add dependency on Math::Complex 1.39 for Math::Complex::Inf(), which is
|
|
Packit Service |
3bf9d6 |
used for numifying infinity.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Update author information.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Update information in the file README.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Remove the files INSTALL and LICENSE as this information is already covered
|
|
Packit Service |
3bf9d6 |
in the file README.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Enable 'use warnings' in all modules. We require a Perl newer than 5.6.0
|
|
Packit Service |
3bf9d6 |
anyway.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Replace 'use vars ...' with 'our ...'. We require a Perl newer than 5.6.0
|
|
Packit Service |
3bf9d6 |
anyway.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Avoid indirect object syntax in documentation.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Moved 'Test::More' from 'build_requires' to 'test_requires' in Makefile.PL.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2015-10-28 v1.999706 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Correct release date of v1.999705 in CHANGES.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add code and tests for numify() on non-finite objects.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2015-10-26 v1.999705 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Avoid using "my" in a false conditional. See "Deprecated use of my() in
|
|
Packit Service |
3bf9d6 |
false conditional" in perldiag(1).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Faster algorithm for bpi() when accuracy is >= 1000.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2015-09-25 v1.999704 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* objectify() in lib/Math/BigInt.pm now uses 'isa' not 'eq' to check object
|
|
Packit Service |
3bf9d6 |
relationship. This is necessary for correct handling of subclasses.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* objectify() in lib/Math/BigInt.pm no longer expects as_int(), as_number()
|
|
Packit Service |
3bf9d6 |
and as_float() to return objects, but allows them to return numbers
|
|
Packit Service |
3bf9d6 |
formatted as strings. This is used by some other modules on CPAN.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Better documentation of as_int() and as_number() in lib/Math/BigInt.pm.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add documentation for as_float() in lib/Math/BigFloat.pm
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add test files t/objectify_mbf.t and t/objectify_mbi.t.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2015-09-21 v1.999703 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix blog() in Math::BigInt and Math::BigFloat to work correctly regardless
|
|
Packit Service |
3bf9d6 |
of the base.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Correct existing tests in bigintpm.inc and bigfltpm.inc.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Update test plans (number of tests) in t/bare_mbi.t, t/bigintpm.t, and
|
|
Packit Service |
3bf9d6 |
t/sub_mbi.t.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add test files t/blog-mbf.t and t/blog-mbi.t for better testing of the
|
|
Packit Service |
3bf9d6 |
blog() methods.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2015-09-17 v1.999702 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* The overloaded log() is a unary operator, so don't pass additional
|
|
Packit Service |
3bf9d6 |
arguments.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix blog() so the cases $x->blog() and $x->blog(undef) work correctly. An
|
|
Packit Service |
3bf9d6 |
undefined base means that blog() should use base e (Euler's number).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Both CORE::log() and other mathematical software returns inf for log(inf),
|
|
Packit Service |
3bf9d6 |
so we do the same.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add tests for log() as well as templates for future tests of the other
|
|
Packit Service |
3bf9d6 |
overloadable functions.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Improve descriptions of a few tests.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2015-09-11 v1.999701 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* The POD documentation, as well as the comments in the code, said that
|
|
Packit Service |
3bf9d6 |
$x->bdiv($y) in list context should return quotient $q and remainder $r so
|
|
Packit Service |
3bf9d6 |
that $x = $q * $y + $r, and that the remainder (modulo) $r should correspond
|
|
Packit Service |
3bf9d6 |
to Perl's % operator as well as the bmod() method. This has not been the
|
|
Packit Service |
3bf9d6 |
actual behaviour. This is now fixed. In scalar context, only the quotient is
|
|
Packit Service |
3bf9d6 |
returned.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Clearer POD documentation for the bdiv() and bmod() methods.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* All non-integer input values to Math::BigInt gave a NaN, except non-zero
|
|
Packit Service |
3bf9d6 |
numbers in the range (-1,1) that were written without an exponent, e.g.,
|
|
Packit Service |
3bf9d6 |
"-0.75" and "0.5". Now also these return a NaN.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Input values with a large (absolute value) negative exponent, e.g.,
|
|
Packit Service |
3bf9d6 |
1e-9999999, now return NaN. The former behaviour was to die with the message
|
|
Packit Service |
3bf9d6 |
"Quantifier in {,} bigger than 32766 in regex; marked by ..."
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Intermediate computations in blog() increased the number of digits
|
|
Packit Service |
3bf9d6 |
significantly in some cases. Now reduce the number of digits by rounding.
|
|
Packit Service |
3bf9d6 |
However, keep some extra digits for remaining intermediate computations
|
|
Packit Service |
3bf9d6 |
before the final rounding.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* When $x is a Math::BigFloat, $x -> bceil() and $x -> bint() for -1 < $x < 0
|
|
Packit Service |
3bf9d6 |
returned -0. Negative zero is never used by Math::Big(Int|Float), and care
|
|
Packit Service |
3bf9d6 |
has been taken to avoid it, so this bug is surely an oversight.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Explicitly specify the backend (lib => 'Calc') in t/mbimbf.t for easier
|
|
Packit Service |
3bf9d6 |
release management of the backend distributions.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add "use warnings" to test scripts, since Perl 5.6.2 is required anyway, and
|
|
Packit Service |
3bf9d6 |
"use warnings" was introduced in Perl 5.6.1.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Modified test scripts so the difference between the test files in the
|
|
Packit Service |
3bf9d6 |
Math-BigInt distribution and the backend distributions are as few and as
|
|
Packit Service |
3bf9d6 |
small as possible. This makes for easier release management.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2015-08-12 v1.9997 pjacklam
|
|
Packit Service |
3bf9d6 |
CHANGES
|
|
Packit Service |
3bf9d6 |
* Add recent changes.
|
|
Packit Service |
3bf9d6 |
t/bigintpm.inc
|
|
Packit Service |
3bf9d6 |
* Correct spelling errors.
|
|
Packit Service |
3bf9d6 |
t/upgrade.inc
|
|
Packit Service |
3bf9d6 |
* Correct spelling errors.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2015-08-12 v1.9996 pjacklam
|
|
Packit Service |
3bf9d6 |
CHANGES
|
|
Packit Service |
3bf9d6 |
* Add recent changes.
|
|
Packit Service |
3bf9d6 |
* Use present tense in change descriptions.
|
|
Packit Service |
3bf9d6 |
lib/Math/BigInt.pm
|
|
Packit Service |
3bf9d6 |
* Change incorrect use of ok() to is() in example.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2015-08-11 v1.9995 pjacklam
|
|
Packit Service |
3bf9d6 |
CHANGES
|
|
Packit Service |
3bf9d6 |
* Move changes that were incorrectly reported as being for the release 1.9994
|
|
Packit Service |
3bf9d6 |
when they were in fact for release 1.9993.
|
|
Packit Service |
3bf9d6 |
* Add changes both for release 1.9994 and 1.9995.
|
|
Packit Service |
3bf9d6 |
lib/Math/BigInt.pm
|
|
Packit Service |
3bf9d6 |
* Break lines to avoid lines with more than 80 characters.
|
|
Packit Service |
3bf9d6 |
* Improve objectify() for better handling of subclasses.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2015-08-10 v1.9994 pjacklam
|
|
Packit Service |
3bf9d6 |
CHANGES
|
|
Packit Service |
3bf9d6 |
* Add recent changes.
|
|
Packit Service |
3bf9d6 |
lib/Math/BigFloat.pm
|
|
Packit Service |
3bf9d6 |
* Fix blog() which sometimes returns incorrect result.
|
|
Packit Service |
3bf9d6 |
* bdiv() in list context now returns the integer quotient and the remainder.
|
|
Packit Service |
3bf9d6 |
t/bigfltpm.inc
|
|
Packit Service |
3bf9d6 |
* Modify tests for blog() in list context.
|
|
Packit Service |
3bf9d6 |
t/biglog.t
|
|
Packit Service |
3bf9d6 |
* Change incorrect use of ok() to is().
|
|
Packit Service |
3bf9d6 |
t/upgrade.inc
|
|
Packit Service |
3bf9d6 |
* Modify tests for blog() in list context.
|
|
Packit Service |
3bf9d6 |
inc/Module/Install*
|
|
Packit Service |
3bf9d6 |
* Upgrade bundled Module::Install from version 1.08 to version 1.16.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2014-04-03 v1.9993 pjacklam
|
|
Packit Service |
3bf9d6 |
BUGS
|
|
Packit Service |
3bf9d6 |
* Add reference to CPAN RT for the Math-BigInt distro.
|
|
Packit Service |
3bf9d6 |
CHANGES
|
|
Packit Service |
3bf9d6 |
* Add recent changes.
|
|
Packit Service |
3bf9d6 |
examples/hailstone.pl
|
|
Packit Service |
3bf9d6 |
* Remove this file as it doesn't seem to be working.
|
|
Packit Service |
3bf9d6 |
lib/Math/BigFloat.pm
|
|
Packit Service |
3bf9d6 |
* Correct spelling errors.
|
|
Packit Service |
3bf9d6 |
* Reformat code to avoid long lines.
|
|
Packit Service |
3bf9d6 |
* Improve POD formatting.
|
|
Packit Service |
3bf9d6 |
* Add meta-documentation (CPAN ratings, CPAN testers matrix, etc.)
|
|
Packit Service |
3bf9d6 |
* Add the bint() method.
|
|
Packit Service |
3bf9d6 |
lib/Math/BigInt.pm
|
|
Packit Service |
3bf9d6 |
* Correct spelling errors.
|
|
Packit Service |
3bf9d6 |
* Reformat code to avoid long lines.
|
|
Packit Service |
3bf9d6 |
* Improve POD formatting.
|
|
Packit Service |
3bf9d6 |
* Add meta-documentation (CPAN ratings, CPAN testers matrix, etc.)
|
|
Packit Service |
3bf9d6 |
* Add the bint() method.
|
|
Packit Service |
3bf9d6 |
* Remove references to the obsolete Math::Big
|
|
Packit Service |
3bf9d6 |
lib/Math/BigInt/Calc.pm
|
|
Packit Service |
3bf9d6 |
* Correct spelling errors.
|
|
Packit Service |
3bf9d6 |
* Added meta-documentation (CPAN ratings, CPAN testers matrix, etc.)
|
|
Packit Service |
3bf9d6 |
lib/Math/BigInt/CalcEmu.pm
|
|
Packit Service |
3bf9d6 |
* Correct spelling errors.
|
|
Packit Service |
3bf9d6 |
* Improve POD formatting.
|
|
Packit Service |
3bf9d6 |
* Add meta-documentation (CPAN ratings, CPAN testers matrix, etc.)
|
|
Packit Service |
3bf9d6 |
* Remove references to Math::BigInt::BitVect, which is no longer on CPAN.
|
|
Packit Service |
3bf9d6 |
Makefile.PL
|
|
Packit Service |
3bf9d6 |
* Remove code that checks for compatible versions of distributions that
|
|
Packit Service |
3bf9d6 |
depend on Math-BigInt. Such checking should be done in the distributions
|
|
Packit Service |
3bf9d6 |
that depend on Math-BigInt, not in Math-BigInt itself.
|
|
Packit Service |
3bf9d6 |
NEW
|
|
Packit Service |
3bf9d6 |
* This file now only refers to the change log.
|
|
Packit Service |
3bf9d6 |
t/bigfltpm.inc
|
|
Packit Service |
3bf9d6 |
* Add tests for fint().
|
|
Packit Service |
3bf9d6 |
t/bigintpm.inc
|
|
Packit Service |
3bf9d6 |
* Add tests for int().
|
|
Packit Service |
3bf9d6 |
t/upgrade.inc
|
|
Packit Service |
3bf9d6 |
* Add tests for int().
|
|
Packit Service |
3bf9d6 |
t/*.t
|
|
Packit Service |
3bf9d6 |
* Increment test counts as needed for the new tests in the t/*.inc files.
|
|
Packit Service |
3bf9d6 |
inc/Module/Install*
|
|
Packit Service |
3bf9d6 |
* Upgrade bundled Module::Install from version 1.01 to version 1.08.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2012-12-10 v1.9997_11 pjacklam
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
This release introduces no changes in the library code, i.e., the .pm files in
|
|
Packit Service |
3bf9d6 |
the 'lib' directory, but there are a lot of changes in the test files. Since
|
|
Packit Service |
3bf9d6 |
there are so many changes, I let this be a development release.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add 'use strict;' and 'use warnings;' to all test files.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Reformat code in the test files according to the "perlstyle" manual page.
|
|
Packit Service |
3bf9d6 |
This makes the code a lot easier to read -- for me, anyway.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Decrement required version of Perl from v5.6.2 to v5.6.1. All tests pass
|
|
Packit Service |
3bf9d6 |
when running the test suite with Perl 5.6.1 on Cygwin.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Replace "use vars ..." with "our ..." in test files.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Replace "BEGIN { unshift @INC, 't'; }" with "use lib 't';" in test files.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Use "our $x; $x = ...;" rather than "our $x = ...;" since the latter causes
|
|
Packit Service |
3bf9d6 |
Perl 5.6.1 to complain about variables only used once.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Add comment to all tests. Now the tests no longer says just "ok 123", but
|
|
Packit Service |
3bf9d6 |
rather "ok 123 - $x->blog(2)" etc. This makes it easier to identify failed
|
|
Packit Service |
3bf9d6 |
tests, especially in the smoke testing reports.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Fix various flawed tests, e.g., ok($x, 2) was used testing whether $x was 2.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Use the skip() feature of Test::More for skipping tests.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Use more descriptive variable names in test files.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Remove unused variables in test files.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Move variable declarations to limit their scope in test files.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Remove trailing whitespace in test files.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
* Wrap (most) lines to fit 80 columns in test files.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2011-09-04 v1.997 pjacklam
|
|
Packit Service |
3bf9d6 |
* Document actual behaviour of from_xxx() methods. [perl #85334] (Peter John
|
|
Packit Service |
3bf9d6 |
Acklam)
|
|
Packit Service |
3bf9d6 |
* Make bmuladd() able to handle third arg properly. [perl #85482] (Peter John
|
|
Packit Service |
3bf9d6 |
Acklam)
|
|
Packit Service |
3bf9d6 |
* Add sign function bsgn() as a complement to babs(). (Peter John Acklam)
|
|
Packit Service |
3bf9d6 |
* Fix objectify()'s handling of "foreign objects". (RT #16221 and #52124)
|
|
Packit Service |
3bf9d6 |
(Peter John Acklam)
|
|
Packit Service |
3bf9d6 |
* Rewrap some verbatim pod in Math::BigInt. (Father Chrysostomos)
|
|
Packit Service |
3bf9d6 |
* Correct links to sections. (Alexandr Ciornii)
|
|
Packit Service |
3bf9d6 |
* Remove incorrect formatting inside verbatim paragraphs. (Alexandr Ciornii)
|
|
Packit Service |
3bf9d6 |
* Upgrade bundled modules in "inc" to latest version. (Peter John Acklam)
|
|
Packit Service |
3bf9d6 |
* Include "^MYMETA\.(yml|json)\z" in MANIFEST.SKIP. Whereas META.* are
|
|
Packit Service |
3bf9d6 |
generated by the distribution author at packaging time, MYMETA.* are
|
|
Packit Service |
3bf9d6 |
generated by the end user at configure time after any dynamic dependencies
|
|
Packit Service |
3bf9d6 |
are known. (Peter John Acklam)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2011-02-26 v1.993 pjacklam
|
|
Packit Service |
3bf9d6 |
* Change default backend library from Math::BigInt::FastCalc to
|
|
Packit Service |
3bf9d6 |
Math::BigInt::Calc, which is included in the Math-BigInt distro. This
|
|
Packit Service |
3bf9d6 |
avoids recursive distribution dependency (RT #65976) (Peter John Acklam).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2011-02-18 v1.992 pjacklam
|
|
Packit Service |
3bf9d6 |
* Math::BigInt::Calc->_nok(): Use symmetry property nok(n,k) = nok(n,n-k) to
|
|
Packit Service |
3bf9d6 |
speed up execution when k is large. Also general code cleanup. (Peter John
|
|
Packit Service |
3bf9d6 |
Acklam).
|
|
Packit Service |
3bf9d6 |
* Math::BigInt::Calc->_gcd(): Speed up by reducing amount of data copying
|
|
Packit Service |
3bf9d6 |
(Peter John Acklam).
|
|
Packit Service |
3bf9d6 |
* Add '01load.t' for basic module loading and diagnostics useful for
|
|
Packit Service |
3bf9d6 |
debugging. Rename '00-signature.t' to '00sig.t', 'pod.t' to '02pod.t', and
|
|
Packit Service |
3bf9d6 |
'pod_cov.t' to '03podcov.t' (Peter John Acklam).
|
|
Packit Service |
3bf9d6 |
* Math::BigInt:: Make from_hex(), from_oct(), and behave more like hex() and
|
|
Packit Service |
3bf9d6 |
oct() in the Perl core, and make from_bin() consistent with from_hex() and
|
|
Packit Service |
3bf9d6 |
from_oct() (this is related to RT #58954) (Peter John Acklam).
|
|
Packit Service |
3bf9d6 |
* Math::BigInt::Calc->_rem(): Modify first input arg always, not just
|
|
Packit Service |
3bf9d6 |
sometimes (Peter John Acklam).
|
|
Packit Service |
3bf9d6 |
* Math::BigInt::Calc->_modinv(): be more consistent with the _modinv() method
|
|
Packit Service |
3bf9d6 |
in other libraries (Math::BigInt::GMP, etc.) (Peter John Acklam)
|
|
Packit Service |
3bf9d6 |
* Math::BigInt::Calc->_nok(): use symmetry property nok(n,k) = nok(n,n-k).
|
|
Packit Service |
3bf9d6 |
This cuts computation time tremendously when n and k are large (Peter John
|
|
Packit Service |
3bf9d6 |
Acklam).
|
|
Packit Service |
3bf9d6 |
* Math::BigInt::Calc->_gcd(): quickly handle zero cases, avoid code
|
|
Packit Service |
3bf9d6 |
duplication, and always modify the first input argument in-place (Peter John
|
|
Packit Service |
3bf9d6 |
Acklam).
|
|
Packit Service |
3bf9d6 |
* Clean up code and add more code comments (Peter John Acklam).
|
|
Packit Service |
3bf9d6 |
* Fix typos (Peter John Acklam).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2011-02-05 v1.991 pjacklam
|
|
Packit Service |
3bf9d6 |
* Add workaround for library inconsistencies (Math::BigInt::Calc vs.
|
|
Packit Service |
3bf9d6 |
Math::BigInt::GMP). This makes older versions of Math::BigInt::GMP
|
|
Packit Service |
3bf9d6 |
work with latest version of Math::BigInt (Peter John Acklam).
|
|
Packit Service |
3bf9d6 |
* Correct and extend API documentation (Peter John Acklam).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2011-01-29 v1.99_05 pjacklam
|
|
Packit Service |
3bf9d6 |
* Fix typos (reminder -> remainder etc.) (Peter John Acklam)
|
|
Packit Service |
3bf9d6 |
* Fix Math::BigInt::Calc::_num returning NaN, not Inf, when it overflowed
|
|
Packit Service |
3bf9d6 |
(Peter John Acklam) (Closes: RT #25274).
|
|
Packit Service |
3bf9d6 |
* Fix Math::BigFloat->bcmp() so it can handle arbitrarily large exponents
|
|
Packit Service |
3bf9d6 |
(Peter John Acklam) (Closes: RT #62764).
|
|
Packit Service |
3bf9d6 |
* Fix bmodpow() in Math::BigInt 1.99 mis-calculating powers of one
|
|
Packit Service |
3bf9d6 |
(Peter John Acklam) (Closes: RT #63237).
|
|
Packit Service |
3bf9d6 |
* Fix bmodpow() and bmodinv() in Math::BigInt to handle negative input
|
|
Packit Service |
3bf9d6 |
(Peter John Acklam) (Closes: RT #61543)
|
|
Packit Service |
3bf9d6 |
* Clean up whitespace (Nicholas Clark).
|
|
Packit Service |
3bf9d6 |
* Added file t/00-signature.t for testing SIGNATURE (Peter John Acklam).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
Complete version history of the rewrite project
|
|
Packit Service |
3bf9d6 |
===============================================
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
If you just want to see which things are new and different from the original
|
|
Packit Service |
3bf9d6 |
Math::* in the Perl core, see HISTORY.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
##############################################################################
|
|
Packit Service |
3bf9d6 |
Math::BigInt::Calc:
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-09-16 v0.52 Tels
|
|
Packit Service |
3bf9d6 |
* fix 64bit ints on Perl v5.8.0 (thanx zefram)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-05-30 v0.51 Tels
|
|
Packit Service |
3bf9d6 |
* use CORE::hex() instead of hex() to help bigint/bignum/bigrat
|
|
Packit Service |
3bf9d6 |
* use 9 digit parts on 64bit integer or long double systems
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-05-05 v0.50 Tels
|
|
Packit Service |
3bf9d6 |
* speed up _mul() by "use integer;"
|
|
Packit Service |
3bf9d6 |
* we do not need to remove zeros after mul()
|
|
Packit Service |
3bf9d6 |
* implement an alternative algorithm for _fac()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-04-16 v0.49 Tels
|
|
Packit Service |
3bf9d6 |
* API version 2.0 support: add _1ex(), _alen()
|
|
Packit Service |
3bf9d6 |
* make _fac() about twice as fast
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-01-27 v0.48 Tels
|
|
Packit Service |
3bf9d6 |
* support for octal numbers
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2005-05-17 v0.47 Tels
|
|
Packit Service |
3bf9d6 |
* remove shortcut in div(), it wasn't working properly
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2005-03-29 v0.46 Tels
|
|
Packit Service |
3bf9d6 |
* avoid crash in FastCalc by making $BASE and $BASE_LEN use vars qw//;
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2005-03-20 v0.45 Tels
|
|
Packit Service |
3bf9d6 |
* fix the div() shortcut for short numbers to actually work
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2005-01-01 v0.44 Tels
|
|
Packit Service |
3bf9d6 |
* small cleanups
|
|
Packit Service |
3bf9d6 |
* shortcut for numbers of same length in _div, where X > Y
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-10-10 v0.42 Tels
|
|
Packit Service |
3bf9d6 |
* fix critical bug in _from_hex() with parts that were to big for one part
|
|
Packit Service |
3bf9d6 |
(introduced in v1.72, thanx Mark Lakata for finding it!)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-07-30 v0.41 Tels
|
|
Packit Service |
3bf9d6 |
* from_hex() convert 28 bits (vs 16) at a time, faster (helps from_bin(), too)
|
|
Packit Service |
3bf9d6 |
* potential bug in padding with '0' in _digit()
|
|
Packit Service |
3bf9d6 |
* fixed undef warnings in fceil(0.222222222222...) (thanx kenny!)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-04-05 v0.41a Tels (not released)
|
|
Packit Service |
3bf9d6 |
* removed the unused integer-detection code and combined the two BEGIN blocks
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-03-12 v0.40 Tels
|
|
Packit Service |
3bf9d6 |
* added: api_version(), _ten(), _two(), _is_ten(), _is_two(), _gcd()
|
|
Packit Service |
3bf9d6 |
* streamlined: is_foo() methods
|
|
Packit Service |
3bf9d6 |
* _new() takes scalar, not scalar ref
|
|
Packit Service |
3bf9d6 |
* _str() returns scalar, not scalar ref
|
|
Packit Service |
3bf9d6 |
* _and(): bugfix for [perl #26559]: negative arguments that are shorter
|
|
Packit Service |
3bf9d6 |
than the positive one caused an error due to cutting instead padding
|
|
Packit Service |
3bf9d6 |
* _ior(): forgot to calculate the proper sing of result, making, for
|
|
Packit Service |
3bf9d6 |
instance, 30 | -4 go wrong
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-01-25 v0.39 Tels (not released)
|
|
Packit Service |
3bf9d6 |
* _zeros(0) is 0, not 1
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2003-12-30 v0.38 Tels
|
|
Packit Service |
3bf9d6 |
* guess _log_int() result based on $base if $base < $BASE
|
|
Packit Service |
3bf9d6 |
* _pow() handle cases 0 ** Y, 1 ** Y, X ** 0 and X ** 1
|
|
Packit Service |
3bf9d6 |
* _new(): shortcut for short numbers, makes MBI->new() about 20% faster
|
|
Packit Service |
3bf9d6 |
* _root() was wrong for numbers like 9 (0b1001) because they start with
|
|
Packit Service |
3bf9d6 |
the pattern /^0b1(0+)/ (missing '$' in regexp) and after fixing this
|
|
Packit Service |
3bf9d6 |
it was dead slow for large numbers.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2003-12-11 v0.37 Tels
|
|
Packit Service |
3bf9d6 |
* implemented _log_int() with a simple and fast "iterative" method
|
|
Packit Service |
3bf9d6 |
* fixed bug in _root(): int() rounds sometimes wrong, so use sprintf()
|
|
Packit Service |
3bf9d6 |
* _as_bin() and _as_hex() are faster (for small values) due to inlining
|
|
Packit Service |
3bf9d6 |
is_zero()
|
|
Packit Service |
3bf9d6 |
* _acmp() is about 26% faster for very small numbers or numbers that
|
|
Packit Service |
3bf9d6 |
differ in length, and slightly faster for bigger numbers. This helps
|
|
Packit Service |
3bf9d6 |
both bacmp() and bcmp()
|
|
Packit Service |
3bf9d6 |
* _fac() did:
|
|
Packit Service |
3bf9d6 |
+ not modify $x in place for small arguments
|
|
Packit Service |
3bf9d6 |
+ something strange for large arguments
|
|
Packit Service |
3bf9d6 |
+ not handle 0..2 optimal (code now simplified)
|
|
Packit Service |
3bf9d6 |
* _as_bin() used %b, which was not known to v5.5.3 - workaround that
|
|
Packit Service |
3bf9d6 |
* implemented _log_int(), which is simple and very fast
|
|
Packit Service |
3bf9d6 |
* implemented the missing pieces for _root() (which is quite fast)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2003-08-31 v0.36 Tels
|
|
Packit Service |
3bf9d6 |
* fixed a bug in div_use_div() that computed remainder wrong if X == X and
|
|
Packit Service |
3bf9d6 |
X was very large
|
|
Packit Service |
3bf9d6 |
* fixed a off-by-one error discovered with mbi_rand.t in _div_use_XXX()
|
|
Packit Service |
3bf9d6 |
(one internal in $x overflowed, thus the wrong computation)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2003-07-06 v0.35 Tels
|
|
Packit Service |
3bf9d6 |
* fixed a bug in _floor() which caused ffloor(0.1234567) to fail.
|
|
Packit Service |
3bf9d6 |
(Thanx to cpan@ali.as for finding it and sending a fix/testcases)
|
|
Packit Service |
3bf9d6 |
* make _as_hex() and _as_bin() handle 0, and make them faster for very
|
|
Packit Service |
3bf9d6 |
short numbers (less than BASE_LEN digits)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-09-27 v0.34 Tels
|
|
Packit Service |
3bf9d6 |
* fixed bug in mul_use_div() shortcut that used * $RBASE instead of / $MBASE
|
|
Packit Service |
3bf9d6 |
* $caught & 1 != 0 vs ($caught & 1) != 0 (changed to $caught != 2)
|
|
Packit Service |
3bf9d6 |
* $i %= $MBASE does not work on ARM (v5.003), so make it $i -= $car * $MBASE
|
|
Packit Service |
3bf9d6 |
* removed unused LEN_CONVERT code (smaller memory footprint)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-09-09 v0.33 Tels
|
|
Packit Service |
3bf9d6 |
* _fac() keep $n as scalar if possible
|
|
Packit Service |
3bf9d6 |
* test for when to USE_MUL or not was inverted
|
|
Packit Service |
3bf9d6 |
* _mul() is about 6 times faster if $y is small and $x is big
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-08-21 v0.32 Tels
|
|
Packit Service |
3bf9d6 |
* fixed bug in _rsft() that did not set result to 0 in some cases
|
|
Packit Service |
3bf9d6 |
* _modinv() now works, thanx to the all-positive algorithm
|
|
Packit Service |
3bf9d6 |
* much more tests in bigintc.t (taken over from FastCalc)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-08-13 v0.31 Tels
|
|
Packit Service |
3bf9d6 |
* _acmp() no longer calls _len() => tad faster
|
|
Packit Service |
3bf9d6 |
* some cleanup of old code, added some more comments
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-06-10 v0.30 Tels
|
|
Packit Service |
3bf9d6 |
* undef mul/div in case Calc.pm get's loaded twice
|
|
Packit Service |
3bf9d6 |
* fix in _as_hex() and _as_bin() for older Perls
|
|
Packit Service |
3bf9d6 |
* speedups in _pow() and _modpow()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-06-09 v0.29 Tels
|
|
Packit Service |
3bf9d6 |
* filled in _modpow()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-05-30 v0.28 Tels
|
|
Packit Service |
3bf9d6 |
* added _modinv(), _modpow() (not yet implemented)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-03-17 v0.26 Tels
|
|
Packit Service |
3bf9d6 |
* a fix in _rsft() that left empty array instead of (0)
|
|
Packit Service |
3bf9d6 |
* a fix in _sub(): early out made -1 + 100000000001 == 0 (if length($y) > 8)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-03-03 v0.25 Tels
|
|
Packit Service |
3bf9d6 |
* started _square() (not done yet)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-02-27 v0.24 Tels
|
|
Packit Service |
3bf9d6 |
* streamlined _mod() shortcuts
|
|
Packit Service |
3bf9d6 |
* _div() has shortcut if $y is very small
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-02-24 v0.23 Tels
|
|
Packit Service |
3bf9d6 |
* from_bin() repack input and use from_hex(): twice as fast
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-02-10 v0.22 Tels
|
|
Packit Service |
3bf9d6 |
* _sqrt1() => _sqrt() (oups)
|
|
Packit Service |
3bf9d6 |
* much better guess for _sqrt() resulting in faster sqrt
|
|
Packit Service |
3bf9d6 |
* added _fac()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-01-07 v0.20 Tels
|
|
Packit Service |
3bf9d6 |
* better detection of higher-int-only base (but disabled due to failures)
|
|
Packit Service |
3bf9d6 |
* streamlined converting
|
|
Packit Service |
3bf9d6 |
* turned dual-basis off by default (now 7-7 on 32 bit and 9-9 on most 64 it)
|
|
Packit Service |
3bf9d6 |
* _str() uses int() on first part to avoid '0000' instead of '0'
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-12-23 v0.19 Tels
|
|
Packit Service |
3bf9d6 |
* first working version of using two different bases: one for mul/div, the
|
|
Packit Service |
3bf9d6 |
other for all other ops, including converting via _to_large()/_to_small()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-12-20 v0.18 Tels
|
|
Packit Service |
3bf9d6 |
* added _as_hex() and _as_bin() with 16 bit chunks
|
|
Packit Service |
3bf9d6 |
* from_bin() now uses oct() and 16 bits per iteration
|
|
Packit Service |
3bf9d6 |
* removed needless return statements
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-12-06 v0.17 Tels
|
|
Packit Service |
3bf9d6 |
* added _sqrt() for more speed
|
|
Packit Service |
3bf9d6 |
* _sqrt() shortcut for small (< $BASE) numbers for better performance
|
|
Packit Service |
3bf9d6 |
* shortcut in _mul for small numbers (< $BASE_LEN2)
|
|
Packit Service |
3bf9d6 |
* added _and, _or, and _xor and let them use more than 16 bits
|
|
Packit Service |
3bf9d6 |
* find out how many bits _and, _or and _xor can safely use (cap at 23)
|
|
Packit Service |
3bf9d6 |
* div() might leave empty array, so __strip_zeros fixes these
|
|
Packit Service |
3bf9d6 |
* streamlined _acmp()
|
|
Packit Service |
3bf9d6 |
* cap of 5 for BASE for UTS and UNICOS/Cray
|
|
Packit Service |
3bf9d6 |
* better test to find out what BASE should be (use +0.0 to force floats)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-11-19 v0.16 Tels
|
|
Packit Service |
3bf9d6 |
* fixed comments a bit
|
|
Packit Service |
3bf9d6 |
* finished _mod() when $y < $BASE and $BASE % $y != 0 and $BASE % $y != 1
|
|
Packit Service |
3bf9d6 |
* streamlined _mod() loops a bit
|
|
Packit Service |
3bf9d6 |
* added _pow() for faster bpow()
|
|
Packit Service |
3bf9d6 |
* small fix to make 5.005_03 happy ($x = shift @prod vs $x = shift @prod || 0)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-11-11 v0.15 Tels
|
|
Packit Service |
3bf9d6 |
* added _dec() and _inc() for much faster $x++ and $x--
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-11-04 v0.14 Tels
|
|
Packit Service |
3bf9d6 |
* added _mod() for faster $x % $y
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-10-23 v0.13 Tels
|
|
Packit Service |
3bf9d6 |
* better detection of BASELEN by matching against expected pattern
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-10-03 v0.12 Tels
|
|
Packit Service |
3bf9d6 |
* _div: 99999 => $BASE-1 ($MAX_VAL), that made some div's fail if $BASE != 5
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-09-07 v0.11 Tels
|
|
Packit Service |
3bf9d6 |
* automatically USE_MUL or USE_DIV
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-08-24 v0.10 Tels
|
|
Packit Service |
3bf9d6 |
* no longer export anything, ignore import calls
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-07-20 v0.09 Tels
|
|
Packit Service |
3bf9d6 |
* don't use warnings for older Perls
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-07-15 v0.08 Tels
|
|
Packit Service |
3bf9d6 |
* fixed bug in mul() shortcut
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-07-15 v0.07 Tels
|
|
Packit Service |
3bf9d6 |
* applied Philip Newtons spelling and doc patch(s)
|
|
Packit Service |
3bf9d6 |
* accidentally had the old, slow mul() code in. Oups.
|
|
Packit Service |
3bf9d6 |
* fixed also a bug in that new code
|
|
Packit Service |
3bf9d6 |
* also the speedup in mul() occurs with $x having lots of zeros, not $y.
|
|
Packit Service |
3bf9d6 |
* first argument is always classname, so removed checks and shift
|
|
Packit Service |
3bf9d6 |
* shift in base ten by _lsft() and _rsft()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-07-09 v0.06 Tels
|
|
Packit Service |
3bf9d6 |
* first release
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
##############################################################################
|
|
Packit Service |
3bf9d6 |
Math::BigInt::CalcEmu:
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-03-12 v0.04 Tels
|
|
Packit Service |
3bf9d6 |
* removed unnec. emulation routines (all except _signed_foo)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-01-13 v0.03 Tels
|
|
Packit Service |
3bf9d6 |
* $VERSION was overriding the $VERSION from MBI (Thanx Gisle Aas!)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2003-12-30 v0.02 Tels
|
|
Packit Service |
3bf9d6 |
* the code in Calc::_root() uses now sprintf(), but the one in Emu was not
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2003-12-26 v0.01 Tels
|
|
Packit Service |
3bf9d6 |
* first version, taken over all the code from BigInt
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
##############################################################################
|
|
Packit Service |
3bf9d6 |
Math::BigInt::Scalar:
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-01-07 v0.11 Tels
|
|
Packit Service |
3bf9d6 |
* fixed version
|
|
Packit Service |
3bf9d6 |
* added DESCRIPTION section to stop pod2man complaining
|
|
Packit Service |
3bf9d6 |
* added _dec, _inc
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-08-24 v0.10 Tels
|
|
Packit Service |
3bf9d6 |
* no longer export anything, ignore import calls
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-07-20 v0.06 Tels
|
|
Packit Service |
3bf9d6 |
* don't use warnings for older Perls
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-07-15 v0.05 Tels
|
|
Packit Service |
3bf9d6 |
* first argument is always classname, so removed checks and shift
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-07-09 v0.04 Tels
|
|
Packit Service |
3bf9d6 |
* first release
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
##############################################################################
|
|
Packit Service |
3bf9d6 |
Math::BigFloat:
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2008-04-20 v1.60 Tels
|
|
Packit Service |
3bf9d6 |
* fix #34459: bsqrt() breaks on floats with enough digits (Thanx Niko Tyni!)
|
|
Packit Service |
3bf9d6 |
* fix #35238: batan2() handles inf/+inf wrong
|
|
Packit Service |
3bf9d6 |
* fix #35162: MBI segfault (as_number(Math::BigRat()) was wrong)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-06-30 v1.58 Tels
|
|
Packit Service |
3bf9d6 |
* remove Exporer from @ISA
|
|
Packit Service |
3bf9d6 |
* support config('lib') as shortcut for config()->{lib}
|
|
Packit Service |
3bf9d6 |
* add bpi(), bcos(), bsin(), batan(), batan2() methods
|
|
Packit Service |
3bf9d6 |
* add bmuladd()
|
|
Packit Service |
3bf9d6 |
* streamline the is_xxx() and copy() methods
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-05-05 v1.57 Tels
|
|
Packit Service |
3bf9d6 |
* add bnok() method (n over k)
|
|
Packit Service |
3bf9d6 |
* add all the missing modify() hooks
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-04-16 v1.55 Tels
|
|
Packit Service |
3bf9d6 |
* make bexp() much faster (esp. under GMP) by caching the first coefficients
|
|
Packit Service |
3bf9d6 |
and rewriting the inner loop
|
|
Packit Service |
3bf9d6 |
* support "try" and "only" in import()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-04-09 v1.54 Tels
|
|
Packit Service |
3bf9d6 |
* fix bug #21747: Re: weirdity in bignum... (powers and high precision):
|
|
Packit Service |
3bf9d6 |
infinite loops for blog() (and consequently bpow()) if you requested
|
|
Packit Service |
3bf9d6 |
an accuracy greater than 67 digits (uses _log() now, and not blog())
|
|
Packit Service |
3bf9d6 |
Thanx to darconc!
|
|
Packit Service |
3bf9d6 |
* cache the result of _log(2) and _log(10) so that subsequent calculations
|
|
Packit Service |
3bf9d6 |
can re-use the already done work
|
|
Packit Service |
3bf9d6 |
* instead of computing _log(10), compute _log(1.25) and _log(2) and then do:
|
|
Packit Service |
3bf9d6 |
_log(1.25 * 2 * 2 * 2) = _log(1.25) + _log(2) + _log(2) + _log(2)
|
|
Packit Service |
3bf9d6 |
This makes computing _log(10) much faster, so that computing blog(N) is
|
|
Packit Service |
3bf9d6 |
about a factor of 5 faster when N >= 10 or N <= 0.1
|
|
Packit Service |
3bf9d6 |
* add bexp()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-03-04 v1.53 Tels
|
|
Packit Service |
3bf9d6 |
* fix #25144: [PATCH] Math::BigFloat->new considers any reference a BigInt
|
|
Packit Service |
3bf9d6 |
(Thanx mschwern!)
|
|
Packit Service |
3bf9d6 |
* fix bug #13866: NaN (in bignum queue)
|
|
Packit Service |
3bf9d6 |
* fix bug #21586: Incorrect result when comparing with NaN
|
|
Packit Service |
3bf9d6 |
* fix bug #15896: "==" overloading is broken for "NaN"
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-01-27 v1.52 Tels
|
|
Packit Service |
3bf9d6 |
* fix brsft() and bpow() in list context only return on number (bug #21413)
|
|
Packit Service |
3bf9d6 |
* make as_int() return a BigInt, too (not just as_number()) (bug #21412)
|
|
Packit Service |
3bf9d6 |
* add as_oct()
|
|
Packit Service |
3bf9d6 |
* bpow(): handle negative X and negative Y (instead of returning NaN)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2005-04-10 v1.51 Tels
|
|
Packit Service |
3bf9d6 |
* fix new() to work with Math::BigInt::Pari
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2005-03-29 v1.50 Tels
|
|
Packit Service |
3bf9d6 |
* fix rounding doc, add notes about prevision vs. accuracy
|
|
Packit Service |
3bf9d6 |
* set FastCalc as default (we still use whatever MBI uses)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2005-03-20 v1.49 Tels
|
|
Packit Service |
3bf9d6 |
* remove dependecy on Scalar::Util in bdiv()
|
|
Packit Service |
3bf9d6 |
* bdiv() cache result of "!$y->is_one()" for wantarray case to make
|
|
Packit Service |
3bf9d6 |
($res,$rem) = $x->bdiv($y); about 10% faster
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2005-01-01 v1.48 Tels
|
|
Packit Service |
3bf9d6 |
* use new interface to _scale_a() and _scale_p() in BigInt
|
|
Packit Service |
3bf9d6 |
* add bneg() and inline is_zero() in it, making it 1.6 times faster
|
|
Packit Service |
3bf9d6 |
* replace ref($_[0]) w/ undef when it isn't actually needed. This
|
|
Packit Service |
3bf9d6 |
makes some ops (bsstr(), bneg etc) about 2% faster for small numbers
|
|
Packit Service |
3bf9d6 |
* use MBI::_register_callback() to get notified of lib changes
|
|
Packit Service |
3bf9d6 |
* bgcd()/blcm() never worked, so fix them for integers and add tests
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-10-10 v1.47 Tels
|
|
Packit Service |
3bf9d6 |
* inf/NaN fixes for bpow()
|
|
Packit Service |
3bf9d6 |
* eliminate the need for _zeros() in new() (speed-up for GMP et. al.)
|
|
Packit Service |
3bf9d6 |
* eliminate _is_zero() in new() (small speed up)
|
|
Packit Service |
3bf9d6 |
* added shortcut for simple numbers in new() (speed up)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-08-13 v1.46 Tels
|
|
Packit Service |
3bf9d6 |
* blog(10,10) ($x == $y) returned '1.0000...' instead of '1'
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-07-30 v1.45 Tels
|
|
Packit Service |
3bf9d6 |
* simple inherit bsub() from BigInt, also fixes bsub() failing under
|
|
Packit Service |
3bf9d6 |
$x -= $x - Thanx Peter J. Acklam!
|
|
Packit Service |
3bf9d6 |
* bdiv() failed when passed a variable twice (thanx Peter J. Acklam!)
|
|
Packit Service |
3bf9d6 |
* bfround() and bround() are about 10% faster when going via Math::BigInt's
|
|
Packit Service |
3bf9d6 |
bround() due to constructing a fake BigInt instead of going via ->new()
|
|
Packit Service |
3bf9d6 |
* fixed undef warnings in bpow(0,$y) ($y non-integer) (thanx kenny!)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-03-12 v1.44 Tels
|
|
Packit Service |
3bf9d6 |
* bpow() computed -X ** Y wrong for Y that are odd
|
|
Packit Service |
3bf9d6 |
* use $HALF instead of 0.5 to speed up broot()
|
|
Packit Service |
3bf9d6 |
* use Calc instead of BigInt for parts, that makes it roughly 2x faster
|
|
Packit Service |
3bf9d6 |
it also saves memory (419 vs. 767 bytes per (small number) object)
|
|
Packit Service |
3bf9d6 |
* bmod() did needlessly test for NaN arguments twice
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-01-13 v1.43 Tels
|
|
Packit Service |
3bf9d6 |
* small fixes in AUTOLOAD
|
|
Packit Service |
3bf9d6 |
* delete $x->{_a} vs. $x->{_a} = undef to save memory
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2003-12-30 v1.42 Tels
|
|
Packit Service |
3bf9d6 |
* ffac(inf) is inf, not NaN
|
|
Packit Service |
3bf9d6 |
* flog() calculate integer result first, and if it fits, return it
|
|
Packit Service |
3bf9d6 |
this makes it much faster in case the result is a perfect integer
|
|
Packit Service |
3bf9d6 |
* require (instead of use) Exporter
|
|
Packit Service |
3bf9d6 |
* froot() calculates an integer result first, and it if fits, returns it
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2003-12-11 v1.41 Tels
|
|
Packit Service |
3bf9d6 |
* flog(): 0.5, 0.25, 0.125, 2, 4 and 8 were not scaled properly back to
|
|
Packit Service |
3bf9d6 |
1, instead they remained 0.5 and 2, respectively. This was a '<' vs.
|
|
Packit Service |
3bf9d6 |
'>=' respective '<' vs. '<=' issue. No other values are affected
|
|
Packit Service |
3bf9d6 |
(neither getting slower nor faster), but the ones in question (incl.
|
|
Packit Service |
3bf9d6 |
their multiples like 20, 80, 0.0125 etc) are now tremendously faster -
|
|
Packit Service |
3bf9d6 |
about a factor of 30 to 60! :-)
|
|
Packit Service |
3bf9d6 |
* removed some crufty logic from _log_10() and made the special cases of
|
|
Packit Service |
3bf9d6 |
2, 10 and 0.1 slightly faster. This also helps log($x,2) and log($x,10).
|
|
Packit Service |
3bf9d6 |
* bfac() slightly faster for small arguments
|
|
Packit Service |
3bf9d6 |
* downgrading to bigint failed for .2e2 (produced 200 vs. 20)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2003-09-23 v1.40 Tels
|
|
Packit Service |
3bf9d6 |
* bstr(): removed unnec. BigInt math and inlined is_zero() => great speedup
|
|
Packit Service |
3bf9d6 |
(10% to factor 6.5 depending on input)
|
|
Packit Service |
3bf9d6 |
* replace $self->_one() by $self->bone()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2003-07-06 v1.39 Tels
|
|
Packit Service |
3bf9d6 |
* $x->blog($base) can handle a $base which is a Math::Bigint
|
|
Packit Service |
3bf9d6 |
* replace die() with Carp::croak
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-11-03 v1.39 Tels
|
|
Packit Service |
3bf9d6 |
* $x->bpow($y,0), $x->blog($base,0) and $x->bdiv($y,0) were still not doing
|
|
Packit Service |
3bf9d6 |
the right thing and no tests caught it *sigh*
|
|
Packit Service |
3bf9d6 |
* blog():
|
|
Packit Service |
3bf9d6 |
+ MUCH faster when $x > 10 or $x < 0.1 (constant time vs.
|
|
Packit Service |
3bf9d6 |
time * 10 when doubling/halving $x)
|
|
Packit Service |
3bf9d6 |
+ also much faster if $x has many digits (like 1/3 or 123**123)
|
|
Packit Service |
3bf9d6 |
+ for $x < 1 and $x > 0 did not work at all (bacmp vs bcmp)
|
|
Packit Service |
3bf9d6 |
+ returns now NaN if $base <= 0 or $base == 1
|
|
Packit Service |
3bf9d6 |
+ does handle other bases than "undef" (aka e) properly now
|
|
Packit Service |
3bf9d6 |
* require Math::BigFloat did not work (opposed to BigInt, where it does)
|
|
Packit Service |
3bf9d6 |
* _pow() suffered the same bug of bacmp vs bcmp (so 0.2 ** 0.2 failed)
|
|
Packit Service |
3bf9d6 |
* removed unused _pow2() routine
|
|
Packit Service |
3bf9d6 |
* _find_round_parameters() returns ($x,$a,$p,$r) and not ($a,$p,$r), so
|
|
Packit Service |
3bf9d6 |
use it correctly, and also test for $x = NaN afterwards
|
|
Packit Service |
3bf9d6 |
(happens when $a and $p were set and thus $x became NaN)
|
|
Packit Service |
3bf9d6 |
* bsqrt() failed since v1.63 for values like 0.2, 0.002, 0.00134 etc
|
|
Packit Service |
3bf9d6 |
* added broot() method (albeit slow for now)
|
|
Packit Service |
3bf9d6 |
* $x->is_one('-') was broken (never returned true for $x == -1)
|
|
Packit Service |
3bf9d6 |
* config() can take arguments and set them, croak on wrong ones
|
|
Packit Service |
3bf9d6 |
* config(trap_nan => 1) to manipulate former $NaNOK variable
|
|
Packit Service |
3bf9d6 |
* config(trap_inf => 1), too
|
|
Packit Service |
3bf9d6 |
* trap_nan/trap_inf really croak on any attempt to create an NaN/inf
|
|
Packit Service |
3bf9d6 |
* spellings of Bigint => BigInt
|
|
Packit Service |
3bf9d6 |
* simplify config() by using SUPER::config()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-09-08 v1.38 Tels
|
|
Packit Service |
3bf9d6 |
* fix that bsqrt() would hang for certain inputs. Instead of using Newton's,
|
|
Packit Service |
3bf9d6 |
we now rely on the fact that sqrt(x*y) = sqrt(x) * sqrt(y) by setting y to
|
|
Packit Service |
3bf9d6 |
100. This removes the while loop entirely and makes it much faster while
|
|
Packit Service |
3bf9d6 |
fixing the bug at the same time.
|
|
Packit Service |
3bf9d6 |
* $x->bsqrt(0) did needless warn about undef values, and round to 4 digits
|
|
Packit Service |
3bf9d6 |
instead of beeing equivalent to $x->bsqrt(undef)
|
|
Packit Service |
3bf9d6 |
* ditto for $x->bpow($y,0), $x->blog($base,0) and $x->bdiv($y,0)
|
|
Packit Service |
3bf9d6 |
* use File::Spec was needless, since it was required later on again
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-08-20 v1.37 Tels
|
|
Packit Service |
3bf9d6 |
* bcmp()/bacmp() upgrade now if requested
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-08-13 v1.36 Tels
|
|
Packit Service |
3bf9d6 |
* as_hex() and as_bin() work now at least for inf, NaN and integers
|
|
Packit Service |
3bf9d6 |
* fixed bsstr() (and thus also numify()) for negative numbers - Ouch!
|
|
Packit Service |
3bf9d6 |
* $x->new("0.02"); $x->accuracy($a); $x->bdiv($y,$d) failed to round
|
|
Packit Service |
3bf9d6 |
when $d > $a
|
|
Packit Service |
3bf9d6 |
* numify() returned '+inf' instead of 'inf'
|
|
Packit Service |
3bf9d6 |
* (more) tests for bsstr(), numify(), as_hex(), as_bin
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-07-07 v1.35 Tels
|
|
Packit Service |
3bf9d6 |
* bfround() used accidentally BigInt math; is now about 5.6 times faster for
|
|
Packit Service |
3bf9d6 |
small numbers
|
|
Packit Service |
3bf9d6 |
* bdiv()/badd() etc skip objectify() if possible and are thus faster
|
|
Packit Service |
3bf9d6 |
* doc for accuracy()/precision()
|
|
Packit Service |
3bf9d6 |
* $x->bmod() was not modifying $x in place when returning NaN/inf/-inf
|
|
Packit Service |
3bf9d6 |
* avoid unec. calls to objectify() for binary op's
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-06-10 v1.34 Tels
|
|
Packit Service |
3bf9d6 |
* upgrade used badd() instead of bmul() inside bmul() (again! arg!)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-06-09 v1.33 Tels
|
|
Packit Service |
3bf9d6 |
* import() fixed for older Perls
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-05-19 v1.32 Tels
|
|
Packit Service |
3bf9d6 |
* upgrade used badd() instead of bmul() inside bmul()
|
|
Packit Service |
3bf9d6 |
* bpow() now uses slower, but more correct way for fractions (this needs work)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-03-03 v1.31 Tels
|
|
Packit Service |
3bf9d6 |
* bpow() can handle second arguments beeing non-integer (f.i. 2 ** 0.2)
|
|
Packit Service |
3bf9d6 |
* $x->bpow(0.5) optimized to $x->bsqrt();
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-02-25 v1.30 Tels
|
|
Packit Service |
3bf9d6 |
* bug in bsub() with not rounding when $x->bsub(0) was also in MBF
|
|
Packit Service |
3bf9d6 |
* bcmp() and bacmp() 5 times faster due to numify() (might have now impose a
|
|
Packit Service |
3bf9d6 |
limit on exponent - but I couldn't find a test that breaks it)
|
|
Packit Service |
3bf9d6 |
* streamlined ffloor() and fceil()
|
|
Packit Service |
3bf9d6 |
* fixed bug in $x->bsub(0) and $x->badd(0) (both forgot to round result)
|
|
Packit Service |
3bf9d6 |
* new() downgrade integers if $downgrade is in effect
|
|
Packit Service |
3bf9d6 |
* optimized fpow() (one is_zero() less)
|
|
Packit Service |
3bf9d6 |
* optimized as_number (nearly twice as fast)
|
|
Packit Service |
3bf9d6 |
* $x->badd(0) forgot to round $x
|
|
Packit Service |
3bf9d6 |
* downgrade and upgrade are valid methods for inheritance
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-02-24 v1.29 Tels
|
|
Packit Service |
3bf9d6 |
* overload for 'log' now inherited by BigInt
|
|
Packit Service |
3bf9d6 |
* _binf(), _bnan(), _bone() and _bzero() instead of longer bone() etc
|
|
Packit Service |
3bf9d6 |
* inf/NaN fixes from v1.51 were missing for BigFloat
|
|
Packit Service |
3bf9d6 |
* bdiv() upgrades if applicable
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-02-16 v1.28 Tels
|
|
Packit Service |
3bf9d6 |
* fixed use Math::BigFloat ':constant';
|
|
Packit Service |
3bf9d6 |
* fixed flog() function to calc right result, honour rounding-globals
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-02-10 v1.27 Tels (forgot to increase version)
|
|
Packit Service |
3bf9d6 |
* ffac()
|
|
Packit Service |
3bf9d6 |
* various: disable Math::BigInt::upgrade to avoid deep recursion
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-01-06 v1.27 Tels
|
|
Packit Service |
3bf9d6 |
* overload for log() and flog()/blog()
|
|
Packit Service |
3bf9d6 |
* bzero()/bone() handling of A & P was broken
|
|
Packit Service |
3bf9d6 |
* bround()/bfround() handling of zeros forgot to set A & P
|
|
Packit Service |
3bf9d6 |
* fdiv: fixed a bug in round to A with given round_mode (always used global)
|
|
Packit Service |
3bf9d6 |
* fsqrt(): would hang/fail if either $x's or global A or P were set
|
|
Packit Service |
3bf9d6 |
* fsqrt() didn't modify $x sometimes, but returned a new reference
|
|
Packit Service |
3bf9d6 |
* fsqrt(): calc 4 more digits for rounding, not 1 (endless looping otherwise)
|
|
Packit Service |
3bf9d6 |
* fmod() now actually works
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-12-06 v1.26 Tels
|
|
Packit Service |
3bf9d6 |
* fneg() failed (now hand up to MBI)
|
|
Packit Service |
3bf9d6 |
* frsft() and flsft() were no aliases to brsft() and blsft()
|
|
Packit Service |
3bf9d6 |
* fone() was no alias for bone()
|
|
Packit Service |
3bf9d6 |
* blsft() and brsft() were missing altogether
|
|
Packit Service |
3bf9d6 |
* streamlined: fpow() and fmul()
|
|
Packit Service |
3bf9d6 |
* removed the EXPORT_OK
|
|
Packit Service |
3bf9d6 |
* fqsrt() uses now BigInt::bsqrt() as guess: greatly improved performance
|
|
Packit Service |
3bf9d6 |
* make fsqrt() subclass proof by using $self instead of Math::BigFloat
|
|
Packit Service |
3bf9d6 |
* bzero(), bone(): take additional A and P and store 'em
|
|
Packit Service |
3bf9d6 |
* bnan(), binf(): clear A and P
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-11-18 v1.25 Tels
|
|
Packit Service |
3bf9d6 |
* streamlining fixes in new() were missing
|
|
Packit Service |
3bf9d6 |
* further streamlining in new() for 12345e1234 cases (fraction part empty)
|
|
Packit Service |
3bf9d6 |
* added $rnd_mode support for compatibility
|
|
Packit Service |
3bf9d6 |
* replaced the 'laber schwad blah blah' pod section by a pointer to MBI
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-11-11 v1.24 Tels
|
|
Packit Service |
3bf9d6 |
* bacmp() fix for +-inf
|
|
Packit Service |
3bf9d6 |
* streamlined new()
|
|
Packit Service |
3bf9d6 |
* faster finc()/fdec()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-10-05 v1.23 Tels
|
|
Packit Service |
3bf9d6 |
* fixed facmp() (was broken the same way as fcmp())
|
|
Packit Service |
3bf9d6 |
* more rounding fixes from John P.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-10-03 v1.22 Tels
|
|
Packit Service |
3bf9d6 |
* Quite a lot of rounding fixes
|
|
Packit Service |
3bf9d6 |
* $x->bnorm() is 4 times faster if $x == 0
|
|
Packit Service |
3bf9d6 |
* $x->bround($n) is 43 times faster if $n > $x->{_a} (no-op)
|
|
Packit Service |
3bf9d6 |
* added as_number()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-09-03 v1.21 Tels
|
|
Packit Service |
3bf9d6 |
* serious bug in bcmp() caused 1.5 to be greater than 2. Yikes!
|
|
Packit Service |
3bf9d6 |
* bcmp() did not only return -1,0,1 and undef but other values, too
|
|
Packit Service |
3bf9d6 |
* new('inf') produced NaN (was expecting '+inf')
|
|
Packit Service |
3bf9d6 |
* exponent(), mantissa() & parts() failed or returned scalars for inf,-inf,NaN
|
|
Packit Service |
3bf9d6 |
* include finf in AUTOLOAD list
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-08-03 v1.20 Tels
|
|
Packit Service |
3bf9d6 |
* streamlined bcmp
|
|
Packit Service |
3bf9d6 |
* drop leading '+' for inf
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-08-02 v1.19 Tels
|
|
Packit Service |
3bf9d6 |
* 123/+-inf => 0, test for that and -1,0 / NaN => NaN
|
|
Packit Service |
3bf9d6 |
* +123 / 0 => +inf, -123 / 0 => -inf (was missing in MBF)
|
|
Packit Service |
3bf9d6 |
* fixed +-inf handling in bacmp/bcmp/bsub/badd/bdiv and tests for that
|
|
Packit Service |
3bf9d6 |
* padd bstr() output of numbers with set A or P
|
|
Packit Service |
3bf9d6 |
* remove bfloat() (Math::BigInt->bfloat() did not work, anyway, see bint())
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-07-15 v1.17 Tels
|
|
Packit Service |
3bf9d6 |
* applied Philip Newtons spelling and doc patch(s)
|
|
Packit Service |
3bf9d6 |
* added bone()
|
|
Packit Service |
3bf9d6 |
* tests for bnan() and bone()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-07-09 v1.16 Tels
|
|
Packit Service |
3bf9d6 |
* is_positive(), is_negative()
|
|
Packit Service |
3bf9d6 |
* various pod fixes (overlong =item, spelling erorrs etc)
|
|
Packit Service |
3bf9d6 |
* removed internal _set() and the tests for it
|
|
Packit Service |
3bf9d6 |
* infinity support for fcmp(), fpow()
|
|
Packit Service |
3bf9d6 |
* nailed the bug in fdiv() that caused fsqrt() to fail. fsqr() works now, too.
|
|
Packit Service |
3bf9d6 |
* more tests
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-06-15 v1.15 Tels
|
|
Packit Service |
3bf9d6 |
* added bfloor(), bceil()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-06-13 1.14 Tels:
|
|
Packit Service |
3bf9d6 |
* accuracy/precision rounding after fdiv() was missing
|
|
Packit Service |
3bf9d6 |
* binary integer input (0b01110 etc)
|
|
Packit Service |
3bf9d6 |
* A/P rounding after fdiv() was missing
|
|
Packit Service |
3bf9d6 |
* '-0x0' would wrongly leave '-0'
|
|
Packit Service |
3bf9d6 |
* as_number() was wrong for negative numbers and had no tests
|
|
Packit Service |
3bf9d6 |
* added is_even(), is_odd(), _set(), the inherited ones were broken
|
|
Packit Service |
3bf9d6 |
* fixed is_zero() for NaN
|
|
Packit Service |
3bf9d6 |
* $x->bpow($y) for negative $y was unfinished
|
|
Packit Service |
3bf9d6 |
* added is_inf(), binf() and some support for +-inf in new(), bsstr() etc
|
|
Packit Service |
3bf9d6 |
* added tests for is_odd(), is_even(), _set() and is_zero(), is_inf(), bsstr()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-06-09 1.13 Tels:
|
|
Packit Service |
3bf9d6 |
* adjusted fdiv() so that it now works proper with old testcases
|
|
Packit Service |
3bf9d6 |
* (except a few nits, see testsuite and ACCURACY)
|
|
Packit Service |
3bf9d6 |
* fdiv() in listmode (uses non-working fmod())
|
|
Packit Service |
3bf9d6 |
* fixed/test A/P after each op
|
|
Packit Service |
3bf9d6 |
* $x->accuracy(), $x->precision() actually round $x to the value A/P
|
|
Packit Service |
3bf9d6 |
* fixed fpow(), added tests for it
|
|
Packit Service |
3bf9d6 |
* hexadecimal integer input (0xdeadbeef)
|
|
Packit Service |
3bf9d6 |
* is_one() for -1 was wrongly true, tests for is_one()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-05-11 1.12 Tels
|
|
Packit Service |
3bf9d6 |
* taken over testsuite from John P.
|
|
Packit Service |
3bf9d6 |
* added tests for compare with fraction
|
|
Packit Service |
3bf9d6 |
* fixed fcmp/fround/ffround
|
|
Packit Service |
3bf9d6 |
* added accuracy/precision/fallback/round_mode
|
|
Packit Service |
3bf9d6 |
* bsstr('NaN') returned 'NaNeNaN'
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-05-09 1.11: bug bcmp() (1e-08 was < 0, aka fractions were broken)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-05-07 1.10: Tom's round fixes (minus one nit)
|
|
Packit Service |
3bf9d6 |
new: .xxx, -.xxx, +.xxx etc are valid inputs, while
|
|
Packit Service |
3bf9d6 |
'.', 'x x x' and 'Exxx' are now invalid
|
|
Packit Service |
3bf9d6 |
finally got rid of C&P of overload section and clone()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-04-23 1.09: length() in list context return length of mantissa & exponent
|
|
Packit Service |
3bf9d6 |
bug in bstr() for '0.x' style strings
|
|
Packit Service |
3bf9d6 |
added bsqrt()
|
|
Packit Service |
3bf9d6 |
workaround for Perl v5.6.0 overload-bool bug (via MBI)
|
|
Packit Service |
3bf9d6 |
fixed rounding
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-04-18 1.08: exponent(), mantissa() and parts() now return BigInt's
|
|
Packit Service |
3bf9d6 |
bnorm: 0Ey => 0E1 (was wrongly 0E0)
|
|
Packit Service |
3bf9d6 |
fixed is_zero()
|
|
Packit Service |
3bf9d6 |
added bround() and bfround() (only truncate mode)
|
|
Packit Service |
3bf9d6 |
fixed bug in bstr() for 1.203E-2 style numbers (Thanx Tom!)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-04-07 1.07: bug in bstr() for 0.xxx style numbers, as well as for "-xxx"
|
|
Packit Service |
3bf9d6 |
babs(), bneg(), bint() work now
|
|
Packit Service |
3bf9d6 |
empty stubs for bsqrt(), bround() and bmod()
|
|
Packit Service |
3bf9d6 |
exponent(), mantissa(), parts() work now as expected
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-04-05 1.06: bstr() returns NaN for NaN's
|
|
Packit Service |
3bf9d6 |
renamed _norm to bnorm, added it to AUTOLOAD for compatibility
|
|
Packit Service |
3bf9d6 |
fixed bug Math::BigFloat->new(Math::BigInt->new(3));
|
|
Packit Service |
3bf9d6 |
bug mul/div when second arg was BigInt
|
|
Packit Service |
3bf9d6 |
bdiv() works now with precision
|
|
Packit Service |
3bf9d6 |
precision()
|
|
Packit Service |
3bf9d6 |
doc about mixing different objects in overloaded math
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-03-31 1.05: fixed bstr() and bsstr()
|
|
Packit Service |
3bf9d6 |
added AUTOLOAD for fxxx() to work as well as bxxx()
|
|
Packit Service |
3bf9d6 |
enhanced and fixed testsuite for mul/cmp/add/new
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-03-27 1.04: bmul/bdiv/cmp work now, better _norm()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-03-06 1.03: layed more foundations (mul() etc)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-02-24 1.02: add()/sub() should work now
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-02-22 1.01: new() and bstr() work now (sort of)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-02-18 1.00: started work
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
##############################################################################
|
|
Packit Service |
3bf9d6 |
Math::BigInt:
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2010-11-15 v1.99 rafl
|
|
Packit Service |
3bf9d6 |
* Stop as_int/as_number from losing precision (Peter John Acklam)
|
|
Packit Service |
3bf9d6 |
(Closes: RT#43694)
|
|
Packit Service |
3bf9d6 |
* Fix Math::BigInt::Calc::_modpow for (0 ** $x) % $y, with $x > 0
|
|
Packit Service |
3bf9d6 |
(Peter John Acklam) (Closes: RT#62918).
|
|
Packit Service |
3bf9d6 |
* Stop $x -> bmodpow(1, 1) from failing when $x is large (Peter John Acklam)
|
|
Packit Service |
3bf9d6 |
(Closes: RT#62949).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2010-11-08 v1.98 rafl
|
|
Packit Service |
3bf9d6 |
* Fix from_bin() documentation error (Peter John Acklam) (Closes: RT#61845).
|
|
Packit Service |
3bf9d6 |
* Make as_int($inf) return inf, not NaN (Peter John Acklam) (Closes RT#62101).
|
|
Packit Service |
3bf9d6 |
* Fix various typos in documentation and tests (Peter John Acklam)
|
|
Packit Service |
3bf9d6 |
(Closes RT#62643).
|
|
Packit Service |
3bf9d6 |
* Make digit($n) return 0 for "out of range"-digits (Peter John Acklam)
|
|
Packit Service |
3bf9d6 |
(Closes RT#61812).
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2010-11-07 v1.97 rafl
|
|
Packit Service |
3bf9d6 |
* Reorder the list return of Math::BigInt::Calc::_base_len() (Nicholas Clark)
|
|
Packit Service |
3bf9d6 |
This change requires an update of Math::BigInt::FastCalc to version 0.24.
|
|
Packit Service |
3bf9d6 |
* Fix segfault when upgrading irrational numbers (Father Chrysostomos)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2010-09-28 v1.96 rafl
|
|
Packit Service |
3bf9d6 |
* Various documentation fixes provided by gregor herrmann
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2010-09-14 v1.95 rafl
|
|
Packit Service |
3bf9d6 |
* Re-upload v1.94 as a stable release
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2010-09-13 v1.94 rafl DEVELOPMENT RELEASE
|
|
Packit Service |
3bf9d6 |
* Attempt to fix Math::BigInt::Lite failures
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2010-09-13 v1.93 rafl
|
|
Packit Service |
3bf9d6 |
* Depend on perl >= 5.6.2
|
|
Packit Service |
3bf9d6 |
* Remove obsolete core test directory boilerplate
|
|
Packit Service |
3bf9d6 |
* Convert from Test to Test::More
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2010-09-10 v1.92 rafl
|
|
Packit Service |
3bf9d6 |
* re-upload v1.91 with a fixed SIGNATURE
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2010-09-10 v1.91 rafl
|
|
Packit Service |
3bf9d6 |
* fix various documentation bugs
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2010-09-03 v1.90 rafl
|
|
Packit Service |
3bf9d6 |
* fix bnok() for k==0 and k==n-1
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2008-04-20 v1.89 Tels
|
|
Packit Service |
3bf9d6 |
* fix #35238: batan2() handles inf/+inf wrong
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-09-22 v1.88 Tels
|
|
Packit Service |
3bf9d6 |
* fix wide ints on Perl v5.8.0 (Thanx zefram!)
|
|
Packit Service |
3bf9d6 |
* minimum required is Perl v5.6 (tested by zefram)
|
|
Packit Service |
3bf9d6 |
* _find_round_parameters(), _scale_a() and _scale_p(): trunc A/P to integers
|
|
Packit Service |
3bf9d6 |
* fix from_oct(), from_bin() and from_hex()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-06-30 v1.87 Tels
|
|
Packit Service |
3bf9d6 |
* fix undef base in blog()
|
|
Packit Service |
3bf9d6 |
* support config('lib') as shortcut for config()->{lib}
|
|
Packit Service |
3bf9d6 |
* _find_round_parameters(): convert $a & $p to normal scalars, or bad
|
|
Packit Service |
3bf9d6 |
things will happen during rounding of BigFloats
|
|
Packit Service |
3bf9d6 |
* add bpi(), bcos(), bsin(), batan(), batan2() methods
|
|
Packit Service |
3bf9d6 |
* add bmuladd()
|
|
Packit Service |
3bf9d6 |
* streamline the is_xxx() and copy() methods
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-05-05 v1.86 Tels
|
|
Packit Service |
3bf9d6 |
* bump version
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-05-05 v1.85 Tels
|
|
Packit Service |
3bf9d6 |
* bump version
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-05-04 v1.84 Tels
|
|
Packit Service |
3bf9d6 |
* add bnok() method (n over k)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-04-16 v1.83 Tels
|
|
Packit Service |
3bf9d6 |
* bump version
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-04-09 v1.82 Tels
|
|
Packit Service |
3bf9d6 |
* use $CALC->_zeros() directly (instead _trailing_zeros()) to speed up
|
|
Packit Service |
3bf9d6 |
exponent() and mantissa()
|
|
Packit Service |
3bf9d6 |
* fix documentation that blsft() and brsft() default to base 2 (not 10)
|
|
Packit Service |
3bf9d6 |
* add bexp() and fix overloading for exp()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-03-16 v1.81 Tels
|
|
Packit Service |
3bf9d6 |
* no code change, just a package update
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-03-04 v1.80 Tels
|
|
Packit Service |
3bf9d6 |
* require Perl v5.6.2 as minimum
|
|
Packit Service |
3bf9d6 |
* fix bug #24969 (Can't use an undefined value as an ARRAY reference)
|
|
Packit Service |
3bf9d6 |
* fix bug #12857: Subclasses and overload
|
|
Packit Service |
3bf9d6 |
* fix bug #13866: NaN (in bignum queue)
|
|
Packit Service |
3bf9d6 |
* fix bug #21586: Incorrect result when comparing with NaN
|
|
Packit Service |
3bf9d6 |
* fix bug #15896: "==" overloading is broken for "NaN"
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-02-02 v1.79 Tels
|
|
Packit Service |
3bf9d6 |
* fix typos
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2007-01-27 v1.78 Tels
|
|
Packit Service |
3bf9d6 |
* implement "try" and "only" as replacements for "lib"
|
|
Packit Service |
3bf9d6 |
* make 'use Math::BigInt lib => "foo"' warn if foo cannot be loaded and a
|
|
Packit Service |
3bf9d6 |
fallback occurs
|
|
Packit Service |
3bf9d6 |
* fix bug #21446 - Docs/code inconsistency for bnorm() method
|
|
Packit Service |
3bf9d6 |
* fix bug #21964 - A patch to include a rounding mode of 'common'
|
|
Packit Service |
3bf9d6 |
* fix bug #21445 - Documentation error for exponent() method
|
|
Packit Service |
3bf9d6 |
* fix bug perl #41050 - NaN returned when raising integer value to negative
|
|
Packit Service |
3bf9d6 |
power
|
|
Packit Service |
3bf9d6 |
* add from_hex(), from_oct(), and from_bin()
|
|
Packit Service |
3bf9d6 |
* add as_oct()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2005-05-17 v1.77 Tels
|
|
Packit Service |
3bf9d6 |
* bump version
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2005-04-10 v1.76 Tels
|
|
Packit Service |
3bf9d6 |
* fix rounding doc, add notes about prevision vs. accuracy
|
|
Packit Service |
3bf9d6 |
* trap inf and -inf in new()
|
|
Packit Service |
3bf9d6 |
* load FastCalc as default
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2005-03-20 v1.75 Tels
|
|
Packit Service |
3bf9d6 |
* use a trick to remove the dependency on Scalar::Util in bsub()
|
|
Packit Service |
3bf9d6 |
* fix atan2(), it did not preserve the order of arguments
|
|
Packit Service |
3bf9d6 |
(Thanx to Ambros & Zaxo for report and patch!)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2005-01-01 v1.74 Tels
|
|
Packit Service |
3bf9d6 |
* streamline _scale_a() and _scale_p() for more speed in rounding
|
|
Packit Service |
3bf9d6 |
* remove the now unnec. support for MB_NEVER_ROUND and {_f}, this
|
|
Packit Service |
3bf9d6 |
makes all ops that call round() a tad faster (one exists is
|
|
Packit Service |
3bf9d6 |
removed) and shrinks the codesize a bit
|
|
Packit Service |
3bf9d6 |
* streamline bneg(), inline is_zero(): makes it 1.6 times faster
|
|
Packit Service |
3bf9d6 |
* replace ref($_[0]) w/ undef when it isn't actually needed. This
|
|
Packit Service |
3bf9d6 |
makes some ops (bsstr(), bneg etc) about 2% faster for small numbers
|
|
Packit Service |
3bf9d6 |
* restrict low-level math library names to sane chars to avoid
|
|
Packit Service |
3bf9d6 |
exploitation of eval()
|
|
Packit Service |
3bf9d6 |
* fill_can_cache() accidentally did checks for 'or' & 'xor'
|
|
Packit Service |
3bf9d6 |
* inline _fill_can_cache
|
|
Packit Service |
3bf9d6 |
* add _register_callback() to notify subclasses of lower math lib changes
|
|
Packit Service |
3bf9d6 |
* bgcd() is now about 10% faster
|
|
Packit Service |
3bf9d6 |
* is_positive(0) == 0, since 0 is neither positive nor negative
|
|
Packit Service |
3bf9d6 |
* streamline bmod() a bit
|
|
Packit Service |
3bf9d6 |
* fix blog() constructing arguments (broke Math::BigInt::Constant)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-10-10 v1.73 Tels
|
|
Packit Service |
3bf9d6 |
* overloading of <<= and >>= makes these ops about 10% faster and fixes the
|
|
Packit Service |
3bf9d6 |
problem that "$a <<= 2" would create a different object for $a to point to
|
|
Packit Service |
3bf9d6 |
* quite a lot of fixes for NaN/inf handling in bpow() (bmul already did it
|
|
Packit Service |
3bf9d6 |
right) - bug report by jeff at thekidders com and Hugo - Thank you!
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-07-13 v1.72 Tels
|
|
Packit Service |
3bf9d6 |
* no changes
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-07-08 v1.71 Tels
|
|
Packit Service |
3bf9d6 |
* fixed bsub() failing under $x -= $x; Thanx Peter J. Acklam!
|
|
Packit Service |
3bf9d6 |
* _scan_for_nonzero() reuses length/stringform of $x and is thus faster, this
|
|
Packit Service |
3bf9d6 |
helps rounding if the number after the roundposition is '5'
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-03-12 v1.70 Tels
|
|
Packit Service |
3bf9d6 |
* bpow() computed -X ** Y wrong for Y that are odd
|
|
Packit Service |
3bf9d6 |
* 0 ** -Y => +inf (was NaN) due to 0 ** -Y => 1/0**Y => 1/0 => +inf
|
|
Packit Service |
3bf9d6 |
* fixed bug in perl -Mbignum -le 'print 2 ** 46 * 3' under Bigint::Lite
|
|
Packit Service |
3bf9d6 |
leading to "Can't use an undefined value as an ARRAY reference at
|
|
Packit Service |
3bf9d6 |
/usr/local/lib/perl5/5.8.2/Math/BigInt/Calc.pm line 462."
|
|
Packit Service |
3bf9d6 |
* fixed upgrading of blog() with base = undef (means: base e)
|
|
Packit Service |
3bf9d6 |
* make the synopsis actually runnable (Thanx Paul McCarthy)
|
|
Packit Service |
3bf9d6 |
* blcm(): handle a list of strings (instead one obj and some strings), too
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2004-01-13 v1.69 Tels
|
|
Packit Service |
3bf9d6 |
* bacmp(+-$x,-inf) was wrong (Thanx William T. Morgan!)
|
|
Packit Service |
3bf9d6 |
* digit($x,$y) segfaulted under 5.6.1 if $y was a BigInt
|
|
Packit Service |
3bf9d6 |
* blog() was missing the modify() check (breaking MBI::Constant)
|
|
Packit Service |
3bf9d6 |
* delete $x->{_a} vs. $x->{_a} = undef to save memory
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2003-12-26 v1.68 Tels
|
|
Packit Service |
3bf9d6 |
* bfac(inf) is inf, not NaN
|
|
Packit Service |
3bf9d6 |
* added alias names: as_int() (as_number()), is_pos(), is_neg() and doc
|
|
Packit Service |
3bf9d6 |
* factored out all the emulation code and moved it to Math::BigInt::CalcEmu
|
|
Packit Service |
3bf9d6 |
* binary/hexadecimal input was twice as slow as v1.66 due to a typo in v1.67
|
|
Packit Service |
3bf9d6 |
* streamlined overload for boolean context (20% faster "... if $x;")
|
|
Packit Service |
3bf9d6 |
* round() was missing a croak() in path testing for wrong roundmode
|
|
Packit Service |
3bf9d6 |
* badd(): optimize away setting of sign if it is already right
|
|
Packit Service |
3bf9d6 |
* bdec() is about 10% faster for negative numbers
|
|
Packit Service |
3bf9d6 |
* bpow(): removed some now needless tests for 0 and 1: about 30% faster
|
|
Packit Service |
3bf9d6 |
for small numbers
|
|
Packit Service |
3bf9d6 |
* streamlined exponent() (parts() benefits from this, too)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2003-12-02 v1.67 Tels
|
|
Packit Service |
3bf9d6 |
* overload for cos/sin/exp/atan2 to make cos(Math::BigInt->new(...)) work
|
|
Packit Service |
3bf9d6 |
* implemented blog() with a simple and fast "iterative" method
|
|
Packit Service |
3bf9d6 |
* use _log_int() in $CALC if possible
|
|
Packit Service |
3bf9d6 |
* cache $CALC->can(...) calls in global %CAN hash for speed
|
|
Packit Service |
3bf9d6 |
* reorder is_zero() check for band(), bior() and bxor() to speed up the
|
|
Packit Service |
3bf9d6 |
case for when the underlying lib has _and(), _ior() and _xor()
|
|
Packit Service |
3bf9d6 |
* implement a new way of emulating AND, OR and XOR, this tremendously
|
|
Packit Service |
3bf9d6 |
helps if band() et. al. are called with negative arguments
|
|
Packit Service |
3bf9d6 |
* try to call _signed_or(), _signed_and() and _signed_xor() in lib
|
|
Packit Service |
3bf9d6 |
* is_foobar() methods are slightly faster
|
|
Packit Service |
3bf9d6 |
* bnot() is about 12% faster
|
|
Packit Service |
3bf9d6 |
* bsqrt(): moved is_zero() || is_one() test out of the way => 28% faster
|
|
Packit Service |
3bf9d6 |
for "small" values (Calc and GMP)
|
|
Packit Service |
3bf9d6 |
* small change for overload::constant
|
|
Packit Service |
3bf9d6 |
* bfac(): do 0 or 1 check only if CALC cannot do _fac() (thus faster)
|
|
Packit Service |
3bf9d6 |
* removed a needless _copy in bmod() with negative arguments (slightly faster)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2003-09-01 v1.66 Tels
|
|
Packit Service |
3bf9d6 |
* document accepted inputs better
|
|
Packit Service |
3bf9d6 |
* fix wrong upgrade and undef-parameter handling in broot()
|
|
Packit Service |
3bf9d6 |
* implement broot() if lib doesn't have a _root() routine for $y that are
|
|
Packit Service |
3bf9d6 |
powers of two and for small $x
|
|
Packit Service |
3bf9d6 |
* warn if broot() cannot yet compute proper result
|
|
Packit Service |
3bf9d6 |
* remove needless _one(): 3% speedup for binc()
|
|
Packit Service |
3bf9d6 |
* remove needless _swap(): 1% (Calc) - 6% (GMP) speedup for overloaded math
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2003-07-13 v1.65 Tels
|
|
Packit Service |
3bf9d6 |
* document that config() can set certain values
|
|
Packit Service |
3bf9d6 |
* replace die() with Carp::croak()
|
|
Packit Service |
3bf9d6 |
* remove needless is_zero() check in as_bin() and as_hex(), making them
|
|
Packit Service |
3bf9d6 |
faster, especially when under a different lib like GMP.
|
|
Packit Service |
3bf9d6 |
* Fixed the infinite recursion in bignum. See http://xrl.us/k6y
|
|
Packit Service |
3bf9d6 |
* fix handling of 0e999, 0e-999 etc
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-11-03 v1.64 Tels
|
|
Packit Service |
3bf9d6 |
* removed needless "my $c = ...;" statements in binf() and bnan()
|
|
Packit Service |
3bf9d6 |
* forgot () around "$x->{_f} & MB_NEVER_ROUND"
|
|
Packit Service |
3bf9d6 |
* bsqrt(inf) == inf, not NaN
|
|
Packit Service |
3bf9d6 |
* $x->bdiv($x) did not round the resulting 1 properly
|
|
Packit Service |
3bf9d6 |
* removed the shortcut testcode in bdiv() (Calc handles this now)
|
|
Packit Service |
3bf9d6 |
* added (non-working for now) broot() method
|
|
Packit Service |
3bf9d6 |
* changed length() to CORE::length() in two places (thanx Liz!)
|
|
Packit Service |
3bf9d6 |
* config() can take arguments and set them, croak on wrong ones
|
|
Packit Service |
3bf9d6 |
* config(trap_nan => 1) to manipulate former $NaNOK variable
|
|
Packit Service |
3bf9d6 |
* config(trap_inf => 1), too
|
|
Packit Service |
3bf9d6 |
* trap_nan/trap_inf really croak on any attempt to create an NaN/inf
|
|
Packit Service |
3bf9d6 |
* spellings of Bigint => BigInt
|
|
Packit Service |
3bf9d6 |
* _find_rounding_parameters(): set $a to undef if it is 0
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-09-08 v1.63 Tels
|
|
Packit Service |
3bf9d6 |
* bsqrt() did not modify $x but returned new object when lib does not have
|
|
Packit Service |
3bf9d6 |
a _sqrt() routine (BareCalc, BitVect and Pari are affected, Calc, FastCalc
|
|
Packit Service |
3bf9d6 |
and GMP were not)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-08-21 v1.62 Tels
|
|
Packit Service |
3bf9d6 |
* bcmp()/bacmp() upgrade now if requested
|
|
Packit Service |
3bf9d6 |
* bmodinv() uses an all-positive algorithm, speeding it up by about 5-8%
|
|
Packit Service |
3bf9d6 |
and allowing to implement the same algorithm in Calc for factor 4 speedup
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-08-13 v1.61 Tels
|
|
Packit Service |
3bf9d6 |
* tests for bsstr()/numify() with negative/special inputs
|
|
Packit Service |
3bf9d6 |
* bround() keeps $scale as scalar for speed and less problems
|
|
Packit Service |
3bf9d6 |
* fix for trailing newlines in input
|
|
Packit Service |
3bf9d6 |
* some doc fixes (especially return values of is_foo() methods)
|
|
Packit Service |
3bf9d6 |
* make testsuite so that it will pass under FastCalc easily
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-07-07 v1.60 Tels
|
|
Packit Service |
3bf9d6 |
* shortcuts to avoid calls to objectify for add/sub/mul/div/mod/pow/bcmp etc
|
|
Packit Service |
3bf9d6 |
* fix overloaded bcmp() so that the objectify()-avoidance kicks in
|
|
Packit Service |
3bf9d6 |
* avoid calling round() when BigFloat requested 'no rounding please'
|
|
Packit Service |
3bf9d6 |
* bcmp()'s shortcut for comparing x <=> 0, 0 <=> 0, 0 <=> $y was making things
|
|
Packit Service |
3bf9d6 |
slower than just handing the compare to Calc. Even more so for Pari et al.
|
|
Packit Service |
3bf9d6 |
* $x->accuracy() and $x->precision() returned undef, instead of 0 if
|
|
Packit Service |
3bf9d6 |
A/P of $x was 0 and global A/P was undef.
|
|
Packit Service |
3bf9d6 |
* $x->bmod() did not modify $x in place when returning NaN/inf/-inf
|
|
Packit Service |
3bf9d6 |
* some binary ops (band/bxor/bior/bpow) were not properly rounding the result
|
|
Packit Service |
3bf9d6 |
to the requested A/P/R; the same ops also forgot to take $y into account
|
|
Packit Service |
3bf9d6 |
* doc for accuracy()/precision()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-06-10 v1.59 Tels
|
|
Packit Service |
3bf9d6 |
* pod fixes for bmodpow()/bmodinv()
|
|
Packit Service |
3bf9d6 |
* fix in as_hex() and as_bin() for older Perls
|
|
Packit Service |
3bf9d6 |
* speedups in bpow(), bmodin() and bmodpow()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-06-09 v1.58 Tels
|
|
Packit Service |
3bf9d6 |
* invalid inputs with two dot's (1.2.3 or 1..2 etc) are now really invalid
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-05-30 v1.57 Tels
|
|
Packit Service |
3bf9d6 |
* fixed objectify() to make "perl -Mbigrat -le 'print 1+2/3'" work
|
|
Packit Service |
3bf9d6 |
* added bmodpow() and bmodinv() as (not-working yet) stubs
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-03-17 v1.56 Tels
|
|
Packit Service |
3bf9d6 |
* documented config()
|
|
Packit Service |
3bf9d6 |
* simplified import() logic a bit
|
|
Packit Service |
3bf9d6 |
* changed some isa->($upgrade) => !$isa->($self);
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-03-17 v1.55 Tels
|
|
Packit Service |
3bf9d6 |
* :constant picks up binary/hexadecimal constants
|
|
Packit Service |
3bf9d6 |
* Math::BigInt->digit(123) works now
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-03-03 v1.54 Tels
|
|
Packit Service |
3bf9d6 |
* really fixed overlong pod =item
|
|
Packit Service |
3bf9d6 |
* downgrade() and upgrade() with undef as argument didn't clear the variable
|
|
Packit Service |
3bf9d6 |
* bmul() upgrades if second argument is non-integer
|
|
Packit Service |
3bf9d6 |
* bdiv() upgrades if $x > $y
|
|
Packit Service |
3bf9d6 |
* bpow() upgrades if second argument is non-integer
|
|
Packit Service |
3bf9d6 |
* objectify disable downgrade (for MBF)
|
|
Packit Service |
3bf9d6 |
* new() twice as fast due to shortcut simple numbers, save _split() & _round()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-02-27 v1.53 Tels
|
|
Packit Service |
3bf9d6 |
* precisision typo
|
|
Packit Service |
3bf9d6 |
* fixed overlong pod =item
|
|
Packit Service |
3bf9d6 |
* added downgrade()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-02-24 v1.52 Tels
|
|
Packit Service |
3bf9d6 |
* hooks for _bin(), _bnan(), _bone() and _bzero()
|
|
Packit Service |
3bf9d6 |
* =head2 section for accuracy
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-02-16 v1.51 Tels
|
|
Packit Service |
3bf9d6 |
* fixed bfround(-x) (f.i. 0.004->bfround(-2) resulted in 0.01, not 0.00)
|
|
Packit Service |
3bf9d6 |
* bfround(x) rounded at wrong place (off by one)
|
|
Packit Service |
3bf9d6 |
* calling bfround(x) rounded further and further instead of keeping result
|
|
Packit Service |
3bf9d6 |
* blog() upgrades if requested
|
|
Packit Service |
3bf9d6 |
* added doc stub for every public function
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-02-10 v1.50 Tels
|
|
Packit Service |
3bf9d6 |
* bfac() and hook for _fac() in libs
|
|
Packit Service |
3bf9d6 |
* documented sub-classing and auto-upgrade
|
|
Packit Service |
3bf9d6 |
* < 4 test in bsqrt() after the CALC call for more performance
|
|
Packit Service |
3bf9d6 |
* added overload for sqrt()
|
|
Packit Service |
3bf9d6 |
* added possibility to upgrade via use Math::BigInt upgrade => 'Foo::Bar'
|
|
Packit Service |
3bf9d6 |
* Math::Big(Int|Float)->accuracy() clears precision, and vice versa
|
|
Packit Service |
3bf9d6 |
* small optimization in bdiv() regarding abs($x) < abs($y)
|
|
Packit Service |
3bf9d6 |
* brsft() for negative numbers in base 2 was completely wrong
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2002-01-07 v1.49 Tels
|
|
Packit Service |
3bf9d6 |
* as_hex() and as_bin() use 16 instead of 8 bits per iteration
|
|
Packit Service |
3bf9d6 |
* overload for log() and blog()
|
|
Packit Service |
3bf9d6 |
* tricks to make 'require Math::BigInt' and 'use Math::BigInt();' work again
|
|
Packit Service |
3bf9d6 |
* use $CALC instead of require for newer Perls (test for $] > 5.006 vs 5.6)
|
|
Packit Service |
3bf9d6 |
* bzero()/bone() handling of A & P was broken
|
|
Packit Service |
3bf9d6 |
* bround()/bfround() forgot to set A or P for zeros
|
|
Packit Service |
3bf9d6 |
* embedded _find_round_parameters into round(), streamlined both versions
|
|
Packit Service |
3bf9d6 |
* round() now uses string-add to make it almost twice as fast
|
|
Packit Service |
3bf9d6 |
* bnot() did round twice
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-12-06 v1.48 Tels
|
|
Packit Service |
3bf9d6 |
* fixed pod in many places
|
|
Packit Service |
3bf9d6 |
* bmod: use round(), not bround()
|
|
Packit Service |
3bf9d6 |
* bsqrt: use _sqrt() from lib, if possible
|
|
Packit Service |
3bf9d6 |
* bsqrt: would hang for certain (most?) inputs
|
|
Packit Service |
3bf9d6 |
* bdiv: slow check for 1 || -1 replaced by much faster version
|
|
Packit Service |
3bf9d6 |
* bdiv: call _div() only when nec. in list context, otherwise scalar
|
|
Packit Service |
3bf9d6 |
* streamlined copy(), _find_round_parameters()
|
|
Packit Service |
3bf9d6 |
* removed the EXPORT_OK except for objectify, _swap and bgcd/blcm
|
|
Packit Service |
3bf9d6 |
* bzero(), bone(): take additional A and P and store 'em
|
|
Packit Service |
3bf9d6 |
* bnan(), binf(): clear A and P
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-11-18 v1.47 Tels
|
|
Packit Service |
3bf9d6 |
* added $rnd_mode support for compatibility
|
|
Packit Service |
3bf9d6 |
* two 'my $t = ... if ..;' cases to 'my $t; $t = ... if ...;'
|
|
Packit Service |
3bf9d6 |
* added overload for %=, |=, &= and ^= for more speed
|
|
Packit Service |
3bf9d6 |
* _split(): check for 1e2e3 and reject it
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-11-11 v1.46 Tels
|
|
Packit Service |
3bf9d6 |
* binc(),bdec() use lib (via _inc(),_dec()) => faster (see BENCHMARK)
|
|
Packit Service |
3bf9d6 |
* avoid the unnec. rounding bsub()/binc()/bdec() (badd() already took care)
|
|
Packit Service |
3bf9d6 |
* made bsub() faster by removing the bneg() overhead from it
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-11-04 v1.45 Tels
|
|
Packit Service |
3bf9d6 |
* tests run now in subclass, too
|
|
Packit Service |
3bf9d6 |
* bmod() can use _mod in lib
|
|
Packit Service |
3bf9d6 |
* lots of tests fixed (assumed wrong base etc) and added
|
|
Packit Service |
3bf9d6 |
* bpow() about 10-15% faster for small numbers (like 2 ** 150, 3 * 200 etc)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-10-05 v1.43 Tels
|
|
Packit Service |
3bf9d6 |
* $x->bround($n) is 43 times faster if $n > $x->{_a} (no-op)
|
|
Packit Service |
3bf9d6 |
* Heaploads of rounding fixes (and tests)
|
|
Packit Service |
3bf9d6 |
* Test for 99999-bug in Calc
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-09-03 v1.42 Tels
|
|
Packit Service |
3bf9d6 |
* bug in overload section causing performance losses in subclasses
|
|
Packit Service |
3bf9d6 |
* call $CALC->import() with list of libs
|
|
Packit Service |
3bf9d6 |
* odd numbers never have trailing zeros, so don't convert them to DEC to look
|
|
Packit Service |
3bf9d6 |
* as_hex() and as_bin()
|
|
Packit Service |
3bf9d6 |
* $x->bmod() did not modify $x, only returned result. Oups.
|
|
Packit Service |
3bf9d6 |
* new('inf') produced NaN (was expecting '+inf')
|
|
Packit Service |
3bf9d6 |
* exponent(), mantissa() & parts() failed or returned scalars for inf,-inf,NaN
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-08-08 v1.41 Tels
|
|
Packit Service |
3bf9d6 |
* fixed inf test (coredumps)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-08-03 v1.40 Tels
|
|
Packit Service |
3bf9d6 |
* bxor(-$x,-$y) was broken (and not tested *sigh*)
|
|
Packit Service |
3bf9d6 |
* streamlined bcmp
|
|
Packit Service |
3bf9d6 |
* drop leading '+' for inf
|
|
Packit Service |
3bf9d6 |
* bxor(), band(), bior() with negative arguments don't get passed to lib
|
|
Packit Service |
3bf9d6 |
(makes it work with BitVect, Pari, GMP etc)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-08-02 v1.39 Tels
|
|
Packit Service |
3bf9d6 |
* fixed history (duh!)
|
|
Packit Service |
3bf9d6 |
* assign return values from $CALC back to $x->{value}
|
|
Packit Service |
3bf9d6 |
* fixed +-inf handling in a lot of places and tests for that
|
|
Packit Service |
3bf9d6 |
* band(), bxor() and bior() now work with negative inputs
|
|
Packit Service |
3bf9d6 |
* remove bint() (Math::BigFloat->bint() just DNDWIM and no sense, either)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-07-15 v1.38 Tels
|
|
Packit Service |
3bf9d6 |
* test for mul() shortcut
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-07-15 v1.37 Tels
|
|
Packit Service |
3bf9d6 |
* applied Philip Newtons spelling and doc patch(s)
|
|
Packit Service |
3bf9d6 |
* Benjamin Trott: _split() is faster for numbers that need no splitting
|
|
Packit Service |
3bf9d6 |
* Benjamin Trott: don't take shortcut in badd(), or Pari won't work
|
|
Packit Service |
3bf9d6 |
* allow use Math::BigInt lib => 'Pari,BitVect,Foo,Bar';
|
|
Packit Service |
3bf9d6 |
* delegate shifting to CALC if possible, otherwise fallback
|
|
Packit Service |
3bf9d6 |
* test for self-pow, to see if lib's fail (since BitVect failed for self-pow)
|
|
Packit Service |
3bf9d6 |
* _one() => bone()
|
|
Packit Service |
3bf9d6 |
* +x / 0 => +inf, -x / 0 => -inf, while 0/0 and +-x % 0 are still NaN
|
|
Packit Service |
3bf9d6 |
* tests for bnan() and bone()
|
|
Packit Service |
3bf9d6 |
* Math::BigInt::Calc now determines biggest $BASE to use. Default should now
|
|
Packit Service |
3bf9d6 |
be 1e7 on most systems, giving 20% to 40% speedups.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-07-04 v1.36 Tels
|
|
Packit Service |
3bf9d6 |
* is_positive(), is_negative()
|
|
Packit Service |
3bf9d6 |
* various pod fixes (overlong =item, spelling erorrs etc)
|
|
Packit Service |
3bf9d6 |
* torn out the bones from under the flesh and moved them to Math::BigInt::Calc
|
|
Packit Service |
3bf9d6 |
* added Math::BigInt::Calc, Math::BigInt::Small (and Math::BigInt::BitVect)
|
|
Packit Service |
3bf9d6 |
* fixed tests for bacmp() (could never fail)
|
|
Packit Service |
3bf9d6 |
* removed internal _set() and tests for it
|
|
Packit Service |
3bf9d6 |
* +-inf handling in bcmp(), bpow()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-06-15 v1.35 Tels
|
|
Packit Service |
3bf9d6 |
* added bfloor(), bceil()
|
|
Packit Service |
3bf9d6 |
* fixed bior(), bxor(), band() for $x->bxxx(NaN,0), added modify() to them
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-06-13 v1.34 Tels
|
|
Packit Service |
3bf9d6 |
* binary integer input (0b01110 etc)
|
|
Packit Service |
3bf9d6 |
* fixed: '-0x0' left '-0'
|
|
Packit Service |
3bf9d6 |
* added is_inf(), binf() and some support for +-inf in new(), bsstr() etc
|
|
Packit Service |
3bf9d6 |
* added tests for is_odd(), is_even(), _set() and is_zero(), is_inf(), bsstr()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-06-09 v1.33 Tels
|
|
Packit Service |
3bf9d6 |
* bround() no longer uses 10 ** $pad and is thus much faster when rounding up
|
|
Packit Service |
3bf9d6 |
* fixed and added rounding benchmark (did time bmul instead bround)
|
|
Packit Service |
3bf9d6 |
* blsft(),brsft(): can work in different bases, check against invalid
|
|
Packit Service |
3bf9d6 |
inputs, more tests, speedup when in base 10
|
|
Packit Service |
3bf9d6 |
* _trailing_zeros is 50% faster
|
|
Packit Service |
3bf9d6 |
* A/P after each op, tests for it in accuracy.t
|
|
Packit Service |
3bf9d6 |
* round() instead of bnorm()
|
|
Packit Service |
3bf9d6 |
* $x->accuracy(), $x->precision() actually round $x to the set value
|
|
Packit Service |
3bf9d6 |
* tests for is_one()
|
|
Packit Service |
3bf9d6 |
* hexadecimal integer input (0xcafebabe etc)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-05-11 v1.32 Tels
|
|
Packit Service |
3bf9d6 |
* added accuracy/precision/fallback/round_mode
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-05-08 v1.31 Tels
|
|
Packit Service |
3bf9d6 |
* _ between digits now accepted, ' ' no longer valid inside (but at front/end)
|
|
Packit Service |
3bf9d6 |
* Exxx is NaN, and no longer produces warning
|
|
Packit Service |
3bf9d6 |
* .xxx style numbers are valid input
|
|
Packit Service |
3bf9d6 |
* tests for 1E1, 123E-2, 1E2 etc style input to Bigint.pm
|
|
Packit Service |
3bf9d6 |
* fixed overload (w/ _swap/copy), subclasses can inherit it easily
|
|
Packit Service |
3bf9d6 |
* removed clone()
|
|
Packit Service |
3bf9d6 |
* added bsstr()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-04-23 v1.3 Tels
|
|
Packit Service |
3bf9d6 |
* added (compatible to MBF) mantissa(), exponent() & parts() as well as tests
|
|
Packit Service |
3bf9d6 |
* _trailing_zeros()
|
|
Packit Service |
3bf9d6 |
* fixed as_number() to return copy of BigInt
|
|
Packit Service |
3bf9d6 |
* added bround(), bfround() and support for round_mode() as well as $rnd_mode
|
|
Packit Service |
3bf9d6 |
* fixed bug in bdiv() wich left reminder "-0", causing further op's to die()
|
|
Packit Service |
3bf9d6 |
* added is_valid to testsuite to see whether invalid objects are created
|
|
Packit Service |
3bf9d6 |
* added bsqrt()
|
|
Packit Service |
3bf9d6 |
* workaround coredump bug in bool() for v5.6.1
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-04-07 v1.23 Tels
|
|
Packit Service |
3bf9d6 |
* spelling errors in pod
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-04-05 v1.22 Tels
|
|
Packit Service |
3bf9d6 |
* documented Peters OS/390 patch/changes (fix was in for quite some time)
|
|
Packit Service |
3bf9d6 |
* fixed bug Math::BigInt->new(Math::BigFloat->new(3));
|
|
Packit Service |
3bf9d6 |
* objectify() with other objects than BigInt as further args, copy() etc
|
|
Packit Service |
3bf9d6 |
* $x->digit($n) to query fast value of Nth digit
|
|
Packit Service |
3bf9d6 |
* as_number()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-03-30 v1.21 Tels
|
|
Packit Service |
3bf9d6 |
* bool() works now under 5_005
|
|
Packit Service |
3bf9d6 |
* bug in bsub where numbers with at least 6 trailing digits after any op failed
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-03-24 v1.20 Tels
|
|
Packit Service |
3bf9d6 |
* added: is_nan()
|
|
Packit Service |
3bf9d6 |
* bug in bmod/bdiv, I forgot some cases with negatives. Thanx to Bruce Fields!
|
|
Packit Service |
3bf9d6 |
* documented ':constant' and eval() crash on Perl 5.00x
|
|
Packit Service |
3bf9d6 |
* documented BigInts behaviour of bmod/bdiv and use integer
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-03-09 v1.16 Tels
|
|
Packit Service |
3bf9d6 |
* Math::BigInt::badd(4,5) and Math::SomeChildOfBI->badd(4,5) work now
|
|
Packit Service |
3bf9d6 |
* '$x = scalar (**|%|+|-|*|\) $object;' failed (was not tested, either)
|
|
Packit Service |
3bf9d6 |
* 'if ($x)' is now O(1) instead of O(N) and at least twice as fast
|
|
Packit Service |
3bf9d6 |
* fixed nasty bug in _digits that caused <=> after add/sub/mul etc to fail
|
|
Packit Service |
3bf9d6 |
if result was between 100001 and 109999, added test for this
|
|
Packit Service |
3bf9d6 |
* added test cases for op's that should preserve args (+,+=,abs(), neg() etc)
|
|
Packit Service |
3bf9d6 |
* added tests for overloaded 'bool'
|
|
Packit Service |
3bf9d6 |
* added test.pl and some examples (prime.pl, bigprimes.pl)
|
|
Packit Service |
3bf9d6 |
* tests after "use Math::BigInt :constant" were screwed due to not using eval
|
|
Packit Service |
3bf9d6 |
* $x->numify() (for $array[$x] = 0; etc) is much faster now
|
|
Packit Service |
3bf9d6 |
* added caveat documentation for $x = -$x; and $x *= string1 operator string2;
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-02-24 v1.15 Tels
|
|
Packit Service |
3bf9d6 |
* $x / $x is now a lot faster (more O(1) than O(N))
|
|
Packit Service |
3bf9d6 |
* 10 ** $x is now a lot faster (more O(N/5) instead of O(N))
|
|
Packit Service |
3bf9d6 |
* overload of **= makes $x **= $y faster
|
|
Packit Service |
3bf9d6 |
* 0 ** 0 was NaN, not 1
|
|
Packit Service |
3bf9d6 |
* -a % b = +c (was -c) to be compatible with perl
|
|
Packit Service |
3bf9d6 |
* added $x->length() and test for it; fixed _digits() (was off by 1)
|
|
Packit Service |
3bf9d6 |
* objectify() was not exported, added tests for objectify()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-02-21 v1.14 Tels
|
|
Packit Service |
3bf9d6 |
* overload +=, -=, *= and /= for about 20-30% more speed if both args have
|
|
Packit Service |
3bf9d6 |
roughly same length
|
|
Packit Service |
3bf9d6 |
* shortcut in add() makes $x += $y; $x -= $y; for large $x and small $y
|
|
Packit Service |
3bf9d6 |
an O(1) case instead of O(N)
|
|
Packit Service |
3bf9d6 |
* fixed (non-critical) bug that caused objectify in numify/bool/stringify to
|
|
Packit Service |
3bf9d6 |
create scratch objects from undef params.
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-02-18 v1.13 Tels
|
|
Packit Service |
3bf9d6 |
* got rid of duplicated copy() code in new()
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-02-16 v1.12 Tels
|
|
Packit Service |
3bf9d6 |
* accidentally dropped self-multiply test in bigintpm.t
|
|
Packit Service |
3bf9d6 |
* fixed bug in overloading cmp
|
|
Packit Service |
3bf9d6 |
* after correcting the overload for 'cmp', I got a lot of test failings and
|
|
Packit Service |
3bf9d6 |
finally discovered that the bstr()'s return of '[+-][0-9]+' instead of
|
|
Packit Service |
3bf9d6 |
Perls ways of '[-]?[0-9]+' breaks string comparisons with numbers :(
|
|
Packit Service |
3bf9d6 |
F.i. ok() from Test.pm uses 'eq' and you can not do ok($a,3*3) where $a
|
|
Packit Service |
3bf9d6 |
is a BigInt. IMNSHO clearly wrong. And only changing the way cmp is
|
|
Packit Service |
3bf9d6 |
overloaded would lead to the curios situation that the following:
|
|
Packit Service |
3bf9d6 |
'print "$a eq $b" if $a eq $b;' would print "+3 eq 3", which looks wrong.
|
|
Packit Service |
3bf9d6 |
Mark B. said go ahead and change bstr(), so I changed it ;) to drop
|
|
Packit Service |
3bf9d6 |
the '+', adapted all the tests, changed the doc, etc.
|
|
Packit Service |
3bf9d6 |
BigInts behave now transparently like build-in scalars in integer/string
|
|
Packit Service |
3bf9d6 |
context ;o)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2001-02-14 v1.11 Tels (first release)
|
|
Packit Service |
3bf9d6 |
* fixed bug in band(), bxor(), etc that used badd($x, fixed_number_here);
|
|
Packit Service |
3bf9d6 |
* since subclasses might not be happy with fixed numbers, make sure we pass
|
|
Packit Service |
3bf9d6 |
BigInts all the time if using something like $someclass->badd();
|
|
Packit Service |
3bf9d6 |
* fixed bug in band/bxor/bior which destroyed second argument
|
|
Packit Service |
3bf9d6 |
* bxor/band/bior work now correctly for subclasses
|
|
Packit Service |
3bf9d6 |
* ++ and -- are now a tad (ca 5%) faster
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2000-11-24 v1.10 Tels
|
|
Packit Service |
3bf9d6 |
* finally made it Math::BigInt (w/o trailing 's')
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2000-11-23 v1.09 Tels
|
|
Packit Service |
3bf9d6 |
* fixed bug in bmul (and thus bpow) (self multiply works now)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2000-11-22 v1.08 Tels
|
|
Packit Service |
3bf9d6 |
* fixed all but one test (band bior bxor etc)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2000-11-20 v1.07 Tels
|
|
Packit Service |
3bf9d6 |
* objectify fixed to not make copies and work with subclasses
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2000-11-19 v1.06 Tels
|
|
Packit Service |
3bf9d6 |
* 7 tests remain
|
|
Packit Service |
3bf9d6 |
* bgcd accepts lists, added blcm
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2000-11-16 v1.05 Tels
|
|
Packit Service |
3bf9d6 |
* 8 tests remain
|
|
Packit Service |
3bf9d6 |
* new copies _all_ fields, not only Math::Bigint ones
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2000-11-15 v1.04 Tels
|
|
Packit Service |
3bf9d6 |
* fixed bigintpm to test '++' and '--' properly
|
|
Packit Service |
3bf9d6 |
* done div, fixed mul/bpow (13 tests remain)
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2000-11-14 v1.03 Tels
|
|
Packit Service |
3bf9d6 |
* x**0 => 1 (instead of x)
|
|
Packit Service |
3bf9d6 |
* fixed bigintpm to include bpow, binc, bdec, new() test
|
|
Packit Service |
3bf9d6 |
|
|
Packit Service |
3bf9d6 |
2000-11-13 v1.02 Tels
|
|
Packit Service |
3bf9d6 |
* fixed sub and mul (sort of)
|
|
Packit Service |
3bf9d6 |
* found out that "$wanted = shift || return bzero()" causes a call to numify,
|
|
Packit Service |
3bf9d6 |
* testing for undefined fixes this problem (but might waste more time for
|
|
Packit Service |
3bf9d6 |
* a new(0), will save time on average.
|