File size: 8,630 Bytes
b200bda
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
Metadata-Version: 2.1
Name: mpmath
Version: 1.3.0
Summary: Python library for arbitrary-precision floating-point arithmetic
Home-page: http://mpmath.org/
Author: Fredrik Johansson
Author-email: fredrik.johansson@gmail.com
License: BSD
Project-URL: Source, https://github.com/fredrik-johansson/mpmath
Project-URL: Tracker, https://github.com/fredrik-johansson/mpmath/issues
Project-URL: Documentation, http://mpmath.org/doc/current/
Classifier: License :: OSI Approved :: BSD License
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
License-File: LICENSE
Provides-Extra: develop
Requires-Dist: pytest (>=4.6) ; extra == 'develop'
Requires-Dist: pycodestyle ; extra == 'develop'
Requires-Dist: pytest-cov ; extra == 'develop'
Requires-Dist: codecov ; extra == 'develop'
Requires-Dist: wheel ; extra == 'develop'
Provides-Extra: docs
Requires-Dist: sphinx ; extra == 'docs'
Provides-Extra: gmpy
Requires-Dist: gmpy2 (>=2.1.0a4) ; (platform_python_implementation != "PyPy") and extra == 'gmpy'
Provides-Extra: tests
Requires-Dist: pytest (>=4.6) ; extra == 'tests'

mpmath
======

|pypi version| |Build status| |Code coverage status| |Zenodo Badge|

.. |pypi version| image:: https://img.shields.io/pypi/v/mpmath.svg
   :target: https://pypi.python.org/pypi/mpmath
.. |Build status| image:: https://github.com/fredrik-johansson/mpmath/workflows/test/badge.svg
   :target: https://github.com/fredrik-johansson/mpmath/actions?workflow=test
.. |Code coverage status| image:: https://codecov.io/gh/fredrik-johansson/mpmath/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/fredrik-johansson/mpmath
.. |Zenodo Badge| image:: https://zenodo.org/badge/2934512.svg
   :target: https://zenodo.org/badge/latestdoi/2934512

A Python library for arbitrary-precision floating-point arithmetic.

Website: http://mpmath.org/
Main author: Fredrik Johansson <fredrik.johansson@gmail.com>

Mpmath is free software released under the New BSD License (see the
LICENSE file for details)

0. History and credits
----------------------

The following people (among others) have contributed major patches
or new features to mpmath:

* Pearu Peterson <pearu.peterson@gmail.com>
* Mario Pernici <mario.pernici@mi.infn.it>
* Ondrej Certik <ondrej@certik.cz>
* Vinzent Steinberg <vinzent.steinberg@gmail.cm>
* Nimish Telang <ntelang@gmail.com>
* Mike Taschuk <mtaschuk@ece.ualberta.ca>
* Case Van Horsen <casevh@gmail.com>
* Jorn Baayen <jorn.baayen@gmail.com>
* Chris Smith <smichr@gmail.com>
* Juan Arias de Reyna <arias@us.es>
* Ioannis Tziakos <itziakos@gmail.com>
* Aaron Meurer <asmeurer@gmail.com>
* Stefan Krastanov <krastanov.stefan@gmail.com>
* Ken Allen <ken.allen@sbcglobal.net>
* Timo Hartmann <thartmann15@gmail.com>
* Sergey B Kirpichev <skirpichev@gmail.com>
* Kris Kuhlman <kristopher.kuhlman@gmail.com>
* Paul Masson <paulmasson@analyticphysics.com>
* Michael Kagalenko <michael.kagalenko@gmail.com>
* Jonathan Warner <warnerjon12@gmail.com>
* Max Gaukler <max.gaukler@fau.de>
* Guillermo Navas-Palencia <g.navas.palencia@gmail.com>
* Nike Dattani <nike@hpqc.org>

Numerous other people have contributed by reporting bugs,
requesting new features, or suggesting improvements to the
documentation.

For a detailed changelog, including individual contributions,
see the CHANGES file.

Fredrik's work on mpmath during summer 2008 was sponsored by Google
as part of the Google Summer of Code program.

Fredrik's work on mpmath during summer 2009 was sponsored by the
American Institute of Mathematics under the support of the National Science
Foundation Grant No. 0757627 (FRG: L-functions and Modular Forms).

Any opinions, findings, and conclusions or recommendations expressed in this
material are those of the author(s) and do not necessarily reflect the
views of the sponsors.

Credit also goes to:

* The authors of the GMP library and the Python wrapper
  gmpy, enabling mpmath to become much faster at
  high precision
* The authors of MPFR, pari/gp, MPFUN, and other arbitrary-
  precision libraries, whose documentation has been helpful
  for implementing many of the algorithms in mpmath
* Wikipedia contributors; Abramowitz & Stegun; Gradshteyn & Ryzhik;
  Wolfram Research for MathWorld and the Wolfram Functions site.
  These are the main references used for special functions
  implementations.
* George Brandl for developing the Sphinx documentation tool
  used to build mpmath's documentation

Release history:

* Version 1.3.0 released on March 7, 2023
* Version 1.2.0 released on February 1, 2021
* Version 1.1.0 released on December 11, 2018
* Version 1.0.0 released on September 27, 2017
* Version 0.19 released on June 10, 2014
* Version 0.18 released on December 31, 2013
* Version 0.17 released on February 1, 2011
* Version 0.16 released on September 24, 2010
* Version 0.15 released on June 6, 2010
* Version 0.14 released on February 5, 2010
* Version 0.13 released on August 13, 2009
* Version 0.12 released on June 9, 2009
* Version 0.11 released on January 26, 2009
* Version 0.10 released on October 15, 2008
* Version 0.9 released on August 23, 2008
* Version 0.8 released on April 20, 2008
* Version 0.7 released on March 12, 2008
* Version 0.6 released on January 13, 2008
* Version 0.5 released on November 24, 2007
* Version 0.4 released on November 3, 2007
* Version 0.3 released on October 5, 2007
* Version 0.2 released on October 2, 2007
* Version 0.1 released on September 27, 2007

1. Download & installation
--------------------------

Mpmath requires Python 2.7 or 3.5 (or later versions). It has been tested
with CPython 2.7, 3.5 through 3.7 and for PyPy.

The latest release of mpmath can be downloaded from the mpmath
website and from https://github.com/fredrik-johansson/mpmath/releases

It should also be available in the Python Package Index at
https://pypi.python.org/pypi/mpmath

To install latest release of Mpmath with pip, simply run

``pip install mpmath``

Or unpack the mpmath archive and run

``python setup.py install``

Mpmath can also be installed using

``python -m easy_install mpmath``

The latest development code is available from
https://github.com/fredrik-johansson/mpmath

See the main documentation for more detailed instructions.

2. Running tests
----------------

The unit tests in mpmath/tests/ can be run via the script
runtests.py, but it is recommended to run them with py.test
(https://pytest.org/), especially
to generate more useful reports in case there are failures.

You may also want to check out the demo scripts in the demo
directory.

The master branch is automatically tested by Travis CI.

3. Documentation
----------------

Documentation in reStructuredText format is available in the
doc directory included with the source package. These files
are human-readable, but can be compiled to prettier HTML using
the build.py script (requires Sphinx, http://sphinx.pocoo.org/).

See setup.txt in the documentation for more information.

The most recent documentation is also available in HTML format:

http://mpmath.org/doc/current/

4. Known problems
-----------------

Mpmath is a work in progress. Major issues include:

* Some functions may return incorrect values when given extremely
  large arguments or arguments very close to singularities.

* Directed rounding works for arithmetic operations. It is implemented
  heuristically for other operations, and their results may be off by one
  or two units in the last place (even if otherwise accurate).

* Some IEEE 754 features are not available. Inifinities and NaN are
  partially supported; denormal rounding is currently not available
  at all.

* The interface for switching precision and rounding is not finalized.
  The current method is not threadsafe.

5. Help and bug reports
-----------------------

General questions and comments can be sent to the mpmath mailinglist,
[email protected]

You can also report bugs and send patches to the mpmath issue tracker,
https://github.com/fredrik-johansson/mpmath/issues