1.1.0:
Bugs:
* Fixed severe bug in householder() for complex matrices
* Fixed frequently-reported bug where findroot() mysteriously raised
UnboundLocalError
* Corrected rounding in binary-to-decimal conversion above 500 digits
* Fixed minor loss of accuracy affecting rf(), ff(), binomial(), beta()
* Fixed incorrect computation of the Hurwitz zeta function in some cases
* Fixed accuracy of digamma function near 0
* Fixed RuntimeError in qfac() in Python 3.7 caused by raising
StopIteration
* Fix to allow NumPy arrays in fdot()
Features and improvements:
* Added more automatic conversions from Fraction, Decimal, NumPy types
* Support creating mpf from a long literal
* Implemented log1p()
* Slight speedup of eig()
* Implement polylog() for general complex s and z by using Hurwitz zeta
algorithm as a fallback
Library:
* Test more CPython and PyPy versions
* Drop support for Python 2.6 and 3.2
* Use py.test for test code; lots of code cleanup
* Corrections to the documentation
--1.0.0--
* Bumped to major version number for 10 year anniversary
* Added module for inverse Laplace transforms, including the top level
function invertlaplace() as well as several different algorithms
(Talbot, Gaver-Stehfest and de Hoog) implemented in
mpmath.calculus.inverselaplace (Kris Kuhlman)
* Fixed bugs in elliprg() giving incorrect values for certain input
* Fixed wrong degree 1 nodes for Gaussian quadrature
* Made make acot(0) and acoth(0) return a finite result
* Fixed sieved zeta sum not being used in Python 3, and added cutoff
for sieved zeta sum on 32-bit systems when too much memory would be used
* Fixed zeta(0,0.5) to return correct value instead of raising
NoConvergence exception
* Added detection of exact zeros in gammainc(), in particular fixing
NoConvergence error for gammainc(3,-1+1j)
* Fixed wrong values from besseli() due to improper internal precision
* Fixed bessely(0,1j) to return complex nan instead of raising NameError
(Paul Masson)
* Changed float() and complex() applied to an mpf or mpc to use rounding
to nearest (or the context rounding mode) instead truncating
* Fix imaginary part of gammainc(n,x), n negative odd int, x < 0
* Added alternative "phase" color scheme to cplot()
* Better error message for int(inf) or int(nan) (Aaron Meurer)
* Fixed polyroots() with error=True
* Added support to pass optional initial values to polyroots()
(Michael Kagalenko)
* Rewrote the Python major version selection to make it work if something
else has redefined xrange (Arne Brys)
* Switched documentation formula rendering to MathJax (Sergey B Kirpichev)
* Fixed documentation TeX build (Sergey B Kirpichev)
* Added PEP8 conformity testing (Sergey B Kirpichev)
* Various fixes for the test code and test infrastructure on different
platforms and Python versions (Sergey B Kirpichev)
* Fixed module paths in setup.py (Aaron Meurer)
* Documented more options for methods such as nstr() and hyper()
* Miscellaneous corrections to the documentation (various)
Upstream changes:
--0.18--
Released December 31, 2013
Linear algebra:
* added qr() for matrix QR factorization (contributed by Ken Allen)
* added functions eigsy(), eighe(), eig() to compute matrix
eigenvalues (contributed by Timo Hartmann)
* added functions svd(), svd_r(), svd_c() for singular value
decomposition of matrices (contributed by Timo Hartmann)
* added calculation of Gaussian quadrature rules for various weight
functions (contributed by Timo Hartmann)
* improved precision selection in exp_pade() (contributed by
Mario Pernici)
Special functions:
* fixed ellippi() to return an inf instead of raising an exception
* fixed a crash in zeta() with huge arguments
* added functions for computing Stirling numbers
(stirling1(), stirling2())
* improved the computation of zeros of zeta at high precision
(contributed by Juan Arias de Reyna)
* fixed zeta(-x) raising an exception for tiny x
* recognize when lerchphi() can call zeta() or polylog(),
handling those cases faster
Compatibility:
* fixed gmpy2 compatibility issues (contributed by Case Van Horsen)
* better solutions for python 2/3 compatibility,
using Benjamin Peterson's six.py
* fixes to allow mpmath to run in non-sage mode when sage is available
* support abstract base classes (contributed by Stefan Krastanov)
* use new-style classes to improve pypy performance
Other:
* added Levin, Sidi-S and Cohen/Villegas/Zagier series
transformations (contributed by Timo Hartmann)
* added isfinite() utility function
* fixed a problem with bisection root-finding
* fixed several documentation errors
* corrected number of coefficients returned by diffs() with
method='quad'
* fixed repr(constant) being slow at high precision
* made intervals hashable
per update request from Wen Heping by PR#42755.
Pkgsrc changes:
* Set LICENSE
* correct EOL style of installed files
* Add self-test target
Changes:
--0.14--
Released February 5, 2010
General changes:
* Fully separated the code into "low-level" and "high-level", permitting the
use of alternative contexts (the mpmath.mp object provides the default
implementation)
* Implemented a context for fast double-precision arithmetic using Python
types (mpmath.fp)
* Implemented hooks for importing a faster version of mp arithmetic from Sage
* Implemented optimized fp versions of certain functions (including erf, erfc,
gamma, digamma, ei, e1)
* Renamed and reorganized various internal modules and methods (including
merging low-level modules into mpmath.libmp). This should not affect most
external code using top-level imports.
Plotting:
* Implemented splot() for 3D surface plots (contributed by Jorn Baayen)
* Permit calling plot functions with custom axes (contributed by Jorn Baayen)
Matrices:
* Fixed lu_solve for overdetermined systems (contributed by Vinzent Steinberg)
* Added conjugate matrix transpose (contributed by Vinzent Steinberg)
* Implemented matrix functions (expm, cosm, sinm, sqrtm, logm, powm)
Miscellaneous:
* Prettier printing of numbers with leading zeros at small precisions
* Made nstr pass on kwargs, permitting more formatting options
* Fixed wrong directed rounding of addition of numbers with large magnitude
differences
* Fixed several docstring typos (contributed by Chris Smith)
* Fixed a bug that prevented caching of quadrature nodes to work optimally.
Special functions:
* Implemented fast evaluation for large imaginary heights of the Riemann zeta
function, Z function and derived functions using the Riemann-Siegel
(contributed by Juan Arias de Reyna)
* Unified the zeta() and hurwitz() functions, automatically selecting a fast
algorithm
* Improved altzeta() to fall back to zeta() for large arguments
* Fixed accuracy of zeta(s) for s ~= 1
* Implemented exact evaluation of Euler numbers (contributed by Juan Arias
de Reyna)
* Implemented numerical evaluation of Euler numbers and Euler polynomials
(eulernum(), eulerpoly())
* Fixed bernpoly() and eulerpoly() to compute accurate values for large
parameters
* Fixed accuracy problems for hypergeometric functions with large parameters
* Faster evaluation of hypergeometric series using on-the-fly code generation
* Optimized hypercomb to detect certain zero terms symbolically
* Removed the djtheta function (jtheta() accepts a derivative parameter)
* Implemented li(x, offset=True) to compute the offset logarithmic integral
* Fixed wrong branch in Lambert W function for certain complex inputs
* Implemented the reflection formula for the Barnes G-function,
superfactorials, hyperfactorials, permitting large arguments in the left
half-plane
* Implemented analytic continuation to |z| >= 1 for hypergeometric functions
pFq with p=q+1; added hyp3f2()
* Implemented Borel summation of divergent pFq functions with p > q+1
* Implemented automatic degree reduction of hypergeometric functions with
repeated parameters
* Added convenience functions expj(), expjpi()
* Use Mathematica's convention for the continuation of the Meijer G-function
* Added phase(), polar(), rect() functions for compatibility with the
Python 2.6 cmath module
* Implemented spherical harmonics (spherharm())
* Optimized ci(), si(), chi(), shi() for complex arguments by evaluating
them in terms of ei()
* Optimized hyp2f1 for z ~= -1