Trait rin::math::UlpsEq[][src]

pub trait UlpsEq<Rhs = Self>: AbsDiffEq<Rhs> where
    Rhs: ?Sized
{ pub fn default_max_ulps() -> u32;
pub fn ulps_eq(
        &self,
        other: &Rhs,
        epsilon: Self::Epsilon,
        max_ulps: u32
    ) -> bool; pub fn ulps_ne(
        &self,
        other: &Rhs,
        epsilon: Self::Epsilon,
        max_ulps: u32
    ) -> bool { ... } }

Equality comparisons between two numbers using both the absolute difference and ULPs (Units in Last Place) based comparisons.

Required methods

pub fn default_max_ulps() -> u32[src]

The default ULPs to tolerate when testing values that are far-apart.

This is used when no max_ulps value is supplied to the [ulps_eq] macro.

pub fn ulps_eq(
    &self,
    other: &Rhs,
    epsilon: Self::Epsilon,
    max_ulps: u32
) -> bool
[src]

A test for equality that uses units in the last place (ULP) if the values are far apart.

Loading content...

Provided methods

pub fn ulps_ne(
    &self,
    other: &Rhs,
    epsilon: Self::Epsilon,
    max_ulps: u32
) -> bool
[src]

The inverse of UlpsEq::ulps_eq.

Loading content...

Implementations on Foreign Types

impl UlpsEq<f64> for f64[src]

impl UlpsEq<f32> for f32[src]

impl<'a, T> UlpsEq<&'a T> for &'a T where
    T: UlpsEq<T> + ?Sized
[src]

impl<A, B> UlpsEq<[B]> for [A] where
    A: UlpsEq<B>,
    <A as AbsDiffEq<B>>::Epsilon: Clone
[src]

impl<'a, T> UlpsEq<&'a mut T> for &'a mut T where
    T: UlpsEq<T> + ?Sized
[src]

impl<T> UlpsEq<Cell<T>> for Cell<T> where
    T: UlpsEq<T> + Copy
[src]

impl<T> UlpsEq<RefCell<T>> for RefCell<T> where
    T: UlpsEq<T> + ?Sized
[src]

Loading content...

Implementors

impl<N> UlpsEq<Quaternion<N>> for Quaternion<N> where
    N: RealField<Epsilon = N> + UlpsEq<N>, 
[src]

impl<N> UlpsEq<Unit<Complex<N>>> for Unit<Complex<N>> where
    N: RealField
[src]

impl<N> UlpsEq<Unit<Quaternion<N>>> for Unit<Quaternion<N>> where
    N: RealField<Epsilon = N> + UlpsEq<N>, 
[src]

impl<N, D> UlpsEq<Point<N, D>> for Point<N, D> where
    N: Scalar + UlpsEq<N>,
    D: DimName,
    DefaultAllocator: Allocator<N, D, U1>,
    <N as AbsDiffEq<N>>::Epsilon: Copy
[src]

impl<N, D> UlpsEq<Rotation<N, D>> for Rotation<N, D> where
    N: Scalar + UlpsEq<N>,
    D: DimName,
    DefaultAllocator: Allocator<N, D, D>,
    <N as AbsDiffEq<N>>::Epsilon: Copy
[src]

impl<N, D> UlpsEq<Translation<N, D>> for Translation<N, D> where
    N: Scalar + UlpsEq<N>,
    D: DimName,
    DefaultAllocator: Allocator<N, D, U1>,
    <N as AbsDiffEq<N>>::Epsilon: Copy
[src]

impl<N, D, C> UlpsEq<Transform<N, D, C>> for Transform<N, D, C> where
    C: TCategory,
    N: RealField,
    D: DimNameAdd<U1>,
    <N as AbsDiffEq<N>>::Epsilon: Copy,
    DefaultAllocator: Allocator<N, <D as DimNameAdd<U1>>::Output, <D as DimNameAdd<U1>>::Output>, 
[src]

impl<N, D, R> UlpsEq<Isometry<N, D, R>> for Isometry<N, D, R> where
    N: RealField,
    D: DimName,
    R: AbstractRotation<N, D> + UlpsEq<R, Epsilon = <N as AbsDiffEq<N>>::Epsilon>,
    DefaultAllocator: Allocator<N, D, U1>,
    <N as AbsDiffEq<N>>::Epsilon: Copy
[src]

impl<N, D, R> UlpsEq<Similarity<N, D, R>> for Similarity<N, D, R> where
    N: RealField,
    D: DimName,
    R: AbstractRotation<N, D> + UlpsEq<R, Epsilon = <N as AbsDiffEq<N>>::Epsilon>,
    DefaultAllocator: Allocator<N, D, U1>,
    <N as AbsDiffEq<N>>::Epsilon: Copy
[src]

impl<N, R, C, S> UlpsEq<Matrix<N, R, C, S>> for Matrix<N, R, C, S> where
    C: Dim,
    N: Scalar + UlpsEq<N>,
    R: Dim,
    S: Storage<N, R, C>,
    <N as AbsDiffEq<N>>::Epsilon: Copy
[src]

impl<N, R, C, S> UlpsEq<Unit<Matrix<N, R, C, S>>> for Unit<Matrix<N, R, C, S>> where
    C: Dim,
    N: Scalar + UlpsEq<N>,
    R: Dim,
    S: Storage<N, R, C>,
    <N as AbsDiffEq<N>>::Epsilon: Copy
[src]

Loading content...