Changelog
Source:NEWS.md
zuspecial 0.1.0
Initial CRAN submission.
Gamma and beta functions:
sc_gamma(),sc_gammaln(),sc_loggamma(),sc_rgamma(),sc_gammasgn(),sc_psi(),sc_beta(),sc_betaln(),sc_binom()andsc_poch(), with complex arguments where SciPy has them.Error functions:
sc_erf(),sc_erfc(),sc_erfcx(),sc_erfi(),sc_erfcinv(),sc_dawsn(), the Faddeeva functionsc_wofz()andsc_voigt_profile().Incomplete gamma and beta functions and their inverses:
sc_gammainc(),sc_gammaincc(),sc_gammaincinv(),sc_gammainccinv(),sc_betainc(),sc_betaincc(),sc_betaincinv()andsc_betainccinv(). The incomplete beta functions use Boost.Math, from the BH package, as SciPy does.Bessel functions:
sc_jv(),sc_yv(),sc_iv(),sc_kv()and their exponentially scaled formssc_jve(),sc_yve(),sc_ive(),sc_kve(), for real or complex arguments; the Hankel functionssc_hankel1(),sc_hankel2(),sc_hankel1e(),sc_hankel2e(); and the fixed-ordersc_j0()tosc_k1e().Spherical Bessel functions
sc_spherical_jn(),sc_spherical_yn(),sc_spherical_in(),sc_spherical_kn(), withderivative.Airy functions
sc_airy()andsc_airye(), returningai,aip,biandbipas a named list.Hypergeometric functions
sc_hyp0f1(),sc_hyp1f1(),sc_hyp2f1()andsc_hyperu(); elliptic integralssc_ellipk(),sc_ellipkm1(),sc_ellipkinc(),sc_ellipe(),sc_ellipeinc()and the Jacobi functionssc_ellipj();sc_zeta()(Riemann and Hurwitz),sc_zetac(),sc_lambertw(),sc_wrightomega(),sc_spence(),sc_struve()andsc_modstruve(). The Carlson elliptic integrals wait for a SciPy release whose xsf has them.Normal distribution functions:
sc_ndtr(),sc_log_ndtr(),sc_ndtri(),sc_ndtri_exp(),sc_owens_t(), andsc_erfinv().sc_ndtri()’s argument isy, as in SciPy’sndtri(y).sc_geterr(),sc_seterr()andsc_errstate()choose whether each kind of floating-point condition is ignored, warns or raises, afterscipy.special.Arguments recycle as in base R arithmetic, and arrays of different dimensions are refused, as base R refuses non-conformable arrays. Long calls can be interrupted.
Complex Bessel functions of orders of 2^31 or more give SciPy’s x86-64 values on every platform, including arm64.
A registered C interface,
zuspecial_api_v1(inst/include/zuspecial.h), lets other packages call 32 of the functions from C throughLinkingTo:, each returning its value and the error code it raised.zuspecial_info()reports the vendored xsf commit, the SciPy release it matches, the compiler and the function table.Each help page names the counterparts in base R and in
gsl,Bessel,hypergeo,lamWandexpint, and the branch cuts SciPy documents. A new article, “Translating from scipy.special”, covers names, argument types, error handling, multi-output functions, the C interface and where zuspecial differs from SciPy.