|
__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() |
|
|