| | __version__ = '1.3.0' |
| |
|
| | from .usertools import monitor, timing |
| |
|
| | from .ctx_fp import FPContext |
| | from .ctx_mp import MPContext |
| | from .ctx_iv import MPIntervalContext |
| |
|
| | fp = FPContext() |
| | mp = MPContext() |
| | iv = MPIntervalContext() |
| |
|
| | fp._mp = mp |
| | mp._mp = mp |
| | iv._mp = mp |
| | mp._fp = fp |
| | fp._fp = fp |
| | mp._iv = iv |
| | fp._iv = iv |
| | iv._iv = iv |
| |
|
| | |
| | from . import ctx_mp as _ctx_mp |
| | _ctx_mp._mpf_module.mpf = mp.mpf |
| | _ctx_mp._mpf_module.mpc = mp.mpc |
| |
|
| | make_mpf = mp.make_mpf |
| | make_mpc = mp.make_mpc |
| |
|
| | extraprec = mp.extraprec |
| | extradps = mp.extradps |
| | workprec = mp.workprec |
| | workdps = mp.workdps |
| | autoprec = mp.autoprec |
| | maxcalls = mp.maxcalls |
| | memoize = mp.memoize |
| |
|
| | mag = mp.mag |
| |
|
| | bernfrac = mp.bernfrac |
| |
|
| | qfrom = mp.qfrom |
| | mfrom = mp.mfrom |
| | kfrom = mp.kfrom |
| | taufrom = mp.taufrom |
| | qbarfrom = mp.qbarfrom |
| | ellipfun = mp.ellipfun |
| | jtheta = mp.jtheta |
| | kleinj = mp.kleinj |
| | eta = mp.eta |
| |
|
| | qp = mp.qp |
| | qhyper = mp.qhyper |
| | qgamma = mp.qgamma |
| | qfac = mp.qfac |
| |
|
| | nint_distance = mp.nint_distance |
| |
|
| | plot = mp.plot |
| | cplot = mp.cplot |
| | splot = mp.splot |
| |
|
| | odefun = mp.odefun |
| |
|
| | jacobian = mp.jacobian |
| | findroot = mp.findroot |
| | multiplicity = mp.multiplicity |
| |
|
| | isinf = mp.isinf |
| | isnan = mp.isnan |
| | isnormal = mp.isnormal |
| | isint = mp.isint |
| | isfinite = mp.isfinite |
| | almosteq = mp.almosteq |
| | nan = mp.nan |
| | rand = mp.rand |
| |
|
| | absmin = mp.absmin |
| | absmax = mp.absmax |
| |
|
| | fraction = mp.fraction |
| |
|
| | linspace = mp.linspace |
| | arange = mp.arange |
| |
|
| | mpmathify = convert = mp.convert |
| | mpc = mp.mpc |
| |
|
| | mpi = iv._mpi |
| |
|
| | nstr = mp.nstr |
| | nprint = mp.nprint |
| | chop = mp.chop |
| |
|
| | fneg = mp.fneg |
| | fadd = mp.fadd |
| | fsub = mp.fsub |
| | fmul = mp.fmul |
| | fdiv = mp.fdiv |
| | fprod = mp.fprod |
| |
|
| | quad = mp.quad |
| | quadgl = mp.quadgl |
| | quadts = mp.quadts |
| | quadosc = mp.quadosc |
| | quadsubdiv = mp.quadsubdiv |
| |
|
| | invertlaplace = mp.invertlaplace |
| | invlaptalbot = mp.invlaptalbot |
| | invlapstehfest = mp.invlapstehfest |
| | invlapdehoog = mp.invlapdehoog |
| |
|
| | pslq = mp.pslq |
| | identify = mp.identify |
| | findpoly = mp.findpoly |
| |
|
| | richardson = mp.richardson |
| | shanks = mp.shanks |
| | levin = mp.levin |
| | cohen_alt = mp.cohen_alt |
| | nsum = mp.nsum |
| | nprod = mp.nprod |
| | difference = mp.difference |
| | diff = mp.diff |
| | diffs = mp.diffs |
| | diffs_prod = mp.diffs_prod |
| | diffs_exp = mp.diffs_exp |
| | diffun = mp.diffun |
| | differint = mp.differint |
| | taylor = mp.taylor |
| | pade = mp.pade |
| | polyval = mp.polyval |
| | polyroots = mp.polyroots |
| | fourier = mp.fourier |
| | fourierval = mp.fourierval |
| | sumem = mp.sumem |
| | sumap = mp.sumap |
| | chebyfit = mp.chebyfit |
| | limit = mp.limit |
| |
|
| | matrix = mp.matrix |
| | eye = mp.eye |
| | diag = mp.diag |
| | zeros = mp.zeros |
| | ones = mp.ones |
| | hilbert = mp.hilbert |
| | randmatrix = mp.randmatrix |
| | swap_row = mp.swap_row |
| | extend = mp.extend |
| | norm = mp.norm |
| | mnorm = mp.mnorm |
| |
|
| | lu_solve = mp.lu_solve |
| | lu = mp.lu |
| | qr = mp.qr |
| | unitvector = mp.unitvector |
| | inverse = mp.inverse |
| | residual = mp.residual |
| | qr_solve = mp.qr_solve |
| | cholesky = mp.cholesky |
| | cholesky_solve = mp.cholesky_solve |
| | det = mp.det |
| | cond = mp.cond |
| | hessenberg = mp.hessenberg |
| | schur = mp.schur |
| | eig = mp.eig |
| | eig_sort = mp.eig_sort |
| | eigsy = mp.eigsy |
| | eighe = mp.eighe |
| | eigh = mp.eigh |
| | svd_r = mp.svd_r |
| | svd_c = mp.svd_c |
| | svd = mp.svd |
| | gauss_quadrature = mp.gauss_quadrature |
| |
|
| | expm = mp.expm |
| | sqrtm = mp.sqrtm |
| | powm = mp.powm |
| | logm = mp.logm |
| | sinm = mp.sinm |
| | cosm = mp.cosm |
| |
|
| | mpf = mp.mpf |
| | j = mp.j |
| | exp = mp.exp |
| | expj = mp.expj |
| | expjpi = mp.expjpi |
| | ln = mp.ln |
| | im = mp.im |
| | re = mp.re |
| | inf = mp.inf |
| | ninf = mp.ninf |
| | sign = mp.sign |
| |
|
| | eps = mp.eps |
| | pi = mp.pi |
| | ln2 = mp.ln2 |
| | ln10 = mp.ln10 |
| | phi = mp.phi |
| | e = mp.e |
| | euler = mp.euler |
| | catalan = mp.catalan |
| | khinchin = mp.khinchin |
| | glaisher = mp.glaisher |
| | apery = mp.apery |
| | degree = mp.degree |
| | twinprime = mp.twinprime |
| | mertens = mp.mertens |
| |
|
| | ldexp = mp.ldexp |
| | frexp = mp.frexp |
| |
|
| | fsum = mp.fsum |
| | fdot = mp.fdot |
| |
|
| | sqrt = mp.sqrt |
| | cbrt = mp.cbrt |
| | exp = mp.exp |
| | ln = mp.ln |
| | log = mp.log |
| | log10 = mp.log10 |
| | power = mp.power |
| | cos = mp.cos |
| | sin = mp.sin |
| | tan = mp.tan |
| | cosh = mp.cosh |
| | sinh = mp.sinh |
| | tanh = mp.tanh |
| | acos = mp.acos |
| | asin = mp.asin |
| | atan = mp.atan |
| | asinh = mp.asinh |
| | acosh = mp.acosh |
| | atanh = mp.atanh |
| | sec = mp.sec |
| | csc = mp.csc |
| | cot = mp.cot |
| | sech = mp.sech |
| | csch = mp.csch |
| | coth = mp.coth |
| | asec = mp.asec |
| | acsc = mp.acsc |
| | acot = mp.acot |
| | asech = mp.asech |
| | acsch = mp.acsch |
| | acoth = mp.acoth |
| | cospi = mp.cospi |
| | sinpi = mp.sinpi |
| | sinc = mp.sinc |
| | sincpi = mp.sincpi |
| | cos_sin = mp.cos_sin |
| | cospi_sinpi = mp.cospi_sinpi |
| | fabs = mp.fabs |
| | re = mp.re |
| | im = mp.im |
| | conj = mp.conj |
| | floor = mp.floor |
| | ceil = mp.ceil |
| | nint = mp.nint |
| | frac = mp.frac |
| | root = mp.root |
| | nthroot = mp.nthroot |
| | hypot = mp.hypot |
| | fmod = mp.fmod |
| | ldexp = mp.ldexp |
| | frexp = mp.frexp |
| | sign = mp.sign |
| | arg = mp.arg |
| | phase = mp.phase |
| | polar = mp.polar |
| | rect = mp.rect |
| | degrees = mp.degrees |
| | radians = mp.radians |
| | atan2 = mp.atan2 |
| | fib = mp.fib |
| | fibonacci = mp.fibonacci |
| | lambertw = mp.lambertw |
| | zeta = mp.zeta |
| | altzeta = mp.altzeta |
| | gamma = mp.gamma |
| | rgamma = mp.rgamma |
| | factorial = mp.factorial |
| | fac = mp.fac |
| | fac2 = mp.fac2 |
| | beta = mp.beta |
| | betainc = mp.betainc |
| | psi = mp.psi |
| | |
| | |
| | |
| | |
| | polygamma = mp.polygamma |
| | digamma = mp.digamma |
| | |
| | |
| | |
| | harmonic = mp.harmonic |
| | bernoulli = mp.bernoulli |
| | bernfrac = mp.bernfrac |
| | stieltjes = mp.stieltjes |
| | hurwitz = mp.hurwitz |
| | dirichlet = mp.dirichlet |
| | bernpoly = mp.bernpoly |
| | eulerpoly = mp.eulerpoly |
| | eulernum = mp.eulernum |
| | polylog = mp.polylog |
| | clsin = mp.clsin |
| | clcos = mp.clcos |
| | gammainc = mp.gammainc |
| | gammaprod = mp.gammaprod |
| | binomial = mp.binomial |
| | rf = mp.rf |
| | ff = mp.ff |
| | hyper = mp.hyper |
| | hyp0f1 = mp.hyp0f1 |
| | hyp1f1 = mp.hyp1f1 |
| | hyp1f2 = mp.hyp1f2 |
| | hyp2f1 = mp.hyp2f1 |
| | hyp2f2 = mp.hyp2f2 |
| | hyp2f0 = mp.hyp2f0 |
| | hyp2f3 = mp.hyp2f3 |
| | hyp3f2 = mp.hyp3f2 |
| | hyperu = mp.hyperu |
| | hypercomb = mp.hypercomb |
| | meijerg = mp.meijerg |
| | appellf1 = mp.appellf1 |
| | appellf2 = mp.appellf2 |
| | appellf3 = mp.appellf3 |
| | appellf4 = mp.appellf4 |
| | hyper2d = mp.hyper2d |
| | bihyper = mp.bihyper |
| | erf = mp.erf |
| | erfc = mp.erfc |
| | erfi = mp.erfi |
| | erfinv = mp.erfinv |
| | npdf = mp.npdf |
| | ncdf = mp.ncdf |
| | expint = mp.expint |
| | e1 = mp.e1 |
| | ei = mp.ei |
| | li = mp.li |
| | ci = mp.ci |
| | si = mp.si |
| | chi = mp.chi |
| | shi = mp.shi |
| | fresnels = mp.fresnels |
| | fresnelc = mp.fresnelc |
| | airyai = mp.airyai |
| | airybi = mp.airybi |
| | airyaizero = mp.airyaizero |
| | airybizero = mp.airybizero |
| | scorergi = mp.scorergi |
| | scorerhi = mp.scorerhi |
| | ellipk = mp.ellipk |
| | ellipe = mp.ellipe |
| | ellipf = mp.ellipf |
| | ellippi = mp.ellippi |
| | elliprc = mp.elliprc |
| | elliprj = mp.elliprj |
| | elliprf = mp.elliprf |
| | elliprd = mp.elliprd |
| | elliprg = mp.elliprg |
| | agm = mp.agm |
| | jacobi = mp.jacobi |
| | chebyt = mp.chebyt |
| | chebyu = mp.chebyu |
| | legendre = mp.legendre |
| | legenp = mp.legenp |
| | legenq = mp.legenq |
| | hermite = mp.hermite |
| | pcfd = mp.pcfd |
| | pcfu = mp.pcfu |
| | pcfv = mp.pcfv |
| | pcfw = mp.pcfw |
| | gegenbauer = mp.gegenbauer |
| | laguerre = mp.laguerre |
| | spherharm = mp.spherharm |
| | besselj = mp.besselj |
| | j0 = mp.j0 |
| | j1 = mp.j1 |
| | besseli = mp.besseli |
| | bessely = mp.bessely |
| | besselk = mp.besselk |
| | besseljzero = mp.besseljzero |
| | besselyzero = mp.besselyzero |
| | hankel1 = mp.hankel1 |
| | hankel2 = mp.hankel2 |
| | struveh = mp.struveh |
| | struvel = mp.struvel |
| | angerj = mp.angerj |
| | webere = mp.webere |
| | lommels1 = mp.lommels1 |
| | lommels2 = mp.lommels2 |
| | whitm = mp.whitm |
| | whitw = mp.whitw |
| | ber = mp.ber |
| | bei = mp.bei |
| | ker = mp.ker |
| | kei = mp.kei |
| | coulombc = mp.coulombc |
| | coulombf = mp.coulombf |
| | coulombg = mp.coulombg |
| | barnesg = mp.barnesg |
| | superfac = mp.superfac |
| | hyperfac = mp.hyperfac |
| | loggamma = mp.loggamma |
| | siegeltheta = mp.siegeltheta |
| | siegelz = mp.siegelz |
| | grampoint = mp.grampoint |
| | zetazero = mp.zetazero |
| | riemannr = mp.riemannr |
| | primepi = mp.primepi |
| | primepi2 = mp.primepi2 |
| | primezeta = mp.primezeta |
| | bell = mp.bell |
| | polyexp = mp.polyexp |
| | expm1 = mp.expm1 |
| | log1p = mp.log1p |
| | powm1 = mp.powm1 |
| | unitroots = mp.unitroots |
| | cyclotomic = mp.cyclotomic |
| | mangoldt = mp.mangoldt |
| | secondzeta = mp.secondzeta |
| | nzeros = mp.nzeros |
| | backlunds = mp.backlunds |
| | lerchphi = mp.lerchphi |
| | stirling1 = mp.stirling1 |
| | stirling2 = mp.stirling2 |
| | squarew = mp.squarew |
| | trianglew = mp.trianglew |
| | sawtoothw = mp.sawtoothw |
| | unit_triangle = mp.unit_triangle |
| | sigmoid = mp.sigmoid |
| |
|
| | |
| | def runtests(): |
| | """ |
| | Run all mpmath tests and print output. |
| | """ |
| | import os.path |
| | from inspect import getsourcefile |
| | from .tests import runtests as tests |
| | testdir = os.path.dirname(os.path.abspath(getsourcefile(tests))) |
| | importdir = os.path.abspath(testdir + '/../..') |
| | tests.testit(importdir, testdir) |
| |
|
| | def doctests(filter=[]): |
| | import sys |
| | from timeit import default_timer as clock |
| | for i, arg in enumerate(sys.argv): |
| | if '__init__.py' in arg: |
| | filter = [sn for sn in sys.argv[i+1:] if not sn.startswith("-")] |
| | break |
| | import doctest |
| | globs = globals().copy() |
| | for obj in globs: |
| | if filter: |
| | if not sum([pat in obj for pat in filter]): |
| | continue |
| | sys.stdout.write(str(obj) + " ") |
| | sys.stdout.flush() |
| | t1 = clock() |
| | doctest.run_docstring_examples(globs[obj], {}, verbose=("-v" in sys.argv)) |
| | t2 = clock() |
| | print(round(t2-t1, 3)) |
| |
|
| | if __name__ == '__main__': |
| | doctests() |
| |
|