pub struct Libm<T>(/* private fields */);
Expand description
Generic helper for libm functions, abstracting over f32 and f64.
§Type Parameter:
T
: Eitherf32
orf64
§Examples
use libm::{self, Libm};
const PI_F32: f32 = 3.1415927410e+00;
const PI_F64: f64 = 3.1415926535897931160e+00;
assert!(Libm::<f32>::cos(0.0f32) == libm::cosf(0.0));
assert!(Libm::<f32>::sin(PI_F32) == libm::sinf(PI_F32));
assert!(Libm::<f64>::cos(0.0f64) == libm::cos(0.0));
assert!(Libm::<f64>::sin(PI_F64) == libm::sin(PI_F64));
Implementations§
Source§impl Libm<f32>
impl Libm<f32>
pub fn acos(x: f32) -> f32
pub fn acosh(x: f32) -> f32
pub fn asin(x: f32) -> f32
pub fn asinh(x: f32) -> f32
pub fn atan(x: f32) -> f32
pub fn atan2(y: f32, x: f32) -> f32
pub fn atanh(x: f32) -> f32
pub fn cbrt(x: f32) -> f32
pub fn ceil(x: f32) -> f32
pub fn copysign(x: f32, y: f32) -> f32
pub fn cos(x: f32) -> f32
pub fn cosh(x: f32) -> f32
pub fn erf(x: f32) -> f32
pub fn erfc(x: f32) -> f32
pub fn exp(x: f32) -> f32
pub fn exp10(x: f32) -> f32
pub fn exp2(x: f32) -> f32
pub fn expm1(x: f32) -> f32
pub fn fabs(x: f32) -> f32
pub fn fdim(x: f32, y: f32) -> f32
pub fn floor(x: f32) -> f32
pub fn fma(x: f32, y: f32, z: f32) -> f32
pub fn fmax(x: f32, y: f32) -> f32
pub fn fmin(x: f32, y: f32) -> f32
pub fn fmod(x: f32, y: f32) -> f32
pub fn frexp(x: f32) -> (f32, i32)
pub fn hypot(x: f32, y: f32) -> f32
pub fn ilogb(x: f32) -> i32
pub fn j0(x: f32) -> f32
pub fn j1(x: f32) -> f32
pub fn jn(n: i32, x: f32) -> f32
pub fn ldexp(x: f32, n: i32) -> f32
pub fn lgamma(x: f32) -> f32
pub fn lgamma_r(x: f32) -> (f32, i32)
pub fn log(x: f32) -> f32
pub fn log10(x: f32) -> f32
pub fn log1p(x: f32) -> f32
pub fn log2(x: f32) -> f32
pub fn modf(x: f32) -> (f32, f32)
pub fn nextafter(x: f32, y: f32) -> f32
pub fn pow(x: f32, y: f32) -> f32
pub fn remainder(x: f32, y: f32) -> f32
pub fn remquo(x: f32, y: f32) -> (f32, i32)
pub fn rint(x: f32) -> f32
pub fn round(x: f32) -> f32
pub fn roundeven(x: f32) -> f32
pub fn scalbn(x: f32, n: i32) -> f32
pub fn sin(x: f32) -> f32
pub fn sincos(x: f32) -> (f32, f32)
pub fn sinh(x: f32) -> f32
pub fn sqrt(x: f32) -> f32
pub fn tan(x: f32) -> f32
pub fn tanh(x: f32) -> f32
pub fn tgamma(x: f32) -> f32
pub fn trunc(x: f32) -> f32
pub fn y0(x: f32) -> f32
pub fn y1(x: f32) -> f32
pub fn yn(n: i32, x: f32) -> f32
Source§impl Libm<f64>
impl Libm<f64>
pub fn acos(x: f64) -> f64
pub fn acosh(x: f64) -> f64
pub fn asin(x: f64) -> f64
pub fn asinh(x: f64) -> f64
pub fn atan(x: f64) -> f64
pub fn atan2(y: f64, x: f64) -> f64
pub fn atanh(x: f64) -> f64
pub fn cbrt(x: f64) -> f64
pub fn ceil(x: f64) -> f64
pub fn copysign(x: f64, y: f64) -> f64
pub fn cos(x: f64) -> f64
pub fn cosh(x: f64) -> f64
pub fn erf(x: f64) -> f64
pub fn erfc(x: f64) -> f64
pub fn exp(x: f64) -> f64
pub fn exp10(x: f64) -> f64
pub fn exp2(x: f64) -> f64
pub fn expm1(x: f64) -> f64
pub fn fabs(x: f64) -> f64
pub fn fdim(x: f64, y: f64) -> f64
pub fn floor(x: f64) -> f64
pub fn fma(x: f64, y: f64, z: f64) -> f64
pub fn fmax(x: f64, y: f64) -> f64
pub fn fmaximum(x: f64, y: f64) -> f64
pub fn fmaximum_num(x: f64, y: f64) -> f64
pub fn fmaximum_numf(x: f32, y: f32) -> f32
pub fn fmaximumf(x: f32, y: f32) -> f32
pub fn fmin(x: f64, y: f64) -> f64
pub fn fminimum(x: f64, y: f64) -> f64
pub fn fminimum_num(x: f64, y: f64) -> f64
pub fn fminimum_numf(x: f32, y: f32) -> f32
pub fn fminimumf(x: f32, y: f32) -> f32
pub fn fmod(x: f64, y: f64) -> f64
pub fn frexp(x: f64) -> (f64, i32)
pub fn hypot(x: f64, y: f64) -> f64
pub fn ilogb(x: f64) -> i32
pub fn j0(x: f64) -> f64
pub fn j1(x: f64) -> f64
pub fn jn(n: i32, x: f64) -> f64
pub fn ldexp(x: f64, n: i32) -> f64
pub fn lgamma(x: f64) -> f64
pub fn lgamma_r(x: f64) -> (f64, i32)
pub fn log(x: f64) -> f64
pub fn log10(x: f64) -> f64
pub fn log1p(x: f64) -> f64
pub fn log2(x: f64) -> f64
pub fn modf(x: f64) -> (f64, f64)
pub fn nextafter(x: f64, y: f64) -> f64
pub fn pow(x: f64, y: f64) -> f64
pub fn remainder(x: f64, y: f64) -> f64
pub fn remquo(x: f64, y: f64) -> (f64, i32)
pub fn rint(x: f64) -> f64
pub fn round(x: f64) -> f64
pub fn roundevem(x: f64) -> f64
pub fn scalbn(x: f64, n: i32) -> f64
pub fn sin(x: f64) -> f64
pub fn sincos(x: f64) -> (f64, f64)
pub fn sinh(x: f64) -> f64
pub fn sqrt(x: f64) -> f64
pub fn tan(x: f64) -> f64
pub fn tanh(x: f64) -> f64
pub fn tgamma(x: f64) -> f64
pub fn trunc(x: f64) -> f64
pub fn y0(x: f64) -> f64
pub fn y1(x: f64) -> f64
pub fn yn(n: i32, x: f64) -> f64
Auto Trait Implementations§
impl<T> Freeze for Libm<T>
impl<T> RefUnwindSafe for Libm<T>where
T: RefUnwindSafe,
impl<T> Send for Libm<T>where
T: Send,
impl<T> Sync for Libm<T>where
T: Sync,
impl<T> Unpin for Libm<T>where
T: Unpin,
impl<T> UnwindSafe for Libm<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 0 bytes