Cython API for special functions#
Scalar, typed versions of many of the functions in scipy.special
can be accessed directly from Cython; the complete list is given
below. Functions are overloaded using Cython fused types so their
names match their Python counterpart. The module follows the following
conventions:
If a function’s Python counterpart returns multiple values, then the function returns its outputs via pointers in the final arguments.
If a function’s Python counterpart returns a single value, then the function’s output is returned directly.
The module is usable from Cython via:
cimport scipy.special.cython_special
Error handling#
Functions can indicate an error by returning nan; however they
cannot emit warnings like their counterparts in scipy.special.
Available functions#
voigt_profile:double voigt_profile(double, double, double)
agm:double agm(double, double)
airy:void airy(double, double *, double *, double *, double *) void airy(double complex, double complex *, double complex *, double complex *, double complex *)
airye:void airye(double complex, double complex *, double complex *, double complex *, double complex *) void airye(double, double *, double *, double *, double *)
bdtr:double bdtr(double, double, double) double bdtr(double, long, double)
bdtrc:double bdtrc(double, double, double) double bdtrc(double, long, double)
bdtri:double bdtri(double, double, double) double bdtri(double, long, double)
bdtrik:double bdtrik(double, double, double)
bdtrin:double bdtrin(double, double, double)
bei:double bei(double)
beip:double beip(double)
ber:double ber(double)
berp:double berp(double)
besselpoly:double besselpoly(double, double, double)
beta:double beta(double, double)
betainc:float betainc(float, float, float) double betainc(double, double, double)
betaincc:float betaincc(float, float, float) double betaincc(double, double, double)
betaincinv:float betaincinv(float, float, float) double betaincinv(double, double, double)
betainccinv:float betainccinv(float, float, float) double betainccinv(double, double, double)
betaln:double betaln(double, double)
binom:double binom(double, double)
boxcox:double boxcox(double, double)
boxcox1p:double boxcox1p(double, double)
btdtria:double btdtria(double, double, double) float btdtria(float, float, float)
btdtrib:double btdtrib(double, double, double) float btdtrib(float, float, float)
cbrt:double cbrt(double)
chdtr:double chdtr(double, double)
chdtrc:double chdtrc(double, double)
chdtri:double chdtri(double, double)
chdtriv:double chdtriv(double, double)
chndtr:double chndtr(double, double, double)
chndtridf:double chndtridf(double, double, double)
chndtrinc:double chndtrinc(double, double, double) float chndtrinc(float, float, float)
chndtrix:double chndtrix(double, double, double) float chndtrix(float, float, float)
cosdg:double cosdg(double)
cosm1:double cosm1(double)
cotdg:double cotdg(double)
dawsn:double dawsn(double) double complex dawsn(double complex)
ellipe:double ellipe(double)
ellipeinc:double ellipeinc(double, double)
ellipj:void ellipj(double, double, double *, double *, double *, double *)
ellipkinc:double ellipkinc(double, double)
ellipkm1:double ellipkm1(double)
ellipk:double ellipk(double)
elliprc:double elliprc(double, double) double complex elliprc(double complex, double complex)
elliprd:double elliprd(double, double, double) double complex elliprd(double complex, double complex, double complex)
elliprf:double elliprf(double, double, double) double complex elliprf(double complex, double complex, double complex)
elliprg:double elliprg(double, double, double) double complex elliprg(double complex, double complex, double complex)
elliprj:double elliprj(double, double, double, double) double complex elliprj(double complex, double complex, double complex, double complex)
entr:double entr(double)
erf:double complex erf(double complex) double erf(double)
erfc:double complex erfc(double complex) double erfc(double)
erfcx:double erfcx(double) double complex erfcx(double complex)
erfi:double erfi(double) double complex erfi(double complex)
erfinv:float erfinv(float) double erfinv(double)
erfcinv:double erfcinv(double)
eval_chebyc:double complex eval_chebyc(double, double complex) double eval_chebyc(double, double) double eval_chebyc(Py_ssize_t, double)
eval_chebys:double complex eval_chebys(double, double complex) double eval_chebys(double, double) double eval_chebys(Py_ssize_t, double)
eval_chebyt:double complex eval_chebyt(double, double complex) double eval_chebyt(double, double) double eval_chebyt(Py_ssize_t, double)
eval_chebyu:double complex eval_chebyu(double, double complex) double eval_chebyu(double, double) double eval_chebyu(Py_ssize_t, double)
eval_gegenbauer:double complex eval_gegenbauer(double, double, double complex) double eval_gegenbauer(double, double, double) double eval_gegenbauer(Py_ssize_t, double, double)
eval_genlaguerre:double complex eval_genlaguerre(double, double, double complex) double eval_genlaguerre(double, double, double) double eval_genlaguerre(Py_ssize_t, double, double)
eval_hermite:double eval_hermite(Py_ssize_t, double)
eval_hermitenorm:double eval_hermitenorm(Py_ssize_t, double)
eval_jacobi:double complex eval_jacobi(double, double, double, double complex) double eval_jacobi(double, double, double, double) double eval_jacobi(Py_ssize_t, double, double, double)
eval_laguerre:double complex eval_laguerre(double, double complex) double eval_laguerre(double, double) double eval_laguerre(Py_ssize_t, double)
eval_legendre:double complex eval_legendre(double, double complex) double eval_legendre(double, double) double eval_legendre(Py_ssize_t, double)
eval_sh_chebyt:double complex eval_sh_chebyt(double, double complex) double eval_sh_chebyt(double, double) double eval_sh_chebyt(Py_ssize_t, double)
eval_sh_chebyu:double complex eval_sh_chebyu(double, double complex) double eval_sh_chebyu(double, double) double eval_sh_chebyu(Py_ssize_t, double)
eval_sh_jacobi:double complex eval_sh_jacobi(double, double, double, double complex) double eval_sh_jacobi(double, double, double, double) double eval_sh_jacobi(Py_ssize_t, double, double, double)
eval_sh_legendre:double complex eval_sh_legendre(double, double complex) double eval_sh_legendre(double, double) double eval_sh_legendre(Py_size_t, double)
exp1:double complex exp1(double complex) double exp1(double)
exp10:double exp10(double)
exp2:double exp2(double)
expi:double complex expi(double complex) double expi(double)
expit:double expit(double) float expit(float) long double expit(long double)
expm1:double complex expm1(double complex) double expm1(double)
expn:double expn(double, double) double expn(long, double)
exprel:double exprel(double)
fdtr:double fdtr(double, double, double)
fdtrc:double fdtrc(double, double, double)
fdtri:double fdtri(double, double, double)
fdtridfd:double fdtridfd(double, double, double)
fresnel:void fresnel(double, double *, double *) void fresnel(double complex, double complex *, double complex *)
gamma:double complex gamma(double complex) double gamma(double)
gammainc:double gammainc(double, double)
gammaincc:double gammaincc(double, double)
gammainccinv:double gammainccinv(double, double)
gammaincinv:double gammaincinv(double, double)
gammaln:double gammaln(double)
gammasgn:double gammasgn(double)
gdtr:double gdtr(double, double, double)
gdtrc:double gdtrc(double, double, double)
gdtria:double gdtria(double, double, double)
gdtrib:double gdtrib(double, double, double)
gdtrix:double gdtrix(double, double, double)
hankel1:double complex hankel1(double, double complex)
hankel1e:double complex hankel1e(double, double complex)
hankel2:double complex hankel2(double, double complex)
hankel2e:double complex hankel2e(double, double complex)
huber:double huber(double, double)
hyp0f1:double complex hyp0f1(double, double complex) double hyp0f1(double, double)
hyp1f1:double hyp1f1(double, double, double) double complex hyp1f1(double, double, double complex)
hyp2f1:double hyp2f1(double, double, double, double) double complex hyp2f1(double, double, double, double complex)
hyperu:double hyperu(double, double, double)
i0:double i0(double)
i0e:double i0e(double)
i1:double i1(double)
i1e:double i1e(double)
inv_boxcox:double inv_boxcox(double, double)
inv_boxcox1p:double inv_boxcox1p(double, double)
it2i0k0:void it2i0k0(double, double *, double *)
it2j0y0:void it2j0y0(double, double *, double *)
it2struve0:double it2struve0(double)
itairy:void itairy(double, double *, double *, double *, double *)
iti0k0:void iti0k0(double, double *, double *)
itj0y0:void itj0y0(double, double *, double *)
itmodstruve0:double itmodstruve0(double)
itstruve0:double itstruve0(double)
iv:double complex iv(double, double complex) double iv(double, double)
ive:double complex ive(double, double complex) double ive(double, double)
j0:double j0(double)
j1:double j1(double)
jv:double complex jv(double, double complex) double jv(double, double)
jve:double complex jve(double, double complex) double jve(double, double)
k0:double k0(double)
k0e:double k0e(double)
k1:double k1(double)
k1e:double k1e(double)
kei:double kei(double)
keip:double keip(double)
kelvin:void kelvin(double, double complex *, double complex *, double complex *, double complex *)
ker:double ker(double)
kerp:double kerp(double)
kl_div:double kl_div(double, double)
kn:double kn(double, double) double kn(long, double)
kolmogi:double kolmogi(double)
kolmogorov:double kolmogorov(double)
kv:double complex kv(double, double complex) double kv(double, double)
kve:double complex kve(double, double complex) double kve(double, double)
log1p:double complex log1p(double complex) double log1p(double)
log_expit:double log_expit(double) float log_expit(float) long double log_expit(long double)
log_ndtr:double log_ndtr(double) double complex log_ndtr(double complex)
loggamma:double loggamma(double) double complex loggamma(double complex)
logit:double logit(double) float logit(float) long double logit(long double)
lpmv:double lpmv(double, double, double)
mathieu_a:double mathieu_a(double, double)
mathieu_b:double mathieu_b(double, double)
mathieu_cem:void mathieu_cem(double, double, double, double *, double *)
mathieu_modcem1:void mathieu_modcem1(double, double, double, double *, double *)
mathieu_modcem2:void mathieu_modcem2(double, double, double, double *, double *)
mathieu_modsem1:void mathieu_modsem1(double, double, double, double *, double *)
mathieu_modsem2:void mathieu_modsem2(double, double, double, double *, double *)
mathieu_sem:void mathieu_sem(double, double, double, double *, double *)
modfresnelm:void modfresnelm(double, double complex *, double complex *)
modfresnelp:void modfresnelp(double, double complex *, double complex *)
modstruve:double modstruve(double, double)
nbdtr:double nbdtr(double, double, double) double nbdtr(long, long, double)
nbdtrc:double nbdtrc(double, double, double) double nbdtrc(long, long, double)
nbdtri:double nbdtri(double, double, double) double nbdtri(long, long, double)
nbdtrik:double nbdtrik(double, double, double)
nbdtrin:double nbdtrin(double, double, double)
ncfdtr:double ncfdtr(double, double, double, double)
ncfdtri:double ncfdtri(double, double, double, double)
ncfdtridfd:double ncfdtridfd(double, double, double, double)
ncfdtridfn:double ncfdtridfn(double, double, double, double)
ncfdtrinc:double ncfdtrinc(double, double, double, double)
nctdtr:double nctdtr(double, double, double)
nctdtridf:double nctdtridf(double, double, double)
nctdtrinc:double nctdtrinc(double, double, double)
nctdtrit:double nctdtrit(double, double, double)
ndtr:double complex ndtr(double complex) double ndtr(double)
ndtri:double ndtri(double)
nrdtrimn:double nrdtrimn(double, double, double)
nrdtrisd:double nrdtrisd(double, double, double)
obl_ang1:void obl_ang1(double, double, double, double, double *, double *)
obl_ang1_cv:void obl_ang1_cv(double, double, double, double, double, double *, double *)
obl_cv:double obl_cv(double, double, double)
obl_rad1:void obl_rad1(double, double, double, double, double *, double *)
obl_rad1_cv:void obl_rad1_cv(double, double, double, double, double, double *, double *)
obl_rad2:void obl_rad2(double, double, double, double, double *, double *)
obl_rad2_cv:void obl_rad2_cv(double, double, double, double, double, double *, double *)
owens_t:double owens_t(double, double)
pbdv:void pbdv(double, double, double *, double *)
pbvv:void pbvv(double, double, double *, double *)
pbwa:void pbwa(double, double, double *, double *)
pdtr:double pdtr(double, double)
pdtrc:double pdtrc(double, double)
pdtri:double pdtri(double, double) double pdtri(long, double)
pdtrik:double pdtrik(double, double) float pdtrik(float, float)
poch:double poch(double, double)
powm1:float powm1(float, float) double powm1(double, double)
pro_ang1:void pro_ang1(double, double, double, double, double *, double *)
pro_ang1_cv:void pro_ang1_cv(double, double, double, double, double, double *, double *)
pro_cv:double pro_cv(double, double, double)
pro_rad1:void pro_rad1(double, double, double, double, double *, double *)
pro_rad1_cv:void pro_rad1_cv(double, double, double, double, double, double *, double *)
pro_rad2:void pro_rad2(double, double, double, double, double *, double *)
pro_rad2_cv:void pro_rad2_cv(double, double, double, double, double, double *, double *)
pseudo_huber:double pseudo_huber(double, double)
psi:double complex psi(double complex) double psi(double)
radian:double radian(double, double, double)
rel_entr:double rel_entr(double, double)
rgamma:double complex rgamma(double complex) double rgamma(double)
round:double round(double)
shichi:void shichi(double complex, double complex *, double complex *) void shichi(double, double *, double *)
sici:void sici(double complex, double complex *, double complex *) void sici(double, double *, double *)
sindg:double sindg(double)
smirnov:double smirnov(double, double) double smirnov(long, double)
smirnovi:double smirnovi(double, double) double smirnovi(long, double)
spence:double complex spence(double complex) double spence(double)
stdtr:double stdtr(double, double)
stdtridf:double stdtridf(double, double)
stdtrit:double stdtrit(double, double)
struve:double struve(double, double)
tandg:double tandg(double)
tklmbda:double tklmbda(double, double)
wofz:double complex wofz(double complex)
wrightomega:double complex wrightomega(double complex) double wrightomega(double)
xlog1py:double xlog1py(double, double) double complex xlog1py(double complex, double complex)
xlogy:double xlogy(double, double) double complex xlogy(double complex, double complex)
y0:double y0(double)
y1:double y1(double)
yn:double yn(double, double) double yn(long, double)
yv:double complex yv(double, double complex) double yv(double, double)
yve:double complex yve(double, double complex) double yve(double, double)
zetac:double zetac(double)
wright_bessel:double wright_bessel(double, double, double)
log_wright_bessel:double log_wright_bessel(double, double, double)
ndtri_exp:double ndtri_exp(double)
Custom functions#
Some functions in scipy.special which are not ufuncs have custom
Cython wrappers.
Spherical Bessel functions#
The optional derivative boolean argument is replaced with an
optional Cython bint, leading to the following signatures.
-
double complex spherical_jn(Py_ssize_t, double complex) double complex spherical_jn(Py_ssize_t, double complex, bint) double spherical_jn(Py_ssize_t, double) double spherical_jn(Py_ssize_t, double, bint)
-
double complex spherical_yn(Py_ssize_t, double complex) double complex spherical_yn(Py_ssize_t, double complex, bint) double spherical_yn(Py_ssize_t, double) double spherical_yn(Py_ssize_t, double, bint)
-
double complex spherical_in(Py_ssize_t, double complex) double complex spherical_in(Py_ssize_t, double complex, bint) double spherical_in(Py_ssize_t, double) double spherical_in(Py_ssize_t, double, bint)
-
double complex spherical_kn(Py_ssize_t, double complex) double complex spherical_kn(Py_ssize_t, double complex, bint) double spherical_kn(Py_ssize_t, double) double spherical_kn(Py_ssize_t, double, bint)