mpmath 1.4.1__tar.gz → 1.5.0a1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mpmath-1.4.1 → mpmath-1.5.0a1}/.github/CONTRIBUTING.rst +37 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/.github/dependabot.yml +5 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/.github/workflows/coverage.yml +3 -3
- {mpmath-1.4.1 → mpmath-1.5.0a1}/.github/workflows/docs.yml +5 -6
- {mpmath-1.4.1 → mpmath-1.5.0a1}/.github/workflows/linter.yml +2 -2
- {mpmath-1.4.1 → mpmath-1.5.0a1}/.github/workflows/publish.yml +4 -4
- {mpmath-1.4.1 → mpmath-1.5.0a1}/.github/workflows/test.yml +10 -7
- {mpmath-1.4.1 → mpmath-1.5.0a1}/CHANGES +110 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/PKG-INFO +11 -7
- {mpmath-1.4.1 → mpmath-1.5.0a1}/README.rst +6 -2
- mpmath-1.5.0a1/conftest.py +36 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/demo/manydigits.py +5 -3
- {mpmath-1.4.1 → mpmath-1.5.0a1}/demo/pidigits.py +4 -2
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/basics.rst +34 -4
- mpmath-1.5.0a1/docs/calculus/fft.rst +13 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/calculus/index.rst +1 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/calculus/inverselaplace.rst +1 -1
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/calculus/optimization.rst +3 -1
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/functions/bessel.rst +5 -3
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/functions/constants.rst +3 -3
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/functions/elliptic.rst +13 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/functions/powers.rst +3 -3
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/general.rst +7 -4
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/matrices.rst +3 -3
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/setup.rst +3 -3
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/technical.rst +3 -2
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/__init__.py +16 -4
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/__main__.py +5 -0
- mpmath-1.5.0a1/mpmath/_version.py +24 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/calculus/__init__.py +1 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/calculus/approximation.py +8 -14
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/calculus/differentiation.py +28 -19
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/calculus/extrapolation.py +30 -10
- mpmath-1.5.0a1/mpmath/calculus/fft.py +110 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/calculus/inverselaplace.py +65 -37
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/calculus/odes.py +1 -1
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/calculus/optimization.py +246 -28
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/calculus/polynomials.py +11 -26
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/calculus/quadrature.py +21 -16
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/ctx_base.py +18 -12
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/ctx_fp.py +7 -9
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/ctx_iv.py +49 -38
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/ctx_mp.py +144 -107
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/ctx_mp_python.py +64 -42
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/function_docs.py +9 -11
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/functions/bessel.py +236 -37
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/functions/elliptic.py +795 -20
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/functions/factorials.py +15 -4
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/functions/functions.py +7 -12
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/functions/hypergeometric.py +147 -33
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/functions/orthogonal.py +89 -21
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/functions/qfunctions.py +12 -10
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/functions/rszeta.py +1 -1
- mpmath-1.5.0a1/mpmath/functions/theta.py +552 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/functions/zeta.py +64 -32
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/functions/zetazeros.py +2 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/identification.py +21 -27
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/libfp.py +1 -1
- mpmath-1.5.0a1/mpmath/libmp/__init__.py +18 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/libmp/gammazeta.py +22 -22
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/libmp/libelefun.py +35 -35
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/libmp/libhyper.py +23 -23
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/libmp/libintmath.py +39 -23
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/libmp/libmpc.py +55 -55
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/libmp/libmpf.py +306 -175
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/matrices/eigen.py +3 -3
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/matrices/linalg.py +55 -13
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/matrices/matrices.py +11 -20
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_basic_ops.py +134 -38
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_bitwise.py +16 -26
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_calculus.py +95 -41
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_cli.py +12 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_convert.py +9 -10
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_demos.py +2 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_division.py +5 -4
- mpmath-1.5.0a1/mpmath/tests/test_elliptic.py +1421 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_extra_zeta.py +9 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_format.py +112 -14
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_fp.py +9 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_functions.py +17 -2
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_functions2.py +74 -11
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_gammazeta.py +2 -1
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_hp.py +1 -1
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_identify.py +1 -4
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_interval.py +4 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_linalg.py +27 -1
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_matrices.py +0 -4
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_rootfinding.py +89 -4
- mpmath-1.5.0a1/mpmath/tests/test_str.py +159 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_version_frozen.sh +0 -0
- mpmath-1.5.0a1/mpmath/tests/test_visualization.py +92 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/visualization.py +21 -7
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath.egg-info/PKG-INFO +11 -7
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath.egg-info/SOURCES.txt +4 -2
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath.egg-info/requires.txt +4 -2
- mpmath-1.5.0a1/mpmath.egg-info/scm_file_list.json +252 -0
- mpmath-1.5.0a1/mpmath.egg-info/scm_version.json +8 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/pyproject.toml +5 -5
- mpmath-1.4.1/conftest.py +0 -32
- mpmath-1.4.1/mpmath/_version.py +0 -34
- mpmath-1.4.1/mpmath/functions/theta.py +0 -1049
- mpmath-1.4.1/mpmath/libmp/__init__.py +0 -68
- mpmath-1.4.1/mpmath/math2.py +0 -7
- mpmath-1.4.1/mpmath/rational.py +0 -11
- mpmath-1.4.1/mpmath/tests/test_elliptic.py +0 -664
- mpmath-1.4.1/mpmath/tests/test_str.py +0 -52
- mpmath-1.4.1/mpmath/tests/test_visualization.py +0 -35
- {mpmath-1.4.1 → mpmath-1.5.0a1}/.codecov.yml +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/.gitattributes +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/.gitignore +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/.readthedocs.yaml +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/CITATION.bib +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/LICENSE +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/demo/mandelbrot.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/demo/plotting.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/demo/sofa.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/demo/taylor.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/calculus/approximation.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/calculus/differentiation.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/calculus/integration.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/calculus/odes.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/calculus/polynomials.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/calculus/sums_limits.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/cli.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/conf.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/contexts.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/functions/expintegrals.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/functions/gamma.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/functions/hyperbolic.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/functions/hypergeometric.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/functions/index.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/functions/numtheory.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/functions/orthogonal.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/functions/qfunctions.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/functions/signals.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/functions/trigonometric.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/functions/zeta.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/genindex.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/identification.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/index.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/ai.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/ai.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/ai_c.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/ai_c.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/ber.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/ber.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/besseli.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/besseli.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/besseli_c.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/besseli_c.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/besselj.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/besselj.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/besselj_c.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/besselj_c.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/besselk.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/besselk.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/besselk_c.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/besselk_c.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/bessely.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/bessely.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/bessely_c.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/bessely_c.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/bi.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/bi.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/bi_c.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/bi_c.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/buildplots.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/chebyt.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/chebyt.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/chebyu.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/chebyu.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/coulombf.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/coulombf.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/coulombf_c.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/coulombf_c.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/coulombg.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/coulombg.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/coulombg_c.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/coulombg_c.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/ellipe.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/ellipe.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/ellipf.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/ellipf.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/ellipk.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/ellipk.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/ellippi.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/ellippi.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/gi.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/gi.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/gi_c.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/gi_c.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/hankel1.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/hankel1.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/hankel1_c.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/hankel1_c.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/hankel2.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/hankel2.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/hankel2_c.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/hankel2_c.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/hermite.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/hermite.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/hi.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/hi.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/hi_c.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/hi_c.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/ker.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/ker.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/kleinj.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/kleinj.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/kleinj2.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/kleinj2.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/laguerre.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/laguerre.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/lambertw.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/lambertw.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/lambertw_c.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/lambertw_c.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/legendre.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/legendre.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/lommels1.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/lommels1.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/lommels2.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/lommels2.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/pcfd.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/pcfd.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/spherharm40.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/spherharm40.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/spherharm41.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/spherharm41.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/spherharm42.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/spherharm42.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/spherharm43.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/spherharm43.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/spherharm44.png +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plots/spherharm44.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/plotting.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/docs/references.rst +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/_interactive.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/calculus/calculus.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/functions/__init__.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/functions/expintegrals.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/functions/signals.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/libmp/backend.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/libmp/libmpi.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/matrices/__init__.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/matrices/calculus.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/matrices/eigen_symmetric.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_compatibility.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_diff.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_eigen.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_eigen_symmetric.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_extra_gamma.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_levin.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_module.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_mpmath.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_ode.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_pickle.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_power.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_quad.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_special.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_summation.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_torture.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/tests/test_trig.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath/usertools.py +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath.egg-info/dependency_links.txt +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath.egg-info/top_level.txt +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/mpmath.egg-info/zip-safe +0 -0
- {mpmath-1.4.1 → mpmath-1.5.0a1}/setup.cfg +0 -0
|
@@ -62,6 +62,43 @@ All work should be submitted via `Pull Requests (PR)`_.
|
|
|
62
62
|
and check that it looks as expected.
|
|
63
63
|
|
|
64
64
|
|
|
65
|
+
AI Generated Code and Communication Policy
|
|
66
|
+
==========================================
|
|
67
|
+
|
|
68
|
+
The person submitting an issue or PR is responsible for its content, regardless
|
|
69
|
+
of whether AI tools were used in its creation. Generative AI tools can produce
|
|
70
|
+
output quickly, but discretion, good judgment, and critical thinking are the
|
|
71
|
+
foundation of all good contributions.
|
|
72
|
+
|
|
73
|
+
You must understand and explain the code you submit as well as the existing
|
|
74
|
+
related code. It is not acceptable to submit a patch that you cannot
|
|
75
|
+
understand and explain yourself. In explaining your contribution, do not use
|
|
76
|
+
AI to automatically generate descriptions, as AI rarely communicates such
|
|
77
|
+
information correctly and concisely.
|
|
78
|
+
|
|
79
|
+
Disclosure
|
|
80
|
+
----------
|
|
81
|
+
|
|
82
|
+
If you substantially make use of AI to assist in the development of your patch,
|
|
83
|
+
you must disclose how it was used and what code in the patch is AI generated.
|
|
84
|
+
Pull request without such disclosure may be rejected.
|
|
85
|
+
|
|
86
|
+
Code Quality
|
|
87
|
+
------------
|
|
88
|
+
|
|
89
|
+
Code generated by AI is very often of low quality. Contributors are expected
|
|
90
|
+
to submit code that meets our standards (see above). We will reject pull
|
|
91
|
+
requests that we deem being "AI slop". Do not waste developers time by
|
|
92
|
+
submitting code that is fully or mostly generated by AI.
|
|
93
|
+
|
|
94
|
+
Communication
|
|
95
|
+
-------------
|
|
96
|
+
|
|
97
|
+
When interacting in communication among developers (email list, discussions,
|
|
98
|
+
issues, pull requests, etc) do not use AI to speak for you, other than for
|
|
99
|
+
translation or grammar editing.
|
|
100
|
+
|
|
101
|
+
|
|
65
102
|
.. _GitHub issues: https://github.com/mpmath/mpmath/issues
|
|
66
103
|
.. _Pull Requests (PR): https://github.com/mpmath/mpmath/pulls
|
|
67
104
|
.. _PEP 8: https://www.python.org/dev/peps/pep-0008/
|
|
@@ -8,10 +8,10 @@ jobs:
|
|
|
8
8
|
env:
|
|
9
9
|
PYTEST_ADDOPTS: --cov mpmath --cov-append -n auto
|
|
10
10
|
steps:
|
|
11
|
-
- uses: actions/checkout@
|
|
11
|
+
- uses: actions/checkout@v7
|
|
12
12
|
with:
|
|
13
13
|
fetch-depth: 0
|
|
14
|
-
- uses: actions/setup-python@
|
|
14
|
+
- uses: actions/setup-python@v7
|
|
15
15
|
with:
|
|
16
16
|
python-version: "3.x"
|
|
17
17
|
- name: Install dependencies
|
|
@@ -37,7 +37,7 @@ jobs:
|
|
|
37
37
|
coverage html
|
|
38
38
|
diff-cover coverage.xml --fail-under=100 \
|
|
39
39
|
--compare-branch=origin/master
|
|
40
|
-
- uses: actions/upload-artifact@
|
|
40
|
+
- uses: actions/upload-artifact@v7
|
|
41
41
|
with:
|
|
42
42
|
name: coverage
|
|
43
43
|
path: |
|
|
@@ -4,10 +4,10 @@ jobs:
|
|
|
4
4
|
docs:
|
|
5
5
|
runs-on: ubuntu-24.04
|
|
6
6
|
steps:
|
|
7
|
-
- uses: actions/checkout@
|
|
7
|
+
- uses: actions/checkout@v7
|
|
8
8
|
with:
|
|
9
9
|
fetch-depth: 0
|
|
10
|
-
- uses: actions/setup-python@
|
|
10
|
+
- uses: actions/setup-python@v7
|
|
11
11
|
with:
|
|
12
12
|
python-version: "3.x"
|
|
13
13
|
- name: Install libs
|
|
@@ -20,14 +20,13 @@ jobs:
|
|
|
20
20
|
pip install --upgrade .[docs]
|
|
21
21
|
- name: Building docs
|
|
22
22
|
run: |
|
|
23
|
-
|
|
24
|
-
sphinx-build -b
|
|
25
|
-
sphinx-build -b latex docs build/sphinx/latex
|
|
23
|
+
sphinx-build --color -W --keep-going -b html docs build/sphinx/html
|
|
24
|
+
sphinx-build --color -W --keep-going -b latex docs build/sphinx/latex
|
|
26
25
|
make -C build/sphinx/latex all-pdf
|
|
27
26
|
env:
|
|
28
27
|
NO_COLOR: 1 # workaround for sphinx-contrib/autoprogram#76
|
|
29
28
|
COLUMNS: 80 # also enable line wrapping for argparse
|
|
30
|
-
- uses: actions/upload-artifact@
|
|
29
|
+
- uses: actions/upload-artifact@v7
|
|
31
30
|
with:
|
|
32
31
|
name: docs
|
|
33
32
|
path: |
|
|
@@ -4,10 +4,10 @@ jobs:
|
|
|
4
4
|
linter:
|
|
5
5
|
runs-on: ubuntu-24.04
|
|
6
6
|
steps:
|
|
7
|
-
- uses: actions/checkout@
|
|
7
|
+
- uses: actions/checkout@v7
|
|
8
8
|
with:
|
|
9
9
|
fetch-depth: 0
|
|
10
|
-
- uses: actions/setup-python@
|
|
10
|
+
- uses: actions/setup-python@v7
|
|
11
11
|
with:
|
|
12
12
|
python-version: "3.x"
|
|
13
13
|
- run: pip install --upgrade .[develop]
|
|
@@ -5,15 +5,15 @@ jobs:
|
|
|
5
5
|
name: Build distributions
|
|
6
6
|
runs-on: ubuntu-24.04
|
|
7
7
|
steps:
|
|
8
|
-
- uses: actions/checkout@
|
|
8
|
+
- uses: actions/checkout@v7
|
|
9
9
|
with:
|
|
10
10
|
fetch-depth: 0
|
|
11
|
-
- uses: actions/setup-python@
|
|
11
|
+
- uses: actions/setup-python@v7
|
|
12
12
|
with:
|
|
13
13
|
python-version: "3.x"
|
|
14
14
|
- run: pip install build
|
|
15
15
|
- run: python -m build
|
|
16
|
-
- uses: actions/upload-artifact@
|
|
16
|
+
- uses: actions/upload-artifact@v7
|
|
17
17
|
with:
|
|
18
18
|
name: build
|
|
19
19
|
path: dist/
|
|
@@ -24,7 +24,7 @@ jobs:
|
|
|
24
24
|
- build
|
|
25
25
|
runs-on: ubuntu-24.04
|
|
26
26
|
steps:
|
|
27
|
-
- uses: actions/download-artifact@
|
|
27
|
+
- uses: actions/download-artifact@v8
|
|
28
28
|
with:
|
|
29
29
|
pattern: build
|
|
30
30
|
path: dist/
|
|
@@ -5,6 +5,9 @@ on:
|
|
|
5
5
|
workflow_dispatch:
|
|
6
6
|
schedule:
|
|
7
7
|
- cron: '0 0 * * 2'
|
|
8
|
+
concurrency:
|
|
9
|
+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
|
10
|
+
cancel-in-progress: true
|
|
8
11
|
jobs:
|
|
9
12
|
linter:
|
|
10
13
|
uses: ./.github/workflows/linter.yml
|
|
@@ -15,14 +18,14 @@ jobs:
|
|
|
15
18
|
frozen-version:
|
|
16
19
|
runs-on: ubuntu-24.04
|
|
17
20
|
steps:
|
|
18
|
-
- uses: actions/checkout@
|
|
21
|
+
- uses: actions/checkout@v7
|
|
19
22
|
with:
|
|
20
23
|
fetch-depth: 0
|
|
21
|
-
- uses: actions/setup-python@
|
|
24
|
+
- uses: actions/setup-python@v7
|
|
22
25
|
with:
|
|
23
26
|
python-version: "3.x"
|
|
24
27
|
- name: Run frozen version test
|
|
25
|
-
run:
|
|
28
|
+
run: ./mpmath/tests/test_version_frozen.sh
|
|
26
29
|
tests:
|
|
27
30
|
needs:
|
|
28
31
|
- linter
|
|
@@ -32,7 +35,7 @@ jobs:
|
|
|
32
35
|
strategy:
|
|
33
36
|
fail-fast: false
|
|
34
37
|
matrix:
|
|
35
|
-
python-version: [
|
|
38
|
+
python-version: ['3.10', 3.11, 3.12, 3.13, 3.14, 3.14t, 3.15, 3.15t]
|
|
36
39
|
nogmpy: [false]
|
|
37
40
|
purepy: [false]
|
|
38
41
|
include:
|
|
@@ -43,13 +46,13 @@ jobs:
|
|
|
43
46
|
- python-version: pypy3.11
|
|
44
47
|
purepy: true
|
|
45
48
|
env:
|
|
46
|
-
PYTEST_ADDOPTS: -n auto
|
|
49
|
+
PYTEST_ADDOPTS: -n auto --durations=20
|
|
47
50
|
steps:
|
|
48
|
-
- uses: actions/checkout@
|
|
51
|
+
- uses: actions/checkout@v7
|
|
49
52
|
with:
|
|
50
53
|
fetch-depth: 0
|
|
51
54
|
- name: Set up Python ${{ matrix.python-version }}
|
|
52
|
-
uses: actions/setup-python@
|
|
55
|
+
uses: actions/setup-python@v7
|
|
53
56
|
with:
|
|
54
57
|
python-version: ${{ matrix.python-version }}
|
|
55
58
|
allow-prereleases: true
|
|
@@ -1,3 +1,112 @@
|
|
|
1
|
+
--1.5.0--
|
|
2
|
+
Released TBD
|
|
3
|
+
|
|
4
|
+
Features:
|
|
5
|
+
|
|
6
|
+
* Support special numbers in mpf_frexp() like math.frexp(),
|
|
7
|
+
see #1081 (Sergey B Kirpichev)
|
|
8
|
+
* Add ModAB rootfinding algorithm, see #1093 (Ayush Baranwal)
|
|
9
|
+
* Add Brent root-finding algorithm, see #1103 (Ayush Baranwal)
|
|
10
|
+
* Correct integral path of the lerchphi() to use Laplace transform
|
|
11
|
+
integral, see #1109 (Sergey B Kirpichev)
|
|
12
|
+
* Add Weierstrass elliptic functions, see #1113, #1117,
|
|
13
|
+
#1141, #1146 and #1157 (Graham Hesketh)
|
|
14
|
+
* Implement the modified spherical bessel functions spherical_in()
|
|
15
|
+
and spherical_kn(), see #1121 (Warren Weckesser)
|
|
16
|
+
* Add ulp(), see #1144 (Sergey B Kirpichev)
|
|
17
|
+
* Use round_nearest in repr/str and as default mpf's rounding mode,
|
|
18
|
+
see #1153 (Sergey B Kirpichev)
|
|
19
|
+
* Add shortest_str context option to enable using shortest decimal
|
|
20
|
+
representations in str/repr/format output, see #1115 (Sergey B Kirpichev)
|
|
21
|
+
* Add fft()/invfft() functions for DFT calculation, see #1152 (Ayush Baranwal)
|
|
22
|
+
|
|
23
|
+
Compatibility:
|
|
24
|
+
|
|
25
|
+
* Drop support for CPython 3.9, see #1058 (Sergey B Kirpichev)
|
|
26
|
+
* Remove deprecated math2 and rational modules, see #1057 (Sergey B Kirpichev)
|
|
27
|
+
* Remove deprecated mp.mpnumeric alias, see #1057 (Sergey B Kirpichev)
|
|
28
|
+
* Remove deprecated bitcount(), fp.is_special() and to/from_pickable()
|
|
29
|
+
functions, see #1057 (Sergey B Kirpichev)
|
|
30
|
+
* Drop DeprecationWarning for force_type kwarg for matrix(),
|
|
31
|
+
see #1057 (Sergey B Kirpichev)
|
|
32
|
+
* Use signed=True per default in to_man_exp(), see #1057 (Sergey B Kirpichev)
|
|
33
|
+
* Use asc=True per default for polynomial functions, see
|
|
34
|
+
#1057 (Sergey B Kirpichev)
|
|
35
|
+
* Restrict libmp exports to public API, see #1089 (Sergey B Kirpichev)
|
|
36
|
+
* Use explicit kwargs in public API, where possible,
|
|
37
|
+
see #1127 (Sergey B Kirpichev)
|
|
38
|
+
|
|
39
|
+
Bug fixes:
|
|
40
|
+
|
|
41
|
+
* Fix test_hexadecimal_with_libc_bulk(), see #1049 (Doug Torrance)
|
|
42
|
+
* Keep available deprecated aliases for mpc/mpf_log() (Sergey B Kirpichev)
|
|
43
|
+
* Use version_file option of setuptools-scm to keep version info, see #1048
|
|
44
|
+
(Sergey B Kirpichev)
|
|
45
|
+
* Add workaround for test on s390x, see #1061 (Sergey B Kirpichev)
|
|
46
|
+
* Fix signature of root(), see #1072 (Sergey B Kirpichev)
|
|
47
|
+
* Speedup removal trailing zeros in _normalize/from_man_exp(), see #1074
|
|
48
|
+
(Fredrik Johansson and Sergey B Kirpichev)
|
|
49
|
+
* Improve documentation about rounding in the mp context,
|
|
50
|
+
see #1079 (Sergey B Kirpichev)
|
|
51
|
+
* Correct to_float() conversion for double-rounding cases (e.g. subnormals),
|
|
52
|
+
see #1082 (Sergey B Kirpichev)
|
|
53
|
+
* Fix qr_solve() failure on well-conditioned matrices with zero pivot, see
|
|
54
|
+
#1083 (Jam Balaya)
|
|
55
|
+
* Clarify to_float() docstring, see #1087 (Sergey B Kirpichev)
|
|
56
|
+
* Add extra precision for summation in mpf_hypot(), see
|
|
57
|
+
#1088 (Sergey B Kirpichev)
|
|
58
|
+
* Fix typo and function names for sin/cospi(), see #1091 (Sergey B Kirpichev)
|
|
59
|
+
* Raise ValueError when same sign at interval boundaries in bisection
|
|
60
|
+
rootfinding algorithm, see #1092 (Ayush Baranwal)
|
|
61
|
+
* Correct interval update for Ridder's method, see #1096 (Sergey B Kirpichev)
|
|
62
|
+
* Set dynamic maxsteps value for the bisect method, see
|
|
63
|
+
#1096 (Sergey B Kirpichev)
|
|
64
|
+
* Implement direct series for lerchphi() base case with |z| < 1,
|
|
65
|
+
see #1100 (Sergey B Kirpichev)
|
|
66
|
+
* Correct exception message for THETA_Q_LIM, see #1102
|
|
67
|
+
(Sergey B Kirpichev and Jam Balaya)
|
|
68
|
+
* Fix gegenbauer() failing to converge for odd integer n at z=0,
|
|
69
|
+
see #1101 (Vincent Gao)
|
|
70
|
+
* Reorganize fixed-precision computations for theta3 to avoid
|
|
71
|
+
severe cancellation, see #1107 (Sergey B Kirpichev)
|
|
72
|
+
* Fix fp.hypsum() to exit if ZeroDivisionError occurs and t==0,
|
|
73
|
+
see #1112 (Sergey B Kirpichev)
|
|
74
|
+
* Fix chebyfit IndexError when N <= 0, see #1114 (Vincent Gao)
|
|
75
|
+
* Use generic modular transformations to compute jtheta() with
|
|
76
|
+
|q| ~ 1, see #1111 (Sergey B Kirpichev, Jam Balaya)
|
|
77
|
+
* Fix repr_dps() to produce a correct estimate for prec!=53,
|
|
78
|
+
see #1118 (Sergey B Kirpichev)
|
|
79
|
+
* Use quasi-periodicity property (DLMF, §20.2(ii)) to compute
|
|
80
|
+
jtheta(), *_theta2/3a() helpers now not needed, see #1120
|
|
81
|
+
(Sergey B Kirpichev)
|
|
82
|
+
* Close leftover figure in plot/cplot/splot on error,
|
|
83
|
+
see #1123 (Apoorv Darshan)
|
|
84
|
+
* Better document None return value of the pslq(), see
|
|
85
|
+
#1134 (Sergey B Kirpichev)
|
|
86
|
+
* Fix last-digit rounding of the "f" format type, see #1132 (Vincent Gao)
|
|
87
|
+
* Use CoW pattern to manage constant_memo() cache, see
|
|
88
|
+
#1138 (Sergey B Kirpichev)
|
|
89
|
+
* Widen to_str's digit window so str/nstr rounds near-boundary values
|
|
90
|
+
correctly, see #1139 (Vincent Gao)
|
|
91
|
+
* Correct definitions for spherical Bessel functions, see #1143
|
|
92
|
+
(Sergey B Kirpichev)
|
|
93
|
+
* Added 2 new expceptions to Rosser's Rule, se #1148 (catalin-hanga)
|
|
94
|
+
* Avoid spurious overflow in fp gammaprod, see #1150 (Sanjay Santhanam)
|
|
95
|
+
* Document pretty_dps context's option, see #1153 (Sergey B Kirpichev)
|
|
96
|
+
* Fix cplot points rounding, see #1155 (alexfyp)
|
|
97
|
+
|
|
98
|
+
Maintenance:
|
|
99
|
+
|
|
100
|
+
* Add bash script to test package version in a frozen application version
|
|
101
|
+
and a separate CI job to run it, see #1055 (flurin4)
|
|
102
|
+
* Revert "Add backport action", see #1063 (Sergey B Kirpichev)
|
|
103
|
+
* Test on CPython 3.15, see #1071, #1106 and #1110 (Sergey B Kirpichev)
|
|
104
|
+
* Add AI-related policy, see #1098 (Sergey B Kirpichev)
|
|
105
|
+
* Fix test_sn_cn_dn_identities(), see #1106 (Sergey B Kirpichev)
|
|
106
|
+
* Fix test_compatibility(): avoid using of private numpy
|
|
107
|
+
API (Sergey B Kirpichev)
|
|
108
|
+
|
|
109
|
+
|
|
1
110
|
--1.4.1--
|
|
2
111
|
Released March 15, 2026
|
|
3
112
|
|
|
@@ -9,6 +118,7 @@ Bug fixes:
|
|
|
9
118
|
(Sergey B Kirpichev)
|
|
10
119
|
* Add workaround for test on s390x, see #1061 (Sergey B Kirpichev)
|
|
11
120
|
|
|
121
|
+
|
|
12
122
|
--1.4.0--
|
|
13
123
|
Released February 23, 2026
|
|
14
124
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mpmath
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.5.0a1
|
|
4
4
|
Summary: Python library for arbitrary-precision floating-point arithmetic
|
|
5
5
|
Author-email: Fredrik Johansson <fredrik.johansson@gmail.com>
|
|
6
6
|
License-Expression: BSD-3-Clause
|
|
@@ -13,24 +13,24 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
13
13
|
Classifier: Programming Language :: Python
|
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
|
15
15
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.10
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.13
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.14
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
22
22
|
Classifier: Programming Language :: Python :: Free Threading :: 2 - Beta
|
|
23
23
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
24
24
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
25
|
-
Requires-Python: >=3.
|
|
25
|
+
Requires-Python: >=3.10
|
|
26
26
|
Description-Content-Type: text/x-rst
|
|
27
27
|
License-File: LICENSE
|
|
28
28
|
Provides-Extra: tests
|
|
29
29
|
Requires-Dist: pytest>=6; extra == "tests"
|
|
30
|
-
Requires-Dist: numpy; extra == "tests"
|
|
30
|
+
Requires-Dist: numpy; python_version < "3.15" and extra == "tests"
|
|
31
31
|
Requires-Dist: packaging; extra == "tests"
|
|
32
32
|
Requires-Dist: pytest-timeout; extra == "tests"
|
|
33
|
-
Requires-Dist: matplotlib; extra == "tests"
|
|
33
|
+
Requires-Dist: matplotlib; python_version < "3.15" and extra == "tests"
|
|
34
34
|
Requires-Dist: pexpect; extra == "tests"
|
|
35
35
|
Requires-Dist: ipython; extra == "tests"
|
|
36
36
|
Requires-Dist: hypothesis; extra == "tests"
|
|
@@ -142,6 +142,7 @@ Credit also goes to:
|
|
|
142
142
|
|
|
143
143
|
Release history:
|
|
144
144
|
|
|
145
|
+
* Version 1.4.1 released on March 15, 2026
|
|
145
146
|
* Version 1.4.0 released on February 23, 2026
|
|
146
147
|
* Version 1.3.0 released on March 7, 2023
|
|
147
148
|
* Version 1.2.1 released on February 9, 2021
|
|
@@ -171,8 +172,8 @@ Release history:
|
|
|
171
172
|
1. Download & installation
|
|
172
173
|
--------------------------
|
|
173
174
|
|
|
174
|
-
Mpmath requires Python 3.
|
|
175
|
-
3.
|
|
175
|
+
Mpmath requires Python 3.10 or later versions. It has been tested with CPython
|
|
176
|
+
3.10 through 3.15 and for PyPy 3.11.
|
|
176
177
|
|
|
177
178
|
The latest release of mpmath can be downloaded from the mpmath
|
|
178
179
|
website and from https://github.com/mpmath/mpmath/releases
|
|
@@ -243,3 +244,6 @@ to the `mpmath mailinglist <https://groups.google.com/g/mpmath>`_.
|
|
|
243
244
|
|
|
244
245
|
You can also report bugs and send patches to the mpmath issue tracker,
|
|
245
246
|
https://github.com/mpmath/mpmath/issues
|
|
247
|
+
|
|
248
|
+
See also our `contributing guidelines
|
|
249
|
+
<https://github.com/mpmath/mpmath/blob/master/.github/CONTRIBUTING.rst>`_.
|
|
@@ -85,6 +85,7 @@ Credit also goes to:
|
|
|
85
85
|
|
|
86
86
|
Release history:
|
|
87
87
|
|
|
88
|
+
* Version 1.4.1 released on March 15, 2026
|
|
88
89
|
* Version 1.4.0 released on February 23, 2026
|
|
89
90
|
* Version 1.3.0 released on March 7, 2023
|
|
90
91
|
* Version 1.2.1 released on February 9, 2021
|
|
@@ -114,8 +115,8 @@ Release history:
|
|
|
114
115
|
1. Download & installation
|
|
115
116
|
--------------------------
|
|
116
117
|
|
|
117
|
-
Mpmath requires Python 3.
|
|
118
|
-
3.
|
|
118
|
+
Mpmath requires Python 3.10 or later versions. It has been tested with CPython
|
|
119
|
+
3.10 through 3.15 and for PyPy 3.11.
|
|
119
120
|
|
|
120
121
|
The latest release of mpmath can be downloaded from the mpmath
|
|
121
122
|
website and from https://github.com/mpmath/mpmath/releases
|
|
@@ -186,3 +187,6 @@ to the `mpmath mailinglist <https://groups.google.com/g/mpmath>`_.
|
|
|
186
187
|
|
|
187
188
|
You can also report bugs and send patches to the mpmath issue tracker,
|
|
188
189
|
https://github.com/mpmath/mpmath/issues
|
|
190
|
+
|
|
191
|
+
See also our `contributing guidelines
|
|
192
|
+
<https://github.com/mpmath/mpmath/blob/master/.github/CONTRIBUTING.rst>`_.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
|
|
3
|
+
import pytest
|
|
4
|
+
|
|
5
|
+
import mpmath
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def pytest_report_header(config):
|
|
9
|
+
print("mpmath backend: %s" % mpmath.libmp.backend.BACKEND)
|
|
10
|
+
print("mpmath mp class: %s" % repr(mpmath.mp))
|
|
11
|
+
print("mpmath version: %s" % mpmath.__version__)
|
|
12
|
+
print("Python version: %s" % sys.version)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def pytest_configure(config):
|
|
16
|
+
config.addinivalue_line('markers', 'slow: marks tests as slow')
|
|
17
|
+
|
|
18
|
+
if "no:hypothesispytest" not in config.getoption("-p"):
|
|
19
|
+
from hypothesis import settings
|
|
20
|
+
|
|
21
|
+
default = settings.get_profile("default")
|
|
22
|
+
settings.register_profile("default",
|
|
23
|
+
settings(default, max_examples=1000))
|
|
24
|
+
ci = settings.get_profile("ci")
|
|
25
|
+
settings.register_profile("ci", settings(ci, max_examples=10000))
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@pytest.fixture(autouse=True)
|
|
29
|
+
def reset_mp_globals():
|
|
30
|
+
mpmath.mp.prec = sys.float_info.mant_dig
|
|
31
|
+
mpmath.mp.pretty = False
|
|
32
|
+
mpmath.mp.rounding = 'n'
|
|
33
|
+
mpmath.mp.pretty_dps = "str"
|
|
34
|
+
mpmath.mp.shortest_str = False
|
|
35
|
+
mpmath.iv.prec = mpmath.mp.prec
|
|
36
|
+
mpmath.iv.pretty = False
|
|
@@ -8,9 +8,11 @@ Run with:
|
|
|
8
8
|
python manydigits.py
|
|
9
9
|
|
|
10
10
|
"""
|
|
11
|
-
from mpmath import (
|
|
12
|
-
|
|
13
|
-
from mpmath.libmp import
|
|
11
|
+
from mpmath import (asin, asinh, atan, atanh, catalan, cos, e, exp, findroot,
|
|
12
|
+
mp, mpf, pi, quadts, sin, sqrt, tan, tanh, zeta)
|
|
13
|
+
from mpmath.libmp.libintmath import bin_to_radix
|
|
14
|
+
from mpmath.libmp.libmpf import to_fixed
|
|
15
|
+
|
|
14
16
|
|
|
15
17
|
dps = 100
|
|
16
18
|
mp.dps = dps + 10
|
|
@@ -5,11 +5,13 @@ Calculate digits of pi. This module can be run interactively with
|
|
|
5
5
|
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
-
import sys
|
|
9
8
|
import math
|
|
9
|
+
import sys
|
|
10
10
|
from time import perf_counter
|
|
11
11
|
|
|
12
|
-
from mpmath.libmp import
|
|
12
|
+
from mpmath.libmp.libelefun import pi_fixed
|
|
13
|
+
from mpmath.libmp.libintmath import bin_to_radix, numeral
|
|
14
|
+
|
|
13
15
|
|
|
14
16
|
def display_fraction(digits, skip=0, colwidth=10, columns=5):
|
|
15
17
|
perline = colwidth * columns
|
|
@@ -82,6 +82,8 @@ Mpmath uses a global working precision; it does not keep track of the precision
|
|
|
82
82
|
mp.dps = 15 [default: 15]
|
|
83
83
|
mp.rounding = 'n' [default: 'n']
|
|
84
84
|
mp.trap_complex = False [default: False]
|
|
85
|
+
mp.pretty_dps = 'str' [default: 'str']
|
|
86
|
+
mp.shortest_str = False [default: False]
|
|
85
87
|
|
|
86
88
|
The term **prec** denotes the binary precision (measured in bits) while **dps** (short for *decimal places*) is the decimal precision. Binary and decimal precision are related roughly according to the formula ``prec = 3.33*dps``. For example, it takes a precision of roughly 333 bits to hold an approximation of pi that is accurate to 100 decimal places (actually slightly more than 333 bits is used).
|
|
87
89
|
|
|
@@ -97,10 +99,10 @@ When the precision has been set, all ``mpf`` operations are carried out at that
|
|
|
97
99
|
|
|
98
100
|
>>> mp.dps = 50
|
|
99
101
|
>>> mpf(1) / 6
|
|
100
|
-
mpf('0.
|
|
102
|
+
mpf('0.1666666666666666666666666666666666666666666666666666')
|
|
101
103
|
>>> mp.dps = 25
|
|
102
104
|
>>> mpf(2) ** mpf('0.5')
|
|
103
|
-
mpf('1.
|
|
105
|
+
mpf('1.41421356237309504880168871')
|
|
104
106
|
|
|
105
107
|
The precision of complex arithmetic is also controlled by the ``mp`` object:
|
|
106
108
|
|
|
@@ -123,7 +125,7 @@ The (binary) exponent is stored exactly and is independent of the precision.
|
|
|
123
125
|
|
|
124
126
|
The ``rounding`` property control default rounding mode for the context:
|
|
125
127
|
|
|
126
|
-
>>> mp.rounding # round to nearest
|
|
128
|
+
>>> mp.rounding # round to nearest is the default
|
|
127
129
|
'n'
|
|
128
130
|
>>> sin(1)
|
|
129
131
|
mpf('0.8414709848078965')
|
|
@@ -233,11 +235,39 @@ Setting the ``mp.pretty`` option will use the ``str()``-style output for ``repr(
|
|
|
233
235
|
>>> mpf(0.6)
|
|
234
236
|
mpf('0.59999999999999998')
|
|
235
237
|
|
|
236
|
-
To use enough digits to be able recreate value exactly,
|
|
238
|
+
To use enough digits to be able recreate value exactly, enable
|
|
239
|
+
``mp.shortest_str`` option. With this, repr/str and the new-style string
|
|
240
|
+
formatting *without format specifier* will use *minimal* number of decimal
|
|
241
|
+
digits that will preserve value on string input, like repr for CPython's
|
|
242
|
+
builtin floats:
|
|
243
|
+
|
|
244
|
+
>>> mp.shortest_str = True
|
|
245
|
+
>>> mp.pretty = True
|
|
246
|
+
>>> mpf(10.9) == mpf("10.9")
|
|
247
|
+
True
|
|
248
|
+
>>> mpf(10.9)
|
|
249
|
+
10.9
|
|
250
|
+
>>> f"{_}"
|
|
251
|
+
'10.9'
|
|
252
|
+
>>> mp.pretty = False
|
|
253
|
+
>>> mpf(10.9)
|
|
254
|
+
mpf('10.9')
|
|
255
|
+
>>> mp.shortest_str = False
|
|
256
|
+
|
|
257
|
+
Alternatively, set ``mp.pretty_dps``
|
|
237
258
|
to ``"repr"`` (default value is ``"str"``). Same option is used to control
|
|
238
259
|
default number of digits in the new-style string formatting *without format
|
|
239
260
|
specifier*, i.e. ``format(exp(mpf(1)))``.
|
|
240
261
|
|
|
262
|
+
>>> mp.pretty = True
|
|
263
|
+
>>> mpf(0.1)
|
|
264
|
+
0.1
|
|
265
|
+
>>> mp.pretty_dps = "repr"
|
|
266
|
+
>>> mpf(0.1)
|
|
267
|
+
0.10000000000000001
|
|
268
|
+
>>> mp.pretty_dps = "str"
|
|
269
|
+
>>> mp.pretty = False
|
|
270
|
+
|
|
241
271
|
The number of digits with which numbers are printed by default is determined by
|
|
242
272
|
the working precision. To specify the number of digits to show without
|
|
243
273
|
changing the working precision, use :func:`format syntax support
|
|
@@ -55,7 +55,7 @@ using the existing interface):
|
|
|
55
55
|
>>> ft = lambda t: exp(-t) - exp(-1000*t)
|
|
56
56
|
>>> fpvec = [fp(p) for p in myTalbot.p]
|
|
57
57
|
>>> ft(t)-myTalbot.calc_time_domain_solution(fpvec,t,manual_prec=True)
|
|
58
|
-
mpf('1.
|
|
58
|
+
mpf('1.92830017952889006175687218e-21')
|
|
59
59
|
|
|
60
60
|
This manual approach is also useful to look at the Laplace parameter,
|
|
61
61
|
order, or working precision which were computed.
|
|
@@ -4,7 +4,7 @@ Root-finding and optimization
|
|
|
4
4
|
Root-finding (``findroot``)
|
|
5
5
|
...........................
|
|
6
6
|
|
|
7
|
-
.. autofunction:: mpmath.findroot
|
|
7
|
+
.. autofunction:: mpmath.findroot
|
|
8
8
|
|
|
9
9
|
Solvers
|
|
10
10
|
^^^^^^^
|
|
@@ -21,3 +21,5 @@ Solvers
|
|
|
21
21
|
.. autoclass:: mpmath.calculus.optimization.Ridder
|
|
22
22
|
.. autoclass:: mpmath.calculus.optimization.ANewton
|
|
23
23
|
.. autoclass:: mpmath.calculus.optimization.MDNewton
|
|
24
|
+
.. autoclass:: mpmath.calculus.optimization.ModAB
|
|
25
|
+
.. autoclass:: mpmath.calculus.optimization.Brent
|
|
@@ -38,6 +38,8 @@ Spherical Bessel functions
|
|
|
38
38
|
|
|
39
39
|
.. autofunction:: mpmath.spherical_jn
|
|
40
40
|
.. autofunction:: mpmath.spherical_yn
|
|
41
|
+
.. autofunction:: mpmath.spherical_in
|
|
42
|
+
.. autofunction:: mpmath.spherical_kn
|
|
41
43
|
|
|
42
44
|
|
|
43
45
|
Kelvin functions
|
|
@@ -92,9 +94,9 @@ Coulomb wave functions
|
|
|
92
94
|
Confluent U and Whittaker functions
|
|
93
95
|
...................................
|
|
94
96
|
|
|
95
|
-
.. autofunction:: mpmath.hyperu
|
|
96
|
-
.. autofunction:: mpmath.whitm
|
|
97
|
-
.. autofunction:: mpmath.whitw
|
|
97
|
+
.. autofunction:: mpmath.hyperu
|
|
98
|
+
.. autofunction:: mpmath.whitm
|
|
99
|
+
.. autofunction:: mpmath.whitw
|
|
98
100
|
|
|
99
101
|
|
|
100
102
|
Parabolic cylinder functions
|
|
@@ -22,11 +22,11 @@ function::
|
|
|
22
22
|
>>> pi
|
|
23
23
|
<pi: 3.14159~>
|
|
24
24
|
>>> 2*pi
|
|
25
|
-
mpf('6.
|
|
25
|
+
mpf('6.28318530717958647692528676655900576839434')
|
|
26
26
|
>>> +pi
|
|
27
|
-
mpf('3.
|
|
27
|
+
mpf('3.14159265358979323846264338327950288419717')
|
|
28
28
|
>>> pi()
|
|
29
|
-
mpf('3.
|
|
29
|
+
mpf('3.14159265358979323846264338327950288419717')
|
|
30
30
|
|
|
31
31
|
The predefined objects ``j`` (imaginary unit), ``inf`` (positive infinity) and
|
|
32
32
|
``nan`` (not-a-number) are shortcuts to ``mpc`` and ``mpf`` instances with
|
|
@@ -13,6 +13,8 @@ Elliptic arguments
|
|
|
13
13
|
.. autofunction:: mpmath.mfrom
|
|
14
14
|
.. autofunction:: mpmath.kfrom
|
|
15
15
|
.. autofunction:: mpmath.taufrom
|
|
16
|
+
.. autofunction:: mpmath.g2g3from
|
|
17
|
+
.. autofunction:: mpmath.omega1omega2from
|
|
16
18
|
|
|
17
19
|
|
|
18
20
|
Legendre elliptic integrals
|
|
@@ -46,8 +48,19 @@ Jacobi elliptic functions
|
|
|
46
48
|
.. autofunction:: mpmath.ellipfun
|
|
47
49
|
|
|
48
50
|
|
|
51
|
+
Weierstrass elliptic functions
|
|
52
|
+
..............................
|
|
53
|
+
|
|
54
|
+
.. autofunction:: mpmath.weierp
|
|
55
|
+
.. autofunction:: mpmath.weierpprime
|
|
56
|
+
.. autofunction:: mpmath.weiersigma
|
|
57
|
+
.. autofunction:: mpmath.weierzeta
|
|
58
|
+
.. autofunction:: mpmath.weierpinv
|
|
59
|
+
|
|
60
|
+
|
|
49
61
|
Modular functions
|
|
50
62
|
.................
|
|
51
63
|
|
|
52
64
|
.. autofunction:: mpmath.eta
|
|
53
65
|
.. autofunction:: mpmath.kleinj
|
|
66
|
+
.. autofunction:: mpmath.kleinjinv
|