Log message:
Update to 2.003002
Upstream changes:
2.003002 2024-01-05
* Improved interaction between Math::BigInt and the backend libraries.
* Much faster versions of _ilog2() and _clog2() implemented in the
Math::BigInt::Calc backend library. This should speed up bilog2() and
bclog2() in Math::BigInt when "Calc" is used as the backend liberary.
2.003001 2023-12-26
* Add configuration methods trap_inf() and trap_nan(). Previously it was only
possible to modify these properties by using the config() method.
* Fix CPAN RT #150796 so that config() no longer modifies the input when it is
a hash ref.
* Fix CPAN RT #150797 so that both accuracy and precision can be set
simultaneously with config().
* Add the following methods to Math::BigInt
- bilog2() base 2 logarithm rounded downwards, i.e., int(log2(x))
- bilog10() base 10 logarithm rounded downwards, i.e., int(log10(x))
- bclog2() base 2 logarithm rounded upwards, i.e., ceil(log2(x))
- bclog10() base 10 logarithm rounded upwards, i.e., ceil(log10(x))
* Add the following backend library methods to Math::BigInt::Lib. These
methods do the core computations for the corresponding methods in
Math::BigInt (see above).
- _ilog2() base 2 logarithm rounded downwards
- _ilog10() base 10 logarithm rounded downwards
- _clog2() base 2 logarithm rounded upwards
- _clog10() base 10 logarithm rounded upwards
2.002001 2023-12-09
* Fix CPAN RT #150523
2.002000 2023-12-02
* Fix bug in Math::BigFloat method bsin(). It can now handle any argument to
any precision. Also improve downgrading. This fixes CPAN RT #150590 and the
bsin() part of CPAN RT #107604.
* Fix bug in Math::BigFloat method bexp(). Specifying precision (rather than
accuracy) used to give a NaN. Also improve downgrading.
* Improve upgrading in Math::BigInt methods bsin() and bcos(). They now
upgrade only when necessary.
2.001001 2023-11-21
* Fix CPAN RT #150469
2.001000 2023-11-13
* Fix rounding bug in bsqrt() in Math::BigInt. Also make bsqrt() upgrade only
when necessary.
* Simplify and speed up bsqrt() (for computing the square root) in
Math::BigFloat. The computation time now mainly depends on the desired
accuracy, not the number of digits in the significand.
* Add support for using "div_scale" as import parameter, like this
use Math::BigFloat div_scale => 80;
* Add better argument checking when the "div_scale" value is set by the
user.
2.000000 2023-10-29
* Merge the Math-BigRat distribution into the Math-BigInt distribution. This
merge eliminates the problems that users have experienced when incompatible
versions of the two distributions have been installed. This fixes CPAN RT
#143228.
* Add method from_dec() to Math::BigRat to make Math::BigRat more consistent
with Math::BigInt and Math::BigFloat.
* To be consistent with Math::BigInt and Math::BigFloat, make it possible to
use "require" with Math::BigRat, e.g.,
require Math::BigRat;
$x = Math::BigRat -> bone();
* Fix cases where "require" doesn't work for Math::BigInt and \
Math::BigFloat,
and add tests to verify that "require" works for Math::BigInt, \
Math::BigRat,
and Math::BigFloat.
* Add methods bblsft() and bbrsft() to Math::BigRat to make Math::BigRat
consistent with Math::BigInt and Math::BigFloat. These methods do bitwise
left and right shift, respectively.
* Fix bug in to_oct() and to_bin() in Math::BigFloat. They called to_hex()
when upgrading, but should have called to_oct() and to_bin(), respectively.
* Add to_hex(), to_oct(), to_bin() to Math::BigRat.
* Add new method binv() to Math::BigInt, Math::BigFloat, and Math::BigRat.
* Improve as_float() and as_rat().
* POD updates.
1.999842 2023-09-27
* Fix a bug causing Math::BigInt and Math::BigFloat to be caught in an endless
recursion. The bug was introduced when trying to fix
https://github.com/pjacklam/p5-Math-BigInt/issues/8
* Allow div_scale to be 0. It is not documented what div_scale <= 0 means, but
there are modules that set div_scale to 0 (e.g., Astro::Units) and fail
their tests if this is not supported.
1.999841 2023-09-21
* Remove development files that were accidentally included in the
distribution.
1.999840 2023-09-18
* Add methods bblsft() and bbrsft(), which do bitwise left and right shift,
respectively. The binary operators for bitwise left and right shift, \
"<<"
and ">>", now call the methods bblsft() and bbrsft(), \
respectively.
While this behaviour is consistent with how "<<" and \
">>" work on floating
point numbers in core Perl, it changes how "<<" and \
">>" worked on
Math::BigFloat objects. This is a corner case, but any code currently using
"<<" and ">>" on Math::BigFloat objects might \
need to be modified as follows
$x >>= $y should be changed to $x -> brsft($y)
$x <<= $y should be changed to $x -> blsft($y)
$x >> $y should be changed to $x -> copy() -> brsft($y)
$x << $y should be changed to $x -> copy() -> blsft($y)
* Improve blsft() and brsft(). They now support negative shift values, an
arbitrarily large base, and have better handling of cases involving NaN.
1.999839 2023-07-14
* Update documentation. Remove/update obsolete URLs.
* Fix CPAN RT #148953 regarding loss of precision when using "log" in
"bignum". The issue was related to broken upgrading and downgrading in
Math::BigFloat.
1.999838 2023-03-30
* Fix CPAN RT #146411 regarding infinite recursion in bitwise operations. This
happened when arguments were upgraded and downgraded and upgraded again ad
infinitum. Add tests to verify the fix.
|
Log message:
PR category/123
math/p5-Math-BigInt: update to 1.999837 (from 1.999827)
* Improve compatibility with older versions of the Math-BigRat distribution.
* Re-enable upgrading in Math::BigFloat->bdiv().
* Improvements to upgrading, downgrading, and rounding:
. Fix bug related to upgrading in Math::BigInt->brsft() in Perl <= 5.16.
. Fix Math::BigFloat->bpi().
. Improve as_int(), as_float(), and as_rat().
* Improve methods div_scale() and round_mode() so they work better with
subclasses. This fixes CPAN RT #125430.
* Make div_scale() accept a Math::Big(Int|Float|Rat) object as input. This
fixes CPAN RT #140599.
* Add new methods numerator(), denominator(), and fparts().
* Fix bug in to_ieee754(). Avoid that the significand overflows.
|