Skip to content
Accuracy table

Accuracy table

Every region of every function: maximum and typical error in ULPs, beside SciPy's on the same points.

Summary (worst region of each function)

Errors in ULPs against mpmath; bold: at least as accurate as SciPy in every region.

functionpointsregionsours maxSciPy maxregions where ours <= SciPy
beta500661.001.9e+076/6
betainc9811118.99wrong11/11
betaincc9812117.32wrong11/11
betainccinv718010wrongwrong10/10
betaincinv7138106.8e+15wrong10/10
binom300030.501.9e+063/3
comb366140.505.4e+084/4
digamma78528312.5e+178/8
ellipe392150.513.305/5
ellipk389750.521.835/5
ellipkm1300640.531.734/4
erf311050.532.005/5
erfc426071.002.1e+137/7
erfcinv420160.54wrong6/6
erfcx501060.594816/6
erfinv392850.571.725/5
expit401051.009.5e+135/5
factorial218140.506204/4
factorial232610.504.5e+151/1
gamma8143100.503.3e+1510/10
gammainc7520102.088.9e+1510/10
gammaincc7520101.811.1e+1010/10
gammainccinv626081.13wrong8/8
gammaincinv579181.19wrong8/8
i0601372.51wrong7/7
i0e501362.044.776/6
i1601373.45wrong7/7
i1e501362.476.346/6
iv768792.87wrong9/9
ive86871012wrong10/10
j0601371.86wrong7/7
j1601371.77wrong7/7
jn8077105.19wrong10/10
jn_zeros69020.500.852/2
jv8687107.22wrong10/10
k0501362.91wrong6/6
k0e401351.52wrong5/5
k1501362.49wrong5/6
k1e401352.44wrong5/5
kv768793.82wrong9/9
kve8687104.55wrong10/10
log1pexp301040.500.964/4
log_expit401050.501.045/5
log_factorial330751.00wrong5/5
log_ndtr601071.003.6e+127/7
log_softmax4500560.699.0e+156/6
logbeta5004630wrong6/6
loggamma9907100.86wrong10/10
logit391350.501.745/5
logsumexp4500560.503.206/6
ndtr406060.601.8e+126/6
ndtri408060.622.626/6
perm363340.509.414/4
polygamma401450.50wrong5/5
softmax4500561.004376/6
xlog1py300740.501.264/4
xlogy200930.501.183/3
y0501361.73wrong6/6
y1501361.70wrong6/6
yn757795.43wrong9/9
yv8687103.86wrong10/10
zeta508180.531.9e+128/8
zeta_hurwitz600670.503067/7

Every region

functionregionpointsours maxours p99.9SciPy maxSciPy p99.9
betaspecial60.480.481.281.28
betaa,b in (0,1]10000.500.506.835.76
betaa,b in (1,100]10000.500.50550540
betaa,b in (100,1e5]10001.000.49158117150051
betaa small, b large10000.500.501.9e+071.5e+07
betaa<0 non-integer10000.500.50139798447
betaincspecial5121.141.14wrongwrong
betainca,b<1e-310000.930.838.9e+158.8e+15
betainca<1e-3<=b10000.490.473.061.92
betaincb<1e-3<=a10002.912.341.7e+137.1e+12
betainca,b in [1e-3,1)10001.931.65129.54
betainca,b in [1,100)10004.843.70447417
betainca,b in [100,1e4), x near mean10008.996.9334872603
betainca,b in [1e4,1e15], x near mean3006.356.358.8e+118.8e+11
betainca small, b large9995.215.21935935
betaincx tiny (I to subnormal)10003.250.965.7e+102.1e+10
betaincx near 1 (I^c to subnormal)10000.500.480.690.59
betainccspecial5120.670.67wrongwrong
betaincca,b<1e-310001.280.989.0e+159.0e+15
betaincca<1e-3<=b10004.803.275.0e+137.4e+12
betainccb<1e-3<=a10000.500.494.593.13
betaincca,b in [1e-3,1)10003.791.932214
betaincca,b in [1,100)10003.252.49235142
betaincca,b in [100,1e4), x near mean10006.165.9929972442
betaincca,b in [1e4,1e15], x near mean3006.756.751.9e+141.9e+14
betaincca small, b large10007.323.33725598
betainccx tiny (I to subnormal)10000.430.120.430.12
betainccx near 1 (I^c to subnormal)10003.041.961.4e+141.3e+13
betainccinvspecial5070.500.50wrongwrong
betainccinva,b<1e-3594wrongwrongwrongwrong
betainccinva<1e-3<=b or b<1e-3<=a6298.1e+158.1e+15wrongwrong
betainccinva,b in [1e-3,1)100020124.5e+154.5e+15
betainccinva,b in [1,100)10003.162.313529
betainccinva,b in [100,3000)10000.860.79179.55
betainccinva,b in [3000,1e15]1500.500.504.9e+064.9e+06
betainccinva small, b large3002.032.034.5e+154.5e+15
betainccinvp tiny10000.720.53wrongwrong
betainccinvp near 110001.511.48332179
betaincinvspecial5060.430.43wrongwrong
betaincinva,b<1e-36135.3e+095.3e+09wrongwrong
betaincinva<1e-3<=b or b<1e-3<=a5696.8e+156.8e+15wrongwrong
betaincinva,b in [1e-3,1)10007.786.964.5e+154.5e+15
betaincinva,b in [1,100)10002.812.743321
betaincinva,b in [100,3000)10000.940.77323194
betaincinva,b in [3000,1e15]1500.730.731.4e+071.4e+07
betaincinva small, b large3001.931.934.5e+154.5e+15
betaincinvp tiny10002.101.91wrongwrong
betaincinvp near 110000.730.7015314
binomk integer <=64, n real10000.500.5013751312
binomn,k > 0 real10000.500.504961232816
binomn>0, k real small10000.500.501.9e+061.3e+06
combn<=646610.500.504.004.00
combn<=110010000.500.501257212546
combhuge n, small k10000.500.505.4e+085.0e+08
combhuge n, large k10000.490.4833919644193
digammaspecial140.210.210.210.21
digammatiny20000.500.501.421.21
digamma(0,10)10000.510.511.971.84
digammanear positive root9170.530.531.281.28
digamma[10,1e300]10000.500.490.890.61
digamma(-40,0)10000.660.54996649
digammanear negative roots92131312.5e+172.5e+17
digamma(-1e15,-40]10000.500.5031922176
ellipespecial70.280.280.730.73
ellipem<-110000.510.513.302.88
ellipe[-1,0.5)10000.510.512.031.92
ellipe[0.5,1-1e-3)10000.500.501.000.95
ellipenear 19140.510.510.970.97
ellipkspecial70.430.430.430.43
ellipkm<-110000.510.511.591.47
ellipk[-1,0.5)10000.510.511.831.80
ellipk[0.5,1-1e-3)10000.500.501.311.21
ellipknear 18900.520.521.441.44
ellipkm1special60.320.320.320.32
ellipkm1p tiny10000.480.481.230.97
ellipkm1(1e-3,1]10000.530.511.351.21
ellipkm1p>110000.510.511.731.52
erfspecial100000
erftiny10000.510.511.351.35
erfx<=0.510000.530.52
erf0.5<x<610000.500.50
erfx>=610000
erfcspecial100000
erfc[-6,0.5)10000.500.501.701.55
erfc[0.5,5)10000.610.581515
erfc[5,26.5) tail10000.530.52436433
erfc[26.5,27.3] subnormal2001.001.002.1e+132.1e+13
erfcx<-6500000
erfctiny10000.460.440.460.44
erfcinvspecial80.390.39wrongwrong
erfcinvsubnormal1930.490.49wrongwrong
erfcinv[1e-300,1e-10)10000.500.502.492.43
erfcinv[1e-10,0.5)10000.530.502.662.56
erfcinv[0.5,1.5]10000.520.513.042.76
erfcinv(1.5,2)10000.540.514.394.15
erfcxspecial100000
erfcx[-26.6,-0.5)10000.500.50481464
erfcx[-0.5,0.5)10000.540.506.876.19
erfcx[0.5,8)10000.590.524.194.15
erfcx[8,1e5)10000.500.502.232.22
erfcx[1e5,1e300]10000.500.501.050.77
erfinvspecial90.080.080.080.08
erfinvtiny10000.510.511.501.50
erfinvy<=0.510000.540.54
erfinv0.5<y<0.99910000.570.57
erfinvnear ±19190.500.501.501.50
expitspecial100000
expit[-746,-30)10001.000.509.5e+133.8e+13
expit[-30,30)10000.500.501.471.45
expit[30,40)10000.500.501.000.99
expittiny10000.490.481.741.44
factorialspecial100.070.071.071.07
factorialintegers1710.500.502.672.67
factorial(0,1)10000.500.503.593.47
factorial(1,170.6)10000.500.50620609
factorial2n in [-5,320]3260.500.504.5e+154.5e+15
gammaspecial160.350.350.650.65
gammatiny20000.500.502.011.81
gamma(0,2)10000.500.503.253.21
gamma[2,33)10000.500.505.764.46
gamma[33,171.6]10000.500.503.333.28
gammaintegers1710.500.502.672.67
gammaoverflow220000
gamma(-33,0)10000.500.506.295.63
gammanear poles9340.500.504.904.90
gamma(-184,-33]10000.500.503.3e+152.8e+15
gammaincspecial1200.450.454.5e+154.5e+15
gammainca<1e-310000.490.48252229
gammainca in [1e-3,1)10000.700.703629
gammainca in [1,30)10002.081.63150119
gammaincinteger, half-integer a10000.900.89251164
gammainca in [30,1e4), x near a10000.880.7434763446
gammainca in [1e4,1e15], x near a3000.560.568.9e+158.9e+15
gammaincx tiny (P to subnormal)10000.700.661.6e+143.1e+12
gammaincx large (Q to subnormal)10000.480.481.100.85
gammaincx huge1000000
gammainccspecial1201.001.00461461
gammaincca<1e-310000.870.69315238
gammaincca in [1e-3,1)10001.141.075439
gammaincca in [1,30)10001.811.42141106
gammainccinteger, half-integer a10001.271.10153137
gammaincca in [30,1e4), x near a10001.051.0238753533
gammaincca in [1e4,1e15], x near a3000.540.544.5e+094.5e+09
gammainccx tiny (P to subnormal)10000.980.92129.59
gammainccx large (Q to subnormal)10001.311.141.1e+109.9e+09
gammainccx huge1000000
gammainccinvspecial1100.530.53wrongwrong
gammainccinva<1e-310000.540.51941848
gammainccinva in [1e-3,1)10000.760.7270624585
gammainccinva in [1,100)10001.091.091918
gammainccinva in [100,1e4)10000.530.510.860.67
gammainccinva in [1e4,1e15]1500.500.500.500.50
gammainccinvp tiny10000.500.501211
gammainccinvp near 110001.130.691004792
gammaincinvspecial1100.530.53wrongwrong
gammaincinva<1e-35310.430.4313121312
gammaincinva in [1e-3,1)10000.940.7382714953
gammaincinva in [1,100)10001.191.15139.99
gammaincinva in [100,1e4)10000.520.520.780.76
gammaincinva in [1e4,1e15]1500.490.490.490.49
gammaincinvp tiny10000.690.68495448
gammaincinvp near 110000.550.542012
i0special130.800.80wrongwrong
i0small x10000.500.482.502.39
i0moderate10002.512.472.892.62
i0large x10001.661.612.542.43
i0over/underflow edge10001.411.24wrongwrong
i0huge x10000000
i0negative x10001.771.76wrong2.86
i0especial130.960.961.051.05
i0esmall x10001.471.303.983.55
i0emoderate10001.981.912.342.13
i0elarge x10000.500.502.262.10
i0ehuge x10000.500.501.591.46
i0enegative x10002.041.734.774.63
i1special130.120.12wrongwrong
i1small x10000.480.454.664.00
i1moderate10003.453.257.657.16
i1large x10001.771.752.262.17
i1over/underflow edge10001.461.05wrongwrong
i1huge x10000000
i1negative x10003.082.246.466.06
i1especial130.820.822.202.20
i1esmall x10000.960.863.643.23
i1emoderate10002.362.126.344.50
i1elarge x10000.500.502.021.76
i1ehuge x10000.500.501.711.59
i1enegative x10002.471.935.535.12
ivspecial1872.092.09wrongwrong
ivsmall x10000.870.829.0e+159.0e+15
ivmoderate10002.121.92129.07
ivlarge x10002.872.191410
ivover/underflow edge10001.581.2899978820
ivlarge order10002.011.80wrong2655
ivv ~ x5002.022.0214831483
ivnegative v10002.762.691712
ivinteger v10002.182.181210
ivespecial1874.574.57wrongwrong
ivesmall x10000.920.791.0e+141.5e+13
ivemoderate10002.071.94584435
ivelarge x10001.711.52140139
iveover/underflow edge10000.510.504.394.35
ivehuge x10000.500.50wrongwrong
ivelarge order10001.371.138.5e+156.1e+15
ivev ~ x5001.011.0123502350
ivenegative v1000125.7281527476
iveinteger v10001.571.51310297
j0special130.490.49wrongwrong
j0small x10000.500.482.501.58
j0moderate10001.071.06304206
j0large x10001.581.4954955
j0huge x10001.861.73340151
j0near zeros10000.500.503.1e+102.6e+10
j0negative x10001.351.18460302
j1special130.830.83wrongwrong
j1small x10000.590.572.002.00
j1moderate10001.221.151114872
j1large x10001.571.47486140
j1huge x10001.771.676660
j1near zeros10000.500.503.7e+103.1e+10
j1negative x10001.521.3714788
jnspecial771.841.84wrongwrong
jnsmall x10000.800.507.1e+155.9e+15
jnmoderate10001.411.091286571
jnlarge x10001.461.421334212318
jnhuge x10001.631.634.1e+182.4e+18
jnnear zeros10005.193.416.5e+114.5e+11
jnnegative x5001.281.2817301730
jnlarge order10001.281.136.3e+158.8e+11
jnv ~ x5000.500.5044784478
jnnegative n10001.091.0856133773
jn_zerosn <= 10, k <= 505500.500.500.750.75
jn_zerosn >= 20, k <= 201400.500.500.850.85
jvspecial1871.841.84wrongwrong
jvsmall x10000.750.676.3e+155.6e+15
jvmoderate10001.451.28407756420
jvlarge x10001.731.621964416312
jvhuge x10001.681.655.3e+182.1e+18
jvnear zeros10001.631.577.2e+113.9e+11
jvlarge order10001.351.286.8e+136.5e+09
jvv ~ x5000.500.5033723372
jvnegative v10007.223.7715721254
jvinteger v10001.211.211063823
k0special130.350.35wrongwrong
k0small x10001.141.073.702.64
k0moderate10002.912.345.784.32
k0large x10001.541.492.692.60
k0over/underflow edge10002.001.053.001.75
k0huge x10000000
k0especial130.610.61wrongwrong
k0esmall x10001.471.463.233.23
k0emoderate10001.521.455.864.47
k0elarge x10000.500.502.142.11
k0ehuge x10000.500.501.931.71
k1special131.291.29wrongwrong
k1small x10001.050.961.051.04
k1moderate10002.492.392.962.91
k1large x10001.471.453.042.45
k1over/underflow edge10001.501.501.941.62
k1huge x10000000
k1especial131.031.03wrongwrong
k1esmall x10001.491.401.491.40
k1emoderate10002.442.092.952.86
k1elarge x10000.500.502.282.27
k1ehuge x10000.500.501.921.91
kvspecial1870.970.97wrongwrong
kvsmall x10001.781.58wrongwrong
kvmoderate10002.081.974341
kvlarge x10001.891.877.4e+156.4e+15
kvover/underflow edge10001.251.129.0e+158.8e+15
kvlarge order10001.651.64wrongwrong
kvv ~ x5001.731.7326792679
kvnegative v10003.823.366453
kvinteger v10002.872.837474
kvespecial1870.780.78wrongwrong
kvesmall x10001.481.25wrong292
kvemoderate10001.761.678679
kvelarge x10001.481.3611958
kveover/underflow edge10000.510.513.593.38
kvehuge x10000.500.50wrongwrong
kvelarge order10001.131.01wrongwrong
kvev ~ x5000.990.9924182418
kvenegative v10004.553.401147132
kveinteger v10002.882.607370
log1pexpspecial100.210.210.210.21
log1pexp[-746,-30)10000.500.500.700.66
log1pexp[-30,30)10000.500.500.960.95
log1pexp[30,1e300]10000.000.000.000.00
log_expitspecial100.210.210.210.21
log_expit[-746,-30)10000.410.190.410.19
log_expit[-30,30)10000.500.500.930.92
log_expit[30,40)10000.500.500.930.92
log_expittiny10000.470.471.040.81
log_factorialspecial71.001.00wrongwrong
log_factorial(0,3)10000.520.511734251
log_factorial[3,1e5)10000.500.502.992.44
log_factorial[1e5,1e300]10000.500.501.291.09
log_factorialintegers3000.500.501.771.77
log_ndtrspecial100.210.210.210.21
log_ndtrx<-1e510000.500.502.972.81
log_ndtr[-1e5,-40)10000.500.502.792.65
log_ndtr[-40,-1)10000.520.502.782.75
log_ndtr[-1,1)10000.610.594.163.33
log_ndtr[1,10)10000.590.5411398
log_ndtr[10,38)10001.000.503.6e+123.2e+12
log_softmax4special50.210.210.210.21
log_softmax4moderate10000.500.50962930342308
log_softmax4one dominant10000.690.629.0e+159.0e+15
log_softmax4huge10000.560.508.8e+158.8e+15
log_softmax4wide spread10000.500.509.0e+159.0e+15
log_softmax4near cancellation10000.500.509.0e+159.0e+15
logbetaspecial40.100.101.051.05
logbetaa,b in (0,1]10000.490.490.490.49
logbetaa,b in (1,100]10000.500.502826
logbetaa,b in (100,1e300]10000.500.50wrongwrong
logbetaa small, b large10000.500.501.1e+06954807
logbetanear log B = 0100030204516128658
loggammaspecial150.390.39wrongwrong
loggammatiny20000.500.480.870.82
loggammanear 1 and 29470.640.641.3e+161.3e+16
loggamma(0,3)10000.860.74496408
loggamma[3,13)10000.500.501.121.09
loggamma[13,1e5)10000.500.501.321.30
loggamma[1e5,1e305]10000.500.500.840.83
loggamma(-34,0)10000.620.5012716
loggammanear poles9450.500.501414
loggamma(-1e5,-34]10000.500.501.711.62
logitspecial70.390.390.390.39
logitnear 010000.490.480.490.48
logitnear 1/210000.500.500.960.95
logit(0,1)10000.500.501.741.36
logitnear 19060.500.500.540.54
logsumexp4special50.390.390.390.39
logsumexp4moderate10000.500.503.201.80
logsumexp4one dominant10000.500.500.500.50
logsumexp4huge10000.500.500.500.50
logsumexp4wide spread10000.500.490.500.49
logsumexp4near cancellation10000.500.501.721.65
ndtrspecial100000
ndtr[-38.5,-10)10000.500.501.8e+121.8e+12
ndtr[-10,-1)10000.600.53110109
ndtr[-1,1)10000.520.522.642.58
ndtr[1,8.3)10000.500.501.040.94
ndtrx>=8.3500000
ndtrispecial70.330.330.330.33
ndtrisubnormal1930.500.501.381.38
ndtri[1e-300,1e-10)10000.500.502.281.38
ndtri[1e-10,0.5)10000.530.512.482.42
ndtri[0.5,1)10000.620.552.622.36
ndtrinear 18800.500.502.172.17
permn<=646610.500.507.677.67
permn<=2009720.500.509.419.41
permhuge n, small k10000.500.506.946.61
permhuge n, k>6410000.460.391.771.54
polygammaspecial140.350.35wrongwrong
polygammax tiny10000.500.506.542.40
polygammax in (0,10)10000.500.506.045.94
polygammax in [10,1e10)10000.500.501312
polygammax<010000.500.503323
softmax4special50000
softmax4moderate10000.500.501716
softmax4one dominant10000.500.502.311.96
softmax4huge10000.500.501.901.89
softmax4wide spread10001.000.50437436
softmax4near cancellation10000.500.502.822.70
xlog1pyspecial70000
xlog1pymoderate10000.500.501.011.01
xlog1pyy small10000.500.500.780.74
xlog1pyy near -110000.500.501.261.22
xlogyspecial90000
xlogymoderate10000.500.500.510.50
xlogyy near 110000.500.501.181.14
y0special130.430.43wrongwrong
y0small x10000.590.561.311.14
y0moderate10001.041.00690550
y0large x10001.731.5733992
y0huge x10001.491.4624273
y0near zeros10000.500.501.8e+121.3e+12
y1special130.750.75wrongwrong
y1small x10000.500.501.641.57
y1moderate10000.950.8560791702
y1large x10001.641.55129518122550
y1huge x10001.701.601.0e+192.0e+18
y1near zeros10000.500.507.3e+115.6e+11
ynspecial771.401.40wrongwrong
ynsmall x10001.621.513.813.01
ynmoderate10002.572.222743500
ynlarge x10001.641.5133206583737
ynhuge x10001.871.515.1e+182.1e+18
ynnear zeros10005.435.226.5e+116.2e+11
ynlarge order10001.351.043884711771
ynv ~ x5000.500.50172835172835
ynnegative n10003.462.2912851026
yvspecial1871.401.40wrongwrong
yvsmall x10002.442.39wrong408
yvmoderate10001.841.75157881568
yvlarge x10001.641.5876552725
yvhuge x10001.671.531.2e+196.3e+18
yvnear zeros10001.671.662.8e+121.3e+12
yvlarge order10001.171.06wrong250879
yvv ~ x5000.500.501352513525
yvnegative v10003.863.2817101579
yvinteger v10002.502.3621778
zetaspecial130.330.333.673.67
zetanear pole9680.500.504.364.36
zeta[-1,2]10000.530.505349
zeta(2,64)10000.500.501.150.69
zeta[64,1e300]500000
zeta(-260,-1)10000.500.501166776
zetanear trivial zeros10000.520.501.9e+121.4e+12
zetas<-260500000
zeta_hurwitzspecial100.350.350.860.86
zeta_hurwitzs in (1,50), q in (0,10)10000.500.503.222.90
zeta_hurwitzs near 110000.500.502.572.45
zeta_hurwitzq tiny10000.500.492.652.26
zeta_hurwitzq large9980.490.499.009.00
zeta_hurwitzs large9980.500.50306306
zeta_hurwitzq<0, integer s10000.500.50125.23

Created on by tannevaled

Modified on by tannevaled