math module for Decimals
Mark Dickinson
dickinsm at gmail.com
Tue Jan 6 20:29:55 CET 2009
On Jan 6, 3:23 pm, Fredrik Johansson <fredrik.johans... at gmail.com>
wrote:
> FYI, mpmath (http://code.google.com/p/mpmath/) implements arbitrary-
> precision standard transcendental functions in pure Python. It is much
> faster than decimal, dmath, decimalfuncs and AJDecimalMathAdditions,
> and handles huge arguments just fine.
Yes, I think mpmath was mentioned already somewhere above;
it sounds like a perfect tool for the OP's requirements.
Note that it's still subject to the same limitations as anything
else for trig_function(really huge argument), of course:
>>> import mpmath
>>> mpmath.cos(mpmath.mpf('1e999999999'))
[... still waiting for a result 30 minutes later ...]
(not a criticism of mpmath: just a demonstration that this
really is pretty much unavoidable).
Out of curiosity, what sort of guarantees does mpmath give on
error bounds? It looks like it aims for 'almost correctly
rounded'; i.e., error < 0.500...001 ulps.
Here's one place in mpmath where it looks as though more
internal precision is needed (with default settings: 53-bit
precision, etc.)
>>> mpmath.log(mpmath.mpc(0.6, 0.8))
mpc(real='0.0', imag='0.9272952180016123')
Shouldn't the real part here be something like:
2.2204460492503132e-17
instead of 0.0?
Mark
More information about the Python-list
mailing list