Moin,
I am pleased to announce the first pre-release version of Math::BigInt v1.68.
There is a patch against bleadperl, but since it is about 62 Kbyte
uncompressed I uploaded it to bloodgate.com, too.
http://bloodgate.com/perl/packages/devel/Math-BigInt-1.68.tar.gz
md5sum 432fd62adba8e053e5dbee7fe01a6217
http://bloodgate.com/perl/packages/devel/patch_blead_BigInt-v1.68.txt.gz
md5sum 9b5f4ac5eccb3194ea32c25239d191b9
Here is a list of the things that have changed so far from v1.67:
File changes:
* I factored out the emulation code (the code that is used to emulate
functions that the low-level math library does not provide) and put it into
Math/BigInt/CalcEmu.pm
This (combined with merging 3 use vars// statements together) improves the
startup time by about 5-10% and reduces the memory footprint by a few kbyte -
a few more if you use GMP).
The code size from BigInt.pm is 132000 bytes vs. 145000 - much less than I
hoped, but I did not realizes that about 56000 bytes of BigInt.pm are pod.
Oops - there is more doc than I knew about.
Memory savings due to not loading the code from Emu.pm (Perl v5.8.1, 32 bit):
| v1.67 v1.68 Savings
------|-------------------------------
GMP | 3072 2940 132 Kbyte 4.2%
Calc | 3192 3112 80 Kbyte 2.5%
* There are 4 new tesfiles for the new alias functions:
t/alias.inc
t/sub_ali.t
t/mbi_ali.t
t/mbf_ali.t
Also, I wrote recently that the streamlining options have all been exhausted.
I was wrong:
BigInt:
* new() is about 20 % faster for smaller numbers (less than 7 digits)
* bdec() is about 10% faster for negative numbers
* bpow() is about 30% faster for smaller numbers
* exponent() is about twice as fast (making parts() about 50% faster)
* binary/hexadecimal input was twice as slow due to a typo in v1.66 in %CAN
(The last point is rather embarrassing and was caught by by timeline
benchmarks...)
Bugfixes:
* bfac(inf) is inf, not NaN
* round() was missing a croak() in path testing for wrong roundmode
Speed-ups:
* blog() is now much faster if the BASE is a small number, especially if the
result was a large(r) number. Basically, it scales much better.
* flog() uses blog() to calculate a guess, and if guessed right, returns it.
Makes it much faster for integer results.
Outstanding issues:
* root() failures on irix. (off-by-one error).
Best wishes,
Tels
- --
Signed on Tue Dec 23 00:34:32 2003 with key 0x93B84C15.
Visit my photo gallery at http://bloodgate.com/photos/
PGP key on http://bloodgate.com/tels.asc or per email.
perl -MMath::String=from_number -le 'print from_number(Math::BigInt->new(
"18646399493525281530194668228877222090413595623092063296651")*2*27*7*1289,
[ "a".."z", "A".."Z"," ","!"]);'
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux)
Comment: When cryptography is outlawed, bayl bhgynjf jvyy unir cevinpl.
iQEVAwUBP+eHs3cLPEOTuEwVAQGyoQf8DTkRf9stabGT8g6b9sH4YIwqpiRW5I70
R+lZlIOhbt3SEQE0qLZo3Nki6ComAsUwd+3IPmw+SyiHZ/Ik5xkM8g0f8/NSjMIR
m80BJZpKuL/U+L+9hKIgFCdH98cVuIyl9QhyNZK5Vyp3MvAPu2WkZNA/szDEEx5y
etZI4G/lLqDhnUKHUaaDzYKo/wWbrmLFfWsuFyAc+ALLNVv3IM1OSRQdg79r7Xq9
lBAAHLhEE6yf/ToJaBViPFBdWfMCXfjzW7NYAPriY8SAi2WyfqlBnNUxFU4zbNnn
qkDjm/Vj+dIxarJFPkVSB4hr/3DAR2heTo/iiLd2+M08oV336kpOdw==
=amzo
-----END PGP SIGNATURE-----
Thanks, applied to bleadperl as change #21956.