pub fn sqrt(x: f64) -> f64 {
libm::sqrt(x)
}
pub fn cbrt(x: f64) -> f64 {
libm::cbrt(x)
}
pub fn powf(x: f64, e: f64) -> f64 {
libm::pow(x, e)
}
pub fn powi(x: f64, e: i32) -> f64 {
libm::pow(x, e as f64)
}
pub fn exp(x: f64) -> f64 {
libm::exp(x)
}
pub fn exp_m1(x: f64) -> f64 {
libm::expm1(x)
}
pub fn ln(x: f64) -> f64 {
libm::log(x)
}
pub fn ln_1p(x: f64) -> f64 {
libm::log1p(x)
}
pub fn log(x: f64, base: f64) -> f64 {
libm::log(x) / libm::log(base)
}
pub fn log10(x: f64) -> f64 {
libm::log10(x)
}
pub fn log2(x: f64) -> f64 {
libm::log2(x)
}
pub fn sin(x: f64) -> f64 {
libm::sin(x)
}
pub fn cos(x: f64) -> f64 {
libm::cos(x)
}
pub fn tan(x: f64) -> f64 {
libm::tan(x)
}
pub fn asin(x: f64) -> f64 {
libm::asin(x)
}
pub fn acos(x: f64) -> f64 {
libm::acos(x)
}
pub fn atan(x: f64) -> f64 {
libm::atan(x)
}
pub fn atan2(y: f64, x: f64) -> f64 {
libm::atan2(y, x)
}
pub fn sinh(x: f64) -> f64 {
libm::sinh(x)
}
pub fn cosh(x: f64) -> f64 {
libm::cosh(x)
}
pub fn tanh(x: f64) -> f64 {
libm::tanh(x)
}
pub fn asinh(x: f64) -> f64 {
libm::asinh(x)
}
pub fn acosh(x: f64) -> f64 {
libm::acosh(x)
}
pub fn atanh(x: f64) -> f64 {
libm::atanh(x)
}
pub fn sin_cos(x: f64) -> (f64, f64) {
libm::sincos(x)
}
pub fn hypot(x: f64, y: f64) -> f64 {
libm::hypot(x, y)
}
pub fn floor(x: f64) -> f64 {
libm::floor(x)
}
pub fn ceil(x: f64) -> f64 {
libm::ceil(x)
}
pub fn round(x: f64) -> f64 {
libm::round(x)
}
pub fn trunc(x: f64) -> f64 {
libm::trunc(x)
}
pub mod f32 {
pub fn sqrt(x: f32) -> f32 {
libm::sqrtf(x)
}
pub fn cbrt(x: f32) -> f32 {
libm::cbrtf(x)
}
pub fn powf(x: f32, e: f32) -> f32 {
libm::powf(x, e)
}
pub fn powi(x: f32, e: i32) -> f32 {
libm::powf(x, e as f32)
}
pub fn exp(x: f32) -> f32 {
libm::expf(x)
}
pub fn exp_m1(x: f32) -> f32 {
libm::expm1f(x)
}
pub fn ln(x: f32) -> f32 {
libm::logf(x)
}
pub fn ln_1p(x: f32) -> f32 {
libm::log1pf(x)
}
pub fn log(x: f32, base: f32) -> f32 {
libm::logf(x) / libm::logf(base)
}
pub fn log10(x: f32) -> f32 {
libm::log10f(x)
}
pub fn log2(x: f32) -> f32 {
libm::log2f(x)
}
pub fn sin(x: f32) -> f32 {
libm::sinf(x)
}
pub fn cos(x: f32) -> f32 {
libm::cosf(x)
}
pub fn tan(x: f32) -> f32 {
libm::tanf(x)
}
pub fn asin(x: f32) -> f32 {
libm::asinf(x)
}
pub fn acos(x: f32) -> f32 {
libm::acosf(x)
}
pub fn atan(x: f32) -> f32 {
libm::atanf(x)
}
pub fn atan2(y: f32, x: f32) -> f32 {
libm::atan2f(y, x)
}
pub fn sinh(x: f32) -> f32 {
libm::sinhf(x)
}
pub fn cosh(x: f32) -> f32 {
libm::coshf(x)
}
pub fn tanh(x: f32) -> f32 {
libm::tanhf(x)
}
pub fn asinh(x: f32) -> f32 {
libm::asinhf(x)
}
pub fn acosh(x: f32) -> f32 {
libm::acoshf(x)
}
pub fn atanh(x: f32) -> f32 {
libm::atanhf(x)
}
pub fn sin_cos(x: f32) -> (f32, f32) {
libm::sincosf(x)
}
pub fn hypot(x: f32, y: f32) -> f32 {
libm::hypotf(x, y)
}
pub fn floor(x: f32) -> f32 {
libm::floorf(x)
}
pub fn ceil(x: f32) -> f32 {
libm::ceilf(x)
}
pub fn round(x: f32) -> f32 {
libm::roundf(x)
}
pub fn trunc(x: f32) -> f32 {
libm::truncf(x)
}
}