Front page | perl.perl5.porters |
Postings from April 2007
New Math::Big* modules released
From:
Tels
Date:
April 18, 2007 03:49
Subject:
New Math::Big* modules released
Message ID:
200704181251.51883@bloodgate.com
Moin,
I am proud to announce the release of the following to CPAN:
Math::BigInt v1.83
Math::BigInt::FastCalc v0.14
bignum 0.21
Math::BigRat v0.19
In addition, the following non-core modules have been updated to:
Math::BigInt::GMP 1.21
Math::BigInt::Pari 1.12
Math::Big 1.12
The following module has been erased[0]:
Math::BigInt::BitVect
I have run out of time to prepare patches for blead and won't have time over
the next week. Would be glad if somebody could pull the modules from CPAN
and update them into blead.
Here is a very terse summary of the changes:
* fix [perl #41205] Pari backend doesn't work with Math::BigRat
* add "try" and "only" support to BigFloat, bignum, bigint and bigrat (oops)
* make $n->bfac() about twice as fast when under Calc/FastCalc and $n is
15..5000 (smaller or bigger don't see no or very small improvement)
* make bexp() much faster, especially when under GMP/Pari. Anything less
than 70 digits precision is returned almost instantly, anything over that
is calculated much more efficient (details follow later)
TODO: implement bexp() in BigRat, returning A/B (instead of calculating
e=A/B like in BigFloat)
* raise the api_version() in Calc/FastCalc/GMP/Pari to 2 and add the
following methods:
_1ex() implement 1Ex faster than constructing the number from a string,
especially important for very large X (1million and up) under a
binary library like GMP/Pari, since the resulting decimal to
hex conversion is O(N*N) (quadratic) and takes already 16 seconds
for X=10000000
_alen() calculate approximate length of number in base 10 (always >=
_len(). Same reason, calculating the exact length is very costly
for large numbers (O(N*N), while the approx. length is O(1)..O(N)
Note: Math::BigInt does still only require api-version 1, so it happily
loads older libs, too. After the libs have propagated a bit, we can
then raise the requirement.
* Math::BigInt::Pari was updated to fully work again (_as_oct(),
_from_oct(), etc) and _root() and _sqrt() use now native methods so they
are much faster (and actually work for things like sqrt(123) :)
All the best,
Tels
0: If anybody want's to resurect it, please contact the uncroak hotline at
nospam-abuse at blood gate dot com.
--
Signed on Tue Apr 17 16:21:17 2007 with key 0x93B84C15.
Get one of my photo posters: http://bloodgate.com/posters
PGP key on http://bloodgate.com/tels.asc or per email.
"When you don't know what to do, walk fast and look worried."
-- Unknown
-
New Math::Big* modules released
by Tels