use std::os::raw::c_double;
use crate::symbolic::special;
#[unsafe(no_mangle)]
pub extern "C" fn rssn_gamma_numerical(x: c_double) -> c_double {
special::gamma_numerical(x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_ln_gamma_numerical(x: c_double) -> c_double {
special::ln_gamma_numerical(x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_digamma_numerical(x: c_double) -> c_double {
special::digamma_numerical(x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_beta_numerical(
a: c_double,
b: c_double,
) -> c_double {
special::beta_numerical(a, b)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_ln_beta_numerical(
a: c_double,
b: c_double,
) -> c_double {
special::ln_beta_numerical(a, b)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_regularized_incomplete_beta(
a: c_double,
b: c_double,
x: c_double,
) -> c_double {
special::regularized_incomplete_beta(a, b, x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_regularized_gamma_p(
a: c_double,
x: c_double,
) -> c_double {
special::regularized_gamma_p(a, x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_regularized_gamma_q(
a: c_double,
x: c_double,
) -> c_double {
special::regularized_gamma_q(a, x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_erf_numerical(x: c_double) -> c_double {
special::erf_numerical(x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_erfc_numerical(x: c_double) -> c_double {
special::erfc_numerical(x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_inverse_erf(x: c_double) -> c_double {
special::inverse_erf(x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_inverse_erfc(x: c_double) -> c_double {
special::inverse_erfc(x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_factorial(n: u64) -> u64 {
special::factorial(n)
}
#[unsafe(no_mangle)]
pub const extern "C" fn rssn_double_factorial(n: u64) -> u64 {
special::double_factorial(n)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_binomial(
n: u64,
k: u64,
) -> u64 {
special::binomial(n, k)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_rising_factorial(
x: c_double,
n: u32,
) -> c_double {
special::rising_factorial(x, n)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_falling_factorial(
x: c_double,
n: u32,
) -> c_double {
special::falling_factorial(x, n)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_ln_factorial(n: u64) -> c_double {
special::ln_factorial(n)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_bessel_j0(x: c_double) -> c_double {
special::bessel_j0(x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_bessel_j1(x: c_double) -> c_double {
special::bessel_j1(x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_bessel_y0(x: c_double) -> c_double {
special::bessel_y0(x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_bessel_y1(x: c_double) -> c_double {
special::bessel_y1(x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_bessel_i0(x: c_double) -> c_double {
special::bessel_i0(x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_bessel_i1(x: c_double) -> c_double {
special::bessel_i1(x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_bessel_k0(x: c_double) -> c_double {
special::bessel_k0(x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_bessel_k1(x: c_double) -> c_double {
special::bessel_k1(x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_sinc(x: c_double) -> c_double {
special::sinc(x)
}
#[unsafe(no_mangle)]
pub extern "C" fn rssn_zeta_numerical(s: c_double) -> c_double {
special::zeta(s)
}