Skip to main content

Crate scirs2_special

Crate scirs2_special 

Source
Expand description

Β§SciRS2 Special - Special Mathematical Functions

scirs2-special provides production-ready special mathematical functions modeled after SciPy’s special module, offering gamma, Bessel, error functions, elliptic integrals, hypergeometric functions, and more, with enhanced numerical stability, GPU acceleration, and arbitrary precision support.

§🎯 Key Features

  • SciPy Compatibility: Drop-in replacement for scipy.special functions
  • 100+ Functions: Gamma, Bessel, error, elliptic, hypergeometric, orthogonal polynomials
  • Numerical Stability: Carefully implemented algorithms avoiding overflow/underflow
  • GPU Acceleration: CUDA/ROCm support for array operations
  • Arbitrary Precision: High-precision computations with rug backend
  • Memory Efficient: Chunked processing for large arrays
  • SIMD & Parallel: Vectorized and multi-threaded execution

Β§πŸ“¦ Module Overview

SciRS2 ModuleSciPy EquivalentDescription
gammascipy.special.gammaGamma and related functions
besselscipy.special.jv, yvBessel functions (J, Y, I, K)
erfscipy.special.erf, erfcError and complementary error functions
ellipticscipy.special.ellipkElliptic integrals and functions
hypergeometricscipy.special.hyp2f1Hypergeometric functions
combinatorialscipy.special.factorialFactorials, binomial coefficients
orthogonalscipy.special.eval_legendreOrthogonal polynomials (Legendre, Chebyshev, etc.)
zetascipy.special.zetaRiemann zeta and related functions

Β§πŸš€ Quick Start

[dependencies]
scirs2-special = "0.1.5"
use scirs2_special::{gamma, bessel, erf};

// Gamma function: Ξ“(5) = 4! = 24
let g = gamma(5.0f64);
assert!((g - 24.0).abs() < 1e-10);

// Bessel function of the first kind: Jβ‚€(x)
let j0 = bessel::j0(2.0);

// Error function
let erf_val = erf::erf(1.0);

Β§πŸ—οΈ Architecture

scirs2-special
β”œβ”€β”€ Gamma Functions (gamma, lgamma, digamma, polygamma, beta)
β”œβ”€β”€ Bessel Functions (J, Y, I, K, modified, spherical)
β”œβ”€β”€ Error Functions (erf, erfc, erfcx, erfi, dawson)
β”œβ”€β”€ Elliptic Integrals (complete, incomplete, Jacobi)
β”œβ”€β”€ Hypergeometric (2F1, 1F1, 0F1, generalized)
β”œβ”€β”€ Combinatorial (factorial, binomial, multinomial, Stirling)
β”œβ”€β”€ Orthogonal Polynomials (Legendre, Chebyshev, Hermite, Laguerre)
β”œβ”€β”€ Statistical (logistic, softmax, sinc, logsumexp)
β”œβ”€β”€ Special Integrals (exponential, logarithmic, Fresnel)
β”œβ”€β”€ Zeta & Related (Riemann zeta, Hurwitz zeta, polylog)
β”œβ”€β”€ Lambert W & Wright Omega
β”œβ”€β”€ Airy Functions (Ai, Bi, derivatives)
β”œβ”€β”€ Performance Features
β”‚   β”œβ”€β”€ GPU acceleration (gamma, Bessel, erf)
β”‚   β”œβ”€β”€ Chunked processing (memory-efficient)
β”‚   β”œβ”€β”€ SIMD vectorization
β”‚   └── Parallel execution
└── Arbitrary Precision (via rug, optional)

Β§πŸ“Š Performance

FunctionArray SizeCPUGPUSpeedup
Gamma10⁢120ms6ms20Γ—
Bessel J010⁢180ms8ms22.5Γ—
Erf10⁢85ms4ms21Γ—

Β§πŸ”’ Version Information

Re-exportsΒ§

pub use error::SpecialError;
pub use error::SpecialResult;
pub use advanced_performance_enhancement::benchmark_function;
pub use advanced_performance_enhancement::erf_advancedfast;
pub use advanced_performance_enhancement::gamma_advancedfast;
pub use advanced_performance_enhancement::gamma_array_advancedfast;
pub use advanced_performance_enhancement::j0_advancedfast;
pub use advanced_performance_enhancement::PerformanceConfig;
pub use advanced_performance_enhancement::PerformanceMetrics;
pub use bessel::h1vp;
pub use bessel::h2vp;
pub use bessel::hankel1;
pub use bessel::hankel1e;
pub use bessel::hankel2;
pub use bessel::hankel2e;
pub use bessel::i0;
pub use bessel::i0_prime;
pub use bessel::i0e;
pub use bessel::i1;
pub use bessel::i1_prime;
pub use bessel::i1e;
pub use bessel::iv;
pub use bessel::iv_prime;
pub use bessel::ive;
pub use bessel::ivp;
pub use bessel::j0;
pub use bessel::j0_prime;
pub use bessel::j0e;
pub use bessel::j1;
pub use bessel::j1_prime;
pub use bessel::j1e;
pub use bessel::jn;
pub use bessel::jn_prime;
pub use bessel::jne;
pub use bessel::jv;
pub use bessel::jv_prime;
pub use bessel::jve;
pub use bessel::jvp;
pub use bessel::k0;
pub use bessel::k0_prime;
pub use bessel::k0e;
pub use bessel::k1;
pub use bessel::k1_prime;
pub use bessel::k1e;
pub use bessel::kv;
pub use bessel::kv_prime;
pub use bessel::kve;
pub use bessel::kvp;
pub use bessel::spherical_jn;
pub use bessel::spherical_yn;
pub use bessel::y0;
pub use bessel::y0_prime;
pub use bessel::y0e;
pub use bessel::y1;
pub use bessel::y1_prime;
pub use bessel::y1e;
pub use bessel::yn;
pub use bessel::yn_prime;
pub use bessel::yne;
pub use bessel::yvp;
pub use distributions::bdtr;
pub use distributions::bdtr_array;
pub use distributions::bdtrc;
pub use distributions::bdtri;
pub use distributions::bdtrik;
pub use distributions::bdtrin;
pub use distributions::btdtria;
pub use distributions::btdtrib;
pub use distributions::chdtr;
pub use distributions::chdtrc;
pub use distributions::chdtri;
pub use distributions::fdtr;
pub use distributions::fdtrc;
pub use distributions::fdtridfd;
pub use distributions::gdtr;
pub use distributions::gdtrc;
pub use distributions::gdtria;
pub use distributions::gdtrib;
pub use distributions::gdtrix;
pub use distributions::kolmogi;
pub use distributions::kolmogorov;
pub use distributions::log_ndtr;
pub use distributions::nbdtr;
pub use distributions::nbdtrc;
pub use distributions::nbdtri;
pub use distributions::ndtr;
pub use distributions::ndtr_array;
pub use distributions::ndtri;
pub use distributions::ndtri_exp;
pub use distributions::pdtr;
pub use distributions::pdtrc;
pub use distributions::pdtri;
pub use distributions::pdtrik;
pub use distributions::stdtr;
pub use gamma::beta;
pub use gamma::beta;
pub use gamma::beta_safe;
pub use gamma::betainc;
pub use gamma::betainc_regularized;
pub use gamma::betaincinv;
pub use gamma::betaln;
pub use gamma::digamma;
pub use gamma::digamma;
pub use gamma::digamma_safe;
pub use gamma::gamma;
pub use gamma::gamma_safe;
pub use gamma::gammaln;
pub use gamma::loggamma;
pub use gamma::polygamma;
pub use incomplete_gamma::gammainc;
pub use incomplete_gamma::gammainc_lower;
pub use incomplete_gamma::gammainc_upper;
pub use incomplete_gamma::gammaincc;
pub use incomplete_gamma::gammainccinv;
pub use incomplete_gamma::gammaincinv;
pub use incomplete_gamma::gammasgn;
pub use incomplete_gamma::gammastar;
pub use gamma::complex::beta_complex;
pub use gamma::complex::digamma_complex;
pub use gamma::complex::gamma_complex;
pub use gamma::complex::loggamma_complex;
pub use bessel::complex::i0_complex;
pub use bessel::complex::j0_complex;
pub use bessel::complex::j1_complex;
pub use bessel::complex::jn_complex;
pub use bessel::complex::jv_complex;
pub use bessel::complex::k0_complex;
pub use erf::complex::erf_complex;
pub use erf::complex::erfc_complex;
pub use erf::complex::erfcx_complex;
pub use erf::complex::faddeeva_complex;
pub use information_theory::binary_entropy;
pub use information_theory::cross_entropy;
pub use information_theory::entr;
pub use information_theory::entr_array;
pub use information_theory::entropy;
pub use information_theory::huber;
pub use information_theory::huber_loss;
pub use information_theory::kl_div;
pub use information_theory::kl_divergence;
pub use information_theory::pseudo_huber;
pub use information_theory::rel_entr;
pub use utility::agm;
pub use utility::cbrt;
pub use utility::cbrt_array;
pub use utility::cosdg;
pub use utility::cosm1;
pub use utility::cotdg;
pub use utility::diric;
pub use utility::exp10;
pub use utility::exp10_array;
pub use utility::exp2;
pub use utility::expit;
pub use utility::expit_array;
pub use utility::expm1_array_utility;
pub use utility::exprel;
pub use utility::gradient;
pub use utility::log1p_array_utility;
pub use utility::log_expit;
pub use utility::logit;
pub use utility::logit_array;
pub use utility::owens_t;
pub use utility::powm1;
pub use utility::radian;
pub use utility::round;
pub use utility::round_array;
pub use utility::sindg;
pub use utility::softplus;
pub use utility::spherical_distance;
pub use utility::tandg;
pub use utility::xlog1py;
pub use utility::xlog1py_scalar;
pub use utility::xlogy;
pub use simd_ops::benchmark_simd_performance;
pub use simd_ops::erf_f32_simd;
pub use simd_ops::exp_f32_simd;
pub use simd_ops::gamma_f32_simd;
pub use simd_ops::gamma_f64_simd;
pub use simd_ops::j0_f32_simd;
pub use simd_ops::vectorized_special_ops;
pub use simd_ops::batch_bessel_j0_f32;
pub use simd_ops::batch_bessel_j0_f64;
pub use simd_ops::batch_bessel_j1_f32;
pub use simd_ops::batch_bessel_j1_f64;
pub use simd_ops::batch_bessel_y0_f32;
pub use simd_ops::batch_bessel_y0_f64;
pub use simd_ops::batch_bessel_y1_f32;
pub use simd_ops::batch_bessel_y1_f64;
pub use simd_ops::batch_beta_f32;
pub use simd_ops::batch_beta_f64;
pub use simd_ops::batch_digamma_f32;
pub use simd_ops::batch_digamma_f64;
pub use simd_ops::batch_erf_f32;
pub use simd_ops::batch_erf_f64;
pub use simd_ops::batch_erfc_f32;
pub use simd_ops::batch_erfc_f64;
pub use simd_ops::batch_gamma_f32;
pub use simd_ops::batch_gamma_f64;
pub use simd_ops::batch_lgamma_f32;
pub use simd_ops::batch_lgamma_f64;
pub use simd_ops::adaptive_gamma_processing;
pub use simd_ops::benchmark_parallel_performance;
pub use simd_ops::gamma_f64_parallel;
pub use simd_ops::j0_f64_parallel;
pub use simd_ops::gamma_f32_simd_parallel;
pub use erf::dawsn;
pub use erf::erf;
pub use erf::erfc;
pub use erf::erfcinv;
pub use erf::erfcx;
pub use erf::erfi;
pub use erf::erfinv;
pub use erf::wofz;
pub use arbitrary_precision::bessel::bessel_j_ap;
pub use arbitrary_precision::bessel::bessel_j_mp;
pub use arbitrary_precision::bessel::bessel_y_ap;
pub use arbitrary_precision::bessel::bessel_y_mp;
pub use arbitrary_precision::cleanup_cache;
pub use arbitrary_precision::error_function::erf_ap;
pub use arbitrary_precision::error_function::erf_mp;
pub use arbitrary_precision::error_function::erfc_ap;
pub use arbitrary_precision::error_function::erfc_mp;
pub use arbitrary_precision::gamma::gamma_ap;
pub use arbitrary_precision::gamma::gamma_mp;
pub use arbitrary_precision::gamma::log_gamma_ap;
pub use arbitrary_precision::gamma::log_gamma_mp;
pub use arbitrary_precision::to_complex64;
pub use arbitrary_precision::to_f64;
pub use arbitrary_precision::PrecisionContext;

ModulesΒ§

advanced_performance_enhancement
Advanced-high performance enhancements for critical special functions
arbitrary_precision
Arbitrary precision computation support for special functions
array_ops
Enhanced array operations for special functions
bessel
Bessel functions with enhanced numerical stability
convenience
Domain-specific convenience functions
cross_validation
Cross-validation against reference implementations
distributions
Statistical distribution functions
edge_case_tests
Comprehensive edge case testing for special functions
erf
Error function and related functions
error
Error types for the SciRS2 special functions module
error_context
Enhanced error handling with context tracking for special functions
error_wrappers
Error handling wrappers for special functions
extended_scipy_validation
Extended validation tests for new SciPy compatibility functions
gamma
Gamma function and related implementations
gpu_context_manager
Advanced GPU context management for special functions
gpu_ops
GPU-accelerated implementations of special functions
incomplete_gamma
Incomplete gamma and related functions
information_theory
Information theory functions
memory_efficient
Memory-efficient operations for large arrays
optimizations
Performance optimizations for special functions
performance_benchmarks
Comprehensive performance benchmarking for special functions
physics_engineering
Specialized physics and engineering functions
precision
Precision enhancement utilities
python_interop
Python interoperability module for migration assistance
simd_ops
SIMD-optimized and parallel operations for special functions
stability_analysis
Numerical stability analysis for special functions
utility
Utility and convenience functions with mathematical foundations
visualization
Visualization tools for special functions

MacrosΒ§

special_error
Macro for consistent error creation with context
validate_with_context
Macro for consistent validation with error context

FunctionsΒ§

acosdg
Inverse cosine in degrees.
ai
Airy function of the first kind, Ai(x).
ai_complex
Complex Airy function of the first kind, Ai(z)
ai_zeros
Compute zeros of Airy function Ai(x)
aie
Exponentially scaled Airy function Ai(x) * exp(2/3 * x^(3/2)) for x >= 0
aip
Derivative of the Airy function of the first kind, Ai’(x).
aip_complex
Complex derivative of Airy function of the first kind, Ai’(z)
airye
Exponentially scaled Airy functions and their derivatives
anger_j
Anger function J_v(x).
anger_weber
Relation between Anger, Weber, and Bessel functions.
asindg
Inverse sine in degrees.
atandg
Inverse tangent in degrees.
bei
Compute the bei function, the imaginary part of the Kelvin function
beip
Compute the derivative of the bei function
bell_number
Computes the Bell number B(n).
ber
Compute the ber function, the real part of the Kelvin function
bernoulli_number
Computes the Bernoulli number B(n).
bernoulli_poly
Bernoulli polynomial B_n(x).
berp
Compute the derivative of the ber function
besselpoly
Compute Bessel polynomial
bi
Airy function of the second kind, Bi(x).
bi_complex
Complex Airy function of the second kind, Bi(z)
bi_zeros
Compute zeros of Airy function Bi(x)
bie
Exponentially scaled Airy function Bi(x) * exp(-2/3 * |x|^(3/2)) for x >= 0
binomial
Computes the binomial coefficient β€œn choose k”.
bip
Derivative of the Airy function of the second kind, Bi’(x).
bip_complex
Complex derivative of Airy function of the second kind, Bi’(z)
boxcox
Box-Cox transformation
boxcox1p
Box-Cox transformation of 1 + x
boxcox1p_array
Box-Cox1p transformation for arrays
boxcox_array
Box-Cox transformation for arrays
chebyshev
Computes the value of the Chebyshev polynomial of the first kind T_n(x) of degree n.
chi
Hyperbolic cosine integral, Chi(x) = Ξ³ + ln(x) + βˆ«β‚€Λ£ (cosh(t)-1)/t dt
ci
Cosine integral, Ci(x) = -βˆ«β‚“^∞ cos(t)/t dt = Ξ³ + ln(x) + βˆ«β‚€Λ£ (cos(t)-1)/t dt
clausen
Clausen function Cl_2(x).
comb
Combination function - alias for binomial coefficient
complete_elliptic_pi
Complete elliptic integral of the third kind Pi(n, m).
coulomb_f
Computes the regular Coulomb wave function F_L(η,ρ)
coulomb_g
Computes the irregular Coulomb wave function G_L(η,ρ)
coulomb_h_plus
Computes the outgoing Coulomb wave function H⁺_L(η,ρ)
coulomb_hminus
Computes the incoming Coulomb wave function H⁻_L(η,ρ)
coulomb_phase_shift
Computes the Coulomb phase shift Οƒ_L(Ξ·)
debye1
First Debye function D_1(x) = (1/x) * integral_0^x t/(e^t - 1) dt
debye2
Second Debye function D_2(x) = (2/x^2) * integral_0^x t^2/(e^t - 1) dt
debye3
Third Debye function D_3(x) = (3/x^3) * integral_0^x t^3/(e^t - 1) dt
debye4
Fourth Debye function D_4(x) = (4/x^4) * integral_0^x t^4/(e^t - 1) dt
debye5
Fifth Debye function D_5(x) = (5/x^5) * integral_0^x t^5/(e^t - 1) dt
dirichlet_eta
Dirichlet eta function Ξ·(s) = (1 - 2^{1-s}) ΞΆ(s).
double_factorial
Computes the double factorial of a non-negative integer.
e1
Exponential integral E₁(x) = βˆ«β‚“^∞ e⁻ᡗ/t dt
ellip_harm
Ellipsoidal harmonic functions E_n^m(hΒ²)
ellip_harm_2
Second-order ellipsoidal harmful functions F_n^m(hΒ²)
ellip_harm_array
Array version of ellipsoidal harmonics
ellip_harm_coefficients
Ellipsoidal harmonic expansion coefficients
ellip_harm_complex
Complex ellipsoidal harmonics
ellip_normal
Ellipsoidal harmonic normalization constants
ellipe
Complete elliptic integral of the second kind (alternative interface)
ellipeinc
Incomplete elliptic integral of the second kind (alternative interface)
ellipj
Jacobian elliptic functions with all three functions returned at once
ellipk
Complete elliptic integral of the first kind (alternative interface)
ellipkinc
Incomplete elliptic integral of the first kind (alternative interface)
ellipkm1
Complete elliptic integral of the first kind K(1-m)
elliprc
Carlson elliptic integral RC(x, y)
elliprd
Carlson elliptic integral RD(x, y, z)
elliprf
Carlson elliptic integral RF(x, y, z)
elliprf_array
Array versions of Carlson elliptic integrals
elliprg
Carlson elliptic integral RG(x, y, z)
elliprj
Carlson elliptic integral RJ(x, y, z, p)
elliptic_e
Complete elliptic integral of the second kind
elliptic_e_inc
Incomplete elliptic integral of the second kind
elliptic_f
Incomplete elliptic integral of the first kind
elliptic_k
Complete elliptic integral of the first kind
elliptic_nome
Inverse elliptic nome q(m).
elliptic_pi
Incomplete elliptic integral of the third kind
euler_number
Computes the Euler number E(n).
euler_poly
Euler polynomial E_n(x).
exp1
Exponential integral E_1(x).
expint
Exponential integral of order n, Eβ‚β‚™β‚Ž(x) = βˆ«β‚“^∞ e⁻ᡗ/t^n dt
expm1_array
Computes exp(x) - 1 with improved numerical stability for small x.
expn
Generalized exponential integral E_n(x).
factorial
Computes the factorial of a non-negative integer.
factorial2
Computes the double factorial n!! (alias for SciPy compatibility).
factorialk
Computes the k-factorial (multi-factorial) of n.
fresnel
Compute the Fresnel sine and cosine integrals.
fresnel_complex
Compute the Fresnel sine and cosine integrals for complex argument.
fresnelc
Compute the Fresnel cosine integral.
fresnels
Compute the Fresnel sine integral.
gegenbauer
Computes the value of the Gegenbauer (advancedspherical) polynomial C_n^(Ξ»)(x).
hermite
Computes the value of the Hermite polynomial H_n(x) of degree n.
hermite_prob
Computes the value of the Hermite function (probabilists’ Hermite polynomial) He_n(x).
hurwitz_zeta
Hurwitz zeta function.
hyp0f1
Confluent hypergeometric function 1F1(a;b;z)
hyp0f1_enhanced
Enhanced confluent hypergeometric limit function β‚€F₁(;a;z)
hyp1f1
hyp1f1_enhanced
Enhanced confluent hypergeometric function ₁F₁(a;b;z)
hyp1f1_regularized
Regularized confluent hypergeometric function ₁F₁(a;b;z) / Ξ“(b)
hyp2f1
Gaussian (ordinary) hypergeometric function 2F1(a,b;c;z)
hyp2f1_enhanced
Enhanced hypergeometric function β‚‚F₁(a,b;c;z) with convergence acceleration
hyp2f1_regularized
Regularized hypergeometric function β‚‚F₁(a,b;c;z) / Ξ“(c)
hyperu
Confluent hypergeometric function U(a,b,x) of the second kind
inv_boxcox
Inverse Box-Cox transformation
inv_boxcox1p
Inverse Box-Cox transformation of 1 + x form
inv_boxcox1p_array
Inverse Box-Cox1p transformation for arrays
inv_boxcox_array
Inverse Box-Cox transformation for arrays
it2_struve0
Compute the second integration of the Struve function of order 0
it_mod_struve0
Compute the integrated modified Struve function of order 0
it_struve0
Compute the integrated Struve function of order 0
itairy
Integral of Airy functions: βˆ«β‚€^x Ai(t) dt and βˆ«β‚€^x Bi(t) dt
itj0y0
Compute integrals βˆ«β‚€^∞ tⁿ Jβ‚€(t) Yβ‚€(xt) dt and βˆ«β‚€^∞ tⁿ Jβ‚€(t) Yβ‚€(xt) Jβ‚€(t) dt
j0_zeros
Compute the k-th zero of Jβ‚€(x)
j1_zeros
Compute the k-th zero of J₁(x)
jacobi
Computes the value of the Jacobi polynomial P_n^(Ξ±,Ξ²)(x).
jacobi_cn
Jacobi elliptic function cn(u, m)
jacobi_dn
Jacobi elliptic function dn(u, m)
jacobi_sn
Jacobi elliptic function sn(u, m)
jn_zeros
Compute the k-th zero of Jβ‚™(x)
jnjnp_zeros
Compute zeros where Jβ‚™(x) and J’ₙ(x) cross zero simultaneously
jnp_zeros
Compute the k-th zero of the derivative J’ₙ(x)
jnyn_zeros
Compute zeros of Jβ‚™(x) and Yβ‚™(x) simultaneously
kei
Compute the kei function, the imaginary part of the Kelvin K function
keip
Compute the derivative of the kei function
kelvin
Compute all Kelvin functions and their derivatives at once.
ker
Compute the ker function, the real part of the Kelvin K function
kerp
Compute the derivative of the ker function
laguerre
Computes the value of the Laguerre polynomial L_n(x) of degree n.
laguerre_generalized
Computes the value of the generalized Laguerre polynomial L_n^(Ξ±)(x).
lambert_w
Lambert W function for real and complex arguments.
lambert_w_real
Lambert W function for real arguments on the principal branch (k=0).
legendre
Computes the value of the Legendre polynomial P_n(x) of degree n.
legendre_assoc
Computes the associated Legendre function P_n^m(x).
lerch_phi
Lerch transcendent Ξ¦(z, s, a).
li
Calculates the logarithmic integral Li(x) = βˆ«β‚‚Λ£ dt/ln(t)
li_complex
Calculates the logarithmic integral for complex values, Li(z) = βˆ«β‚€αΆ» dt/ln(t)
ln_pochhammer
Compute the logarithm of the Pochhammer symbol (rising factorial)
log1p_array
Computes log(1 + x) with improved numerical stability for small x.
log_abs_gamma
Computes the log of the absolute value of the gamma function.
log_softmax
Computes the log-softmax function for a vector of inputs.
log_wright_bessel
Logarithm of Wright’s generalized Bessel function
loggamma_sign
Logarithm of the absolute value of the gamma function with sign.
logistic
Computes the logistic (sigmoid) function.
logistic_derivative
Computes the derivative of the logistic function.
logsumexp
Computes the LogSumExp function for numerical stability.
lommel_s1
Lommel function of the first kind s_{mu,nu}(z).
lommel_s2
Lommel function of the second kind S_{mu,nu}(z).
mathieu_a
Characteristic value of even Mathieu functions
mathieu_b
Characteristic value of odd Mathieu functions
mathieu_cem
Even Mathieu function and its derivative
mathieu_even_coef
Fourier coefficients for even Mathieu functions
mathieu_odd_coef
Fourier coefficients for odd Mathieu functions
mathieu_sem
Odd Mathieu function and its derivative
mod_fresnel_plus
Compute the modified Fresnel plus integrals.
mod_fresnelminus
Compute the modified Fresnel minus integrals.
mod_struve
Compute the Modified Struve function L_v(x)
multinomial
Multinomial coefficient.
obl_ang1
Computes the prolate spheroidal angular function of the first kind.
obl_cv
Computes the characteristic value for oblate spheroidal wave functions.
obl_cv_seq
Computes a sequence of characteristic values for oblate spheroidal wave functions.
obl_rad1
Computes the oblate spheroidal radial function of the first kind.
obl_rad2
Computes the oblate spheroidal radial function of the second kind.
pbdv
Parabolic cylinder function D_v(x) and its derivative.
pbdv_seq
Compute a sequence of parabolic cylinder functions D_v(x) for v = 0, 1, …, vmax.
pbvv
Parabolic cylinder function V_v(x) and its derivative.
pbvv_seq
Compute a sequence of parabolic cylinder functions V_v(x) for v = 0, 1, …, vmax.
pbwa
Compute parabolic cylinder function W(a,x) and its derivative.
perm
Computes the number of permutations (alias for SciPy compatibility).
permutations
Computes the number of permutations of n items taken k at a time.
pochhammer
Compute the Pochhammer symbol (rising factorial)
polylog
Polylogarithm function Li_s(z) = Σ_{k=1}^∞ z^k / k^s
pro_ang1
Computes oblate characteristic values using continued fractions for moderate c values
pro_cv
Computes the characteristic value for prolate spheroidal wave functions.
pro_cv_seq
Computes a sequence of characteristic values for prolate spheroidal wave functions.
pro_rad1
Computes the prolate spheroidal radial function of the first kind.
pro_rad2
Computes the prolate spheroidal radial function of the second kind.
pseudo_voigt
Pseudo-Voigt approximation
riccati_jn
Riccati-Bessel function S_n(x) = x * j_n(x).
riccati_yn
Riccati-Bessel function C_n(x) = -x * y_n(x).
riemann_zeta
Riemann zeta function for real argument (f64 specialisation).
riemann_zeta_complex
Riemann zeta function for complex argument using Euler-Maclaurin.
shi
Hyperbolic sine integral, Shi(x) = βˆ«β‚€Λ£ sinh(t)/t dt
shichi
Computes both hyperbolic sine and cosine integrals simultaneously: (Shi(x), Chi(x))
si
Sine integral, Si(x) = βˆ«β‚€Λ£ sin(t)/t dt
sici
Computes both sine and cosine integrals simultaneously: (Si(x), Ci(x))
sinc
Computes the normalized sinc function.
sinc_array
Computes the normalized sinc function for an array of inputs.
softmax
Computes the softmax function for a vector of inputs.
solid_harmonic_irregular
Irregular solid harmonic I_l^m(r, theta, phi).
solid_harmonic_regular
Regular solid harmonic R_l^m(r, theta, phi).
spence
Spence’s function (dilogarithm): Liβ‚‚(x) = -βˆ«β‚€Λ£ ln(1-t)/t dt
sph_harm
Computes the value of the real spherical harmonic Y_l^m(ΞΈ, Ο†) function.
sph_harm_complex
Computes the value of the complex spherical harmonic Y_l^m(ΞΈ, Ο†) function.
sph_harm_cos_angle
Spherical harmonic addition theorem coefficient.
sph_harm_normalization
Compute the normalization factor for spherical harmonics.
spherical_in
Modified spherical Bessel function of the first kind i_n(x).
spherical_in_derivative
Derivative of the modified spherical Bessel function of the first kind.
spherical_kn
Modified spherical Bessel function of the second kind k_n(x).
spherical_kn_derivative
Derivative of the modified spherical Bessel function of the second kind.
stirling2
Computes the Stirling number of the second kind (alias for SciPy compatibility).
stirling_first
Computes the Stirling number of the first kind.
stirling_second
Computes the Stirling number of the second kind.
struve
Compute the Struve function H_v(x)
voigt_profile
Voigt profile function
voigt_profile_array
Voigt profile for arrays
voigt_profile_fwhm
Voigt profile with different parameterization
voigt_profile_fwhm_array
Voigt profile FWHM for arrays
voigt_profile_normalized
Normalized Voigt profile
weber_e
Weber function E_v(x).
weierstrass_p
Weierstrass elliptic function wp(z; g2, g3).
weierstrass_p_prime
Derivative of the Weierstrass elliptic function wp’(z; g2, g3).
weierstrass_sigma
Weierstrass sigma function sigma_W(z; g2, g3).
weierstrass_zeta
Weierstrass zeta function zeta_W(z; g2, g3).
whittaker_m
Whittaker function M_{kappa,mu}(z)
whittaker_w
Whittaker function W_{kappa,mu}(z)
wright_bessel
Computes the Wright Bessel function J_{rho, beta}(z)
wright_bessel_complex
Computes the Wright Bessel function for complex arguments J_{rho, beta}(z)
wright_bessel_zeros
Computes the first n zeros of the Wright Bessel function J_{rho, beta}(z)
wright_omega
Computes the Wright Omega function for a complex argument.
wright_omega_optimized
Optimized Wright Omega function calculation for complex arguments.
wright_omega_real
Computes the Wright Omega function for a real argument.
wright_omega_real_optimized
Optimized Wright Omega function calculation for real arguments.
y0_zeros
Compute the k-th zero of Yβ‚€(x)
y1_zeros
Compute the k-th zero of Y₁(x)
yn_zeros
Compute the k-th zero of Yβ‚™(x)
zeta
Riemann zeta function.
zetac
Riemann zeta function minus 1.