Struct libm::Libm

source ·
pub struct Libm<T>(/* private fields */);
Expand description

Generic helper for libm functions, abstracting over f32 and f64.

§Type Parameter:

  • T: Either f32 or f64

§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>

source

pub fn acos(x: f32) -> f32

source

pub fn acosh(x: f32) -> f32

source

pub fn asin(x: f32) -> f32

source

pub fn asinh(x: f32) -> f32

source

pub fn atan(x: f32) -> f32

source

pub fn atan2(y: f32, x: f32) -> f32

source

pub fn atanh(x: f32) -> f32

source

pub fn cbrt(x: f32) -> f32

source

pub fn ceil(x: f32) -> f32

source

pub fn copysign(x: f32, y: f32) -> f32

source

pub fn cos(x: f32) -> f32

source

pub fn cosh(x: f32) -> f32

source

pub fn erf(x: f32) -> f32

source

pub fn erfc(x: f32) -> f32

source

pub fn exp(x: f32) -> f32

source

pub fn exp2(x: f32) -> f32

source

pub fn exp10(x: f32) -> f32

source

pub fn expm1(x: f32) -> f32

source

pub fn fabs(x: f32) -> f32

source

pub fn fdim(x: f32, y: f32) -> f32

source

pub fn floor(x: f32) -> f32

source

pub fn fma(x: f32, y: f32, z: f32) -> f32

source

pub fn fmax(x: f32, y: f32) -> f32

source

pub fn fmin(x: f32, y: f32) -> f32

source

pub fn fmod(x: f32, y: f32) -> f32

source

pub fn frexp(x: f32) -> (f32, i32)

source

pub fn hypot(x: f32, y: f32) -> f32

source

pub fn ilogb(x: f32) -> i32

source

pub fn j0(x: f32) -> f32

source

pub fn j1(x: f32) -> f32

source

pub fn jn(n: i32, x: f32) -> f32

source

pub fn ldexp(x: f32, n: i32) -> f32

source

pub fn lgamma_r(x: f32) -> (f32, i32)

source

pub fn lgamma(x: f32) -> f32

source

pub fn log(x: f32) -> f32

source

pub fn log1p(x: f32) -> f32

source

pub fn log2(x: f32) -> f32

source

pub fn log10(x: f32) -> f32

source

pub fn modf(x: f32) -> (f32, f32)

source

pub fn nextafter(x: f32, y: f32) -> f32

source

pub fn pow(x: f32, y: f32) -> f32

source

pub fn remainder(x: f32, y: f32) -> f32

source

pub fn remquo(x: f32, y: f32) -> (f32, i32)

source

pub fn rint(x: f32) -> f32

source

pub fn round(x: f32) -> f32

source

pub fn scalbn(x: f32, n: i32) -> f32

source

pub fn sin(x: f32) -> f32

source

pub fn sincos(x: f32) -> (f32, f32)

source

pub fn sinh(x: f32) -> f32

source

pub fn sqrt(x: f32) -> f32

source

pub fn tan(x: f32) -> f32

source

pub fn tanh(x: f32) -> f32

source

pub fn tgamma(x: f32) -> f32

source

pub fn trunc(x: f32) -> f32

source

pub fn y0(x: f32) -> f32

source

pub fn y1(x: f32) -> f32

source

pub fn yn(n: i32, x: f32) -> f32

source§

impl Libm<f64>

source

pub fn acos(x: f64) -> f64

source

pub fn acosh(x: f64) -> f64

source

pub fn asin(x: f64) -> f64

source

pub fn asinh(x: f64) -> f64

source

pub fn atan(x: f64) -> f64

source

pub fn atan2(y: f64, x: f64) -> f64

source

pub fn atanh(x: f64) -> f64

source

pub fn cbrt(x: f64) -> f64

source

pub fn ceil(x: f64) -> f64

source

pub fn copysign(x: f64, y: f64) -> f64

source

pub fn cos(x: f64) -> f64

source

pub fn cosh(x: f64) -> f64

source

pub fn erf(x: f64) -> f64

source

pub fn erfc(x: f64) -> f64

source

pub fn exp(x: f64) -> f64

source

pub fn exp2(x: f64) -> f64

source

pub fn exp10(x: f64) -> f64

source

pub fn expm1(x: f64) -> f64

source

pub fn fabs(x: f64) -> f64

source

pub fn fdim(x: f64, y: f64) -> f64

source

pub fn floor(x: f64) -> f64

source

pub fn fma(x: f64, y: f64, z: f64) -> f64

source

pub fn fmax(x: f64, y: f64) -> f64

source

pub fn fmin(x: f64, y: f64) -> f64

source

pub fn fmod(x: f64, y: f64) -> f64

source

pub fn frexp(x: f64) -> (f64, i32)

source

pub fn hypot(x: f64, y: f64) -> f64

source

pub fn ilogb(x: f64) -> i32

source

pub fn j0(x: f64) -> f64

source

pub fn j1(x: f64) -> f64

source

pub fn jn(n: i32, x: f64) -> f64

source

pub fn ldexp(x: f64, n: i32) -> f64

source

pub fn lgamma_r(x: f64) -> (f64, i32)

source

pub fn lgamma(x: f64) -> f64

source

pub fn log(x: f64) -> f64

source

pub fn log1p(x: f64) -> f64

source

pub fn log2(x: f64) -> f64

source

pub fn log10(x: f64) -> f64

source

pub fn modf(x: f64) -> (f64, f64)

source

pub fn nextafter(x: f64, y: f64) -> f64

source

pub fn pow(x: f64, y: f64) -> f64

source

pub fn remainder(x: f64, y: f64) -> f64

source

pub fn remquo(x: f64, y: f64) -> (f64, i32)

source

pub fn rint(x: f64) -> f64

source

pub fn round(x: f64) -> f64

source

pub fn scalbn(x: f64, n: i32) -> f64

source

pub fn sin(x: f64) -> f64

source

pub fn sincos(x: f64) -> (f64, f64)

source

pub fn sinh(x: f64) -> f64

source

pub fn sqrt(x: f64) -> f64

source

pub fn tan(x: f64) -> f64

source

pub fn tanh(x: f64) -> f64

source

pub fn tgamma(x: f64) -> f64

source

pub fn trunc(x: f64) -> f64

source

pub fn y0(x: f64) -> f64

source

pub fn y1(x: f64) -> f64

source

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> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.