[Python-3000] Extension: mpf for GNU MP floating point
Rob Crowther
weilawei at gmail.com
Thu Sep 27 19:02:05 CEST 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I've uploaded the latest code to http://umass.glexia.net/mpf.tar.bz2
Here's a quick rundown of supported functions and operations.
The MPF() constructor accepts a string and an optional keyword
argument, prec, specifying precision (as a Long).
Supported module functions:
mpf_add Add two MPF objects
mpf_sub Subtract two MPF objects
mpf_div Divide two MPF objects
mpf_mul Multiply two MPF objects
mpf_sqrt Take the square root of an MPF object
mpf_neg Get the negative of an MPF object
mpf_abs Get the absolute value of an MPF object
mpf_pow Raise an MPF object to a power
mpf_ceil Round an MPF object to the next highest integer
mpf_floor Round an MPF object to the next lower integer
mpf_trunc Truncate the decimal portion of an MPF object
Operations supported:
(note that only MPF objects are supported atm)
+ - * / ** abs() and - (negative)
Attributes:
value A tuple of the form (base, sign, whole, decimal)
Also, it supports a print() representation. No more finagling with
value if you don't want to.
Things to come:
floor divide, support for other python numbers in the number interface
Comments:
This wasn't a case of NIH syndrome. I wrote this extension because
Decimal simply was not fast enough and the builtin floats didn't
provide enough precision for a project. The pre-existing modules were
terrible, didn't compile, etc. Necessity, not NIH syndrome.
Questions:
What features would you like to see?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFG++HqqR5p8HaX4oURAsROAKCfNMxxoa+i0lFWJZPDWH8/lguT5ACfSl7d
eYrrkokoCIjuFmnxTW6f4y4=
=cZ8M
-----END PGP SIGNATURE-----
More information about the Python-3000
mailing list