Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

BigInt v1.68 - pre-release

0 views
Skip to first unread message

Tels

unread,
Dec 22, 2003, 7:09:23 PM12/22/03
to perl5-...@perl.org
-----BEGIN PGP SIGNED MESSAGE-----

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-----

Rafael Garcia-Suarez

unread,
Dec 25, 2003, 3:05:39 PM12/25/03
to Tels, perl5-...@perl.org
Tels wrote:
> 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

Thanks, applied to bleadperl as change #21956.

0 new messages