Linux

More Platforms


mpmath 0.8

mpmath is a replacement for Python's float/complex types and math/cmath modules with unlimited precision and exponent sizes. The mpmath software is written entirely in Python without any external dependencies and hence runs almost anywhere, without the need for compilation.

Requirements:
· Python (It has been tested with Python 2.5 and should work with Python 2.4)

To install, unpack the mpmath archive and run

python setup.py install

Documentation and usage:

Import mpmath with

from mpmath import *

This provides the classes mpf and mpc which work analogously to Python's float and complex types:

>>> mpf(2) / mpf(3)
mpf('0.66666666666666663')

>>> mpc(0, -1)
mpc(real='0', imag='-1')

>>> mpf(-0.6) ** mpf(-0.2)
mpc(real='0.89603999408558288', imag='-0.65101116249684809')

For prettier output (that also hides small rounding errors), use print or str():

>>> print mpf(2) / mpf(3)
0.666666666666667

>>> print mpc(1+2j)**0.5
(1.27201964951407 + 0.786151377757423j)

The precision is controlled by the properties mpf.prec (number of bits) and mpf.dps (number of decimals). These properties are linked, so changing one automatically updates the other to match. Setting prec or dps changes the precision at which all operations are carried out and the number of digits to display when printing numbers. The default is
prec=53 and dps=15, the same as Python floats.

>>> mpf.dps = 30
>>> mpf(2) / mpf(3)
mpf('0.66666666666666666666666666666663')
>>> print _
0.666666666666666666666666666667
>>> mpf.dps = 15 # restore to default

You can create mpfs and mpcs from Python numbers, or combine mpfs and mpcs with Python numbers in arithmetic operations, but be aware that regular Python floats only have finite precision. To initialize an mpf with a full-precision value, use a string:

>>> mpf(0.1)
mpf('0.10000000000000001') # same accuracy as float
>>> mpf.dps = 50
>>> mpf(0.1)
mpf('0.1000000000000000055511151231257827021181583404541016') # junk

>>> mpf('0.1')
mpf('0.1000000000000000000000000000000000000000000000000001') # ok

The following standard functions are available and support both real and complex arguments:

sqrt, exp, log, power, cos, sin, tan, cosh, sinh, tanh,
acos, asin, atan, acosh, asinh, atanh

Example:

>>> mpf.dps = 15
>>> print cos(1)
0.540302305868140
>>> mpf.dps = 50
>>> print cos(1)
0.54030230586813971740093660744297660373231042061792

Some less-common functions are also available: gamma (gamma function), factorial, erf (error function), lower_gamma/upper_gamma (incomplete gamma function) and zeta (Riemann zeta function).

Finally, the convenience functions hypot and atan2 are available (defined for real numbers only).

The constants pi, e, and cgamma (Euler's constant) are available as special objects that behave like mpfs but whose values automatically adjust to the precision.

>>> mpf.dps = 15
>>> print pi
3.14159265358979
>>> mpf.dps = 50
>>> print pi
3.1415926535897932384626433832795028841971693993751

>>> mpf.dps = 15
>>> e**(-pi*1j)
mpc(real='-1', imag='-1.2289836075083701E-16')
>>> mpf.dps = 50
>>> e**(-pi*1j)
mpc(real='-1', imag='1.0106 [...] E-51')

Directed rounding is partially implemented. For example, this computes and verifies a 15-digit approximation interval for pi:

>>> mpf.dps = 15
>>> mpf.round_down(); pi1 = +pi
>>> mpf.round_up(); pi2 = +pi
>>> pi1
mpf('3.1415926535897931')
>>> pi2
mpf('3.1415926535897936')
>>> mpf.dps = 30
>>> pi1 < pi < pi2
True

What's New in This Release:

· This version adds methods for oscillatory quadrature, accelerated summation of infinite series, limit computation, integration of ODEs, and constant recognition (similar to the Inverse Symbolic Calculator).
· There are several new mathematical functions, including the Lambert W function, elliptic integrals and various hypergeometric functions, plus a few new mathematical constants such as the golden ratio and Khinchin's constant.
· Various existing functions have been tuned for accuracy and speed.
· A number of important bugfixes have also been committed.

Details

Publisher N/A
Downloads 2
Date Added 23rd April, 2008
File Size 130.47 KB
Report Send us a report
Reviews Review mpmath 0.8 now
Rate this file
Rated mediocre (5.0, 8 votes cast)

Download Now