develooper Front page | perl.perl5.porters | Postings from March 2007

Getting rid of old Math::Big* baggage

Thread Next
From:
Tels
Date:
March 4, 2007 12:55
Subject:
Getting rid of old Math::Big* baggage
Message ID:
200703042154.18658@bloodgate.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Moin,

I consider doing away with the following packages, for the reasons outlined 
below. If anybody wants to preserve them, send me an email and I make you 
co-maintainer. Otherwise the will vanish.

* Math::BigInt::BitVect

This is one of the libraries you can use to replace Calc/FastCalc with, and 
make math with big/huge numbers go faster. This package was more a proof of 
concept to show Steffen Beyer that it can be done.

However, it suffers from the problem that Bit::Vector objects have a 
pre-defined bit-width, while BigInt needs arbitrarily big objects. The 
constant resizing of the objects eats up a lot of speed, and in addition 
Bit::Vector does not have optimized routines for a lot of operations (some 
are absent, some are just not that fast). GMP beats it hands down.

In addition, Bit::Vector hasn't been updated since 2004, and 
Math::BigInt::BitVect never was updated by me, so it will not work with any 
Math::BigInt newer than 1.69. v1.70 was released 2004-03-12, and since this 
module has been broken. And nobody cared or took notice.

=> marked for Deletion

* Math::BigInt::Pari

This module was another proof-of-concept, and it worked ok. Except that it 
lately hasn't been updated, it takes more memory than the GMP module, and 
is slower. Would need to benchmark it, but I believe it is slower for small 
operations, and also not as optimized as GMP.

This module might be kept around, but then, things would be simplier if 
users wouldn't have to decide between two math libs.

=> marked for NeedsSomeLove

* Math::BigInt::Lite

This was some largely failed attempt to write a BigInt class that is faster 
for very small numbers. It surely adds 1+1 faster, if it works. The status 
is a it unclear, but I believe this package has been broken for some years 
now. You couldn't use it as BigInt replacement as it morphs it's own object 
class, and youcan't use it inside BigFloat, notably because this got broken 
somewhere along the way.

=> marked for Deletion

* Math::BigInt::Named

I updated this module recently, but nobody seems to have used it in the last 
3 years. It is really only half-way implemented (English name() and German 
name() work, but from_name() is a no-op, and the other languages are simple 
not there).

=> marked for NoIdeaProbablyDelete

So, has any body got interest in raising some zombies?

If not, I will also purge references to these modules from the doc of 
BigInt/BigFloat/BigRat.

All the best,

Tels

- -- 
 Signed on Sun Mar  4 21:42:37 2007 with key 0x93B84C15.
 View my photo gallery: http://bloodgate.com/photos
 PGP key on http://bloodgate.com/tels.asc or per email.

 "Hi, hi, hitotai, space taxi to the sky"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iQEVAwUBRetACncLPEOTuEwVAQIMpAf9EN8x+JwnV/cZXdJY32DMimii0PfkrJ3S
bv4e8ihzhSumEPFMZ5Zs9rCRSXwRshCVQ1KxVJ/meI1HJTvwE5geHHMHeCMg6WH1
RmuZeV/mczEp3BpynhA1rhrjNhhuFmDSdcmCnOtx1gBvnDzhWBs4+PC/ld1TIpeg
NRpBs4RY+yOuPSADFzI4sbjWglJLX8/5V9+2NwyLVLibtu1LriONaUWeoOO9i/Ed
f6aTivt/wEuIe4n9Z7iOJNfkv1K8drQ32nkgbrnTIwfAmz4Uuk2UVvVNDNZi8kjv
Lga8YO0ZwXrtnIum/ghaIOCopv87yJvD7sDSWYfDO6UBBcqPeZRJPg==
=mPpc
-----END PGP SIGNATURE-----

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About