Struct Libm
pub struct Libm<T>(/* private field */);
Generic helper for libm functions, abstracting over f32 and f64.
Type Parameter:
T: Eitherf32orf64
Examples
use ;
const PI_F32: f32 = 3.1415927410e+00;
const PI_F64: f64 = 3.1415926535897931160e+00;
assert!;
assert!;
assert!;
assert!;
Implementations
impl Libm<f32>
fn acos(x: f32) -> f32fn acosh(x: f32) -> f32fn asin(x: f32) -> f32fn asinh(x: f32) -> f32fn atan(x: f32) -> f32fn atan2(y: f32, x: f32) -> f32fn atanh(x: f32) -> f32fn cbrt(x: f32) -> f32fn ceil(x: f32) -> f32fn copysign(x: f32, y: f32) -> f32fn cos(x: f32) -> f32fn cosh(x: f32) -> f32fn erf(x: f32) -> f32fn erfc(x: f32) -> f32fn exp(x: f32) -> f32fn exp10(x: f32) -> f32fn exp2(x: f32) -> f32fn expm1(x: f32) -> f32fn fabs(x: f32) -> f32fn fdim(x: f32, y: f32) -> f32fn floor(x: f32) -> f32fn fma(x: f32, y: f32, z: f32) -> f32fn fmax(x: f32, y: f32) -> f32fn fmin(x: f32, y: f32) -> f32fn fmod(x: f32, y: f32) -> f32fn frexp(x: f32) -> (f32, i32)fn hypot(x: f32, y: f32) -> f32fn ilogb(x: f32) -> i32fn j0(x: f32) -> f32fn j1(x: f32) -> f32fn jn(n: i32, x: f32) -> f32fn ldexp(x: f32, n: i32) -> f32fn lgamma(x: f32) -> f32fn lgamma_r(x: f32) -> (f32, i32)fn log(x: f32) -> f32fn log10(x: f32) -> f32fn log1p(x: f32) -> f32fn log2(x: f32) -> f32fn modf(x: f32) -> (f32, f32)fn nextafter(x: f32, y: f32) -> f32fn pow(x: f32, y: f32) -> f32fn remainder(x: f32, y: f32) -> f32fn remquo(x: f32, y: f32) -> (f32, i32)fn rint(x: f32) -> f32fn round(x: f32) -> f32fn roundeven(x: f32) -> f32fn scalbn(x: f32, n: i32) -> f32fn sin(x: f32) -> f32fn sincos(x: f32) -> (f32, f32)fn sinh(x: f32) -> f32fn sqrt(x: f32) -> f32fn tan(x: f32) -> f32fn tanh(x: f32) -> f32fn tgamma(x: f32) -> f32fn trunc(x: f32) -> f32fn y0(x: f32) -> f32fn y1(x: f32) -> f32fn yn(n: i32, x: f32) -> f32
impl Libm<f64>
fn acos(x: f64) -> f64fn acosh(x: f64) -> f64fn asin(x: f64) -> f64fn asinh(x: f64) -> f64fn atan(x: f64) -> f64fn atan2(y: f64, x: f64) -> f64fn atanh(x: f64) -> f64fn cbrt(x: f64) -> f64fn ceil(x: f64) -> f64fn copysign(x: f64, y: f64) -> f64fn cos(x: f64) -> f64fn cosh(x: f64) -> f64fn erf(x: f64) -> f64fn erfc(x: f64) -> f64fn exp(x: f64) -> f64fn exp10(x: f64) -> f64fn exp2(x: f64) -> f64fn expm1(x: f64) -> f64fn fabs(x: f64) -> f64fn fdim(x: f64, y: f64) -> f64fn floor(x: f64) -> f64fn fma(x: f64, y: f64, z: f64) -> f64fn fmax(x: f64, y: f64) -> f64fn fmaximum(x: f64, y: f64) -> f64fn fmaximum_num(x: f64, y: f64) -> f64fn fmaximum_numf(x: f32, y: f32) -> f32fn fmaximumf(x: f32, y: f32) -> f32fn fmin(x: f64, y: f64) -> f64fn fminimum(x: f64, y: f64) -> f64fn fminimum_num(x: f64, y: f64) -> f64fn fminimum_numf(x: f32, y: f32) -> f32fn fminimumf(x: f32, y: f32) -> f32fn fmod(x: f64, y: f64) -> f64fn frexp(x: f64) -> (f64, i32)fn hypot(x: f64, y: f64) -> f64fn ilogb(x: f64) -> i32fn j0(x: f64) -> f64fn j1(x: f64) -> f64fn jn(n: i32, x: f64) -> f64fn ldexp(x: f64, n: i32) -> f64fn lgamma(x: f64) -> f64fn lgamma_r(x: f64) -> (f64, i32)fn log(x: f64) -> f64fn log10(x: f64) -> f64fn log1p(x: f64) -> f64fn log2(x: f64) -> f64fn modf(x: f64) -> (f64, f64)fn nextafter(x: f64, y: f64) -> f64fn pow(x: f64, y: f64) -> f64fn remainder(x: f64, y: f64) -> f64fn remquo(x: f64, y: f64) -> (f64, i32)fn rint(x: f64) -> f64fn round(x: f64) -> f64fn roundeven(x: f64) -> f64fn scalbn(x: f64, n: i32) -> f64fn sin(x: f64) -> f64fn sincos(x: f64) -> (f64, f64)fn sinh(x: f64) -> f64fn sqrt(x: f64) -> f64fn tan(x: f64) -> f64fn tanh(x: f64) -> f64fn tgamma(x: f64) -> f64fn trunc(x: f64) -> f64fn y0(x: f64) -> f64fn y1(x: f64) -> f64fn yn(n: i32, x: f64) -> f64
Auto Trait Implementations
impl<T> Freeze for Libm<T>
where
PhantomData<T>: Freeze,
impl<T> RefUnwindSafe for Libm<T>
where
PhantomData<T>: RefUnwindSafe,
impl<T> Send for Libm<T>
where
PhantomData<T>: Send,
impl<T> Sync for Libm<T>
where
PhantomData<T>: Sync,
impl<T> Unpin for Libm<T>
where
PhantomData<T>: Unpin,
impl<T> UnsafeUnpin for Libm<T>
where
PhantomData<T>: UnsafeUnpin,
impl<T> UnwindSafe for Libm<T>
where
PhantomData<T>: UnwindSafe,
Blanket Implementations
impl<T> Any for Libm<T>
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for Libm<T>
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for Libm<T>
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> From<T> for Libm<T>
fn from(t: T) -> TReturns the argument unchanged.
impl<T, U> Into<U> for Libm<T>
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for Libm<T>
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for Libm<T>
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>