--1.2.0--
Released February 1, 2021
Features and optimizations:
* Support @ operator for matrix multiplication (Max Gaukler)
* Add eta() implementing the Dedekind eta function
* Optimized the python_trailing function (adhoc-king)
* Implement unary plus for matrices (Max Gaukler)
* Improved calculation of gram_index (p15-git-acc)
Compatibility:
* Enable sage backend by default only if SAGE_ROOT is set (Pauli Virtanen)
* Fix syntax warnings on CPython 3.8 (Sergey B Kirpichev)
* Changed version requirements to Python 2.7 and 3.4 or later
(Sergey B Kirpichev)
* Improvements to the setup and test code (Sergey B Kirpichev)
* Fix sys.version comparisons for compatibility with Python 3.10 (Jakub Wilk)
* Fixes to Python2/3 compatibility for printing (Christian Clauss)
Bug fixes:
* Fix a possible division by zero in shanks() (Pascal Hebbeker)
* Fixed indexing errors in deHoog, Knight & Stokes inverse laplace
transform algorithm (Kris Kuhlman)
* Corrected branch cuts of the elliprj() function in some cases
* Fix initialization of iv.matrix from non-interval matrix (Max Gaukler)
* Preserve function signatures in PrecisionManager (Viet Tran)
* Implemented float and complex conversions for ivmpf
(Jonathan Warner)
* Fixed issue with scalar-matrix multiplication for interval matrices
(Jonathan Warner)
* Fix estimation of quadrature error with multiple subintervals (Tom Minka)
* Fixed a problem with the defun decorators (Sergey B Kirpichev)
* Fix eigenvalue sorting by absolute value (Georg Ostrovski)
Cleanup:
* Documentation corrections (Paul Masson, S.Y. Lee)
* Remove inaccessible logic in fsum/fdot (Sergey B Kirpichev)
* Remove broken force_type option for matrix constructor (Max Gaukler)
* Fix text of the BSD license in LICENSE (Sergey B Kirpichev)
* Minor code cleanup (Frédéric Chapoton)
* Removed old, unused code
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)
MASTER_SITES= site1 \
site2
style continuation lines to be simple repeated
MASTER_SITES+= site1
MASTER_SITES+= site2
lines. As previewed on tech-pkg. With thanks to rillig for fixing pkglint
accordingly.
--0.19--
Released June 10, 2014
* Moved issue tracking to github and the main website to mpmath.org.
Several URLs and issue numbers were updated in the documentation
(Sergey B Kirpichev)
* Enabled automatic testing with Travis CI (Sergey B Kirpichev)
* Fixed many doctest issues (Sergey B Kirpichev)
* Converted line endings to LF (Ondrej Certik)
* Made polyroots() more robust (Ondrej Certik)
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
either because they themselves are not ready or because a
dependency isn't. This is annotated by
PYTHON_VERSIONS_INCOMPATIBLE= 33 # not yet ported as of x.y.z
or
PYTHON_VERSIONS_INCOMPATIBLE= 33 # py-foo, py-bar
respectively, please use the same style for other packages,
and check during updates.
Use versioned_dependencies.mk where applicable.
Use REPLACE_PYTHON instead of handcoded alternatives, where applicable.
Reorder Makefile sections into standard order, where applicable.
Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default
with the next commit.
Whitespace cleanups and other nits corrected, where necessary.
Remove devel/py-ctypes (only needed by and supporting python24).
Remove PYTHON_VERSIONS_ACCEPTED and PYTHON_VERSIONS_INCOMPATIBLE
lines that just mirror defaults now.
Miscellaneous cleanup while editing all these files.
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