Trait approx::RelativeEq

source ·
pub trait RelativeEq<Rhs = Self>: AbsDiffEq<Rhs>where
    Rhs: ?Sized,{
    // Required methods
    fn default_max_relative() -> Self::Epsilon;
    fn relative_eq(
        &self,
        other: &Rhs,
        epsilon: Self::Epsilon,
        max_relative: Self::Epsilon
    ) -> bool;

    // Provided method
    fn relative_ne(
        &self,
        other: &Rhs,
        epsilon: Self::Epsilon,
        max_relative: Self::Epsilon
    ) -> bool { ... }
}
Expand description

Equality comparisons between two numbers using both the absolute difference and relative based comparisons.

Required Methods§

source

fn default_max_relative() -> Self::Epsilon

The default relative tolerance for testing values that are far-apart.

This is used when no max_relative value is supplied to the [relative_eq] macro.

source

fn relative_eq( &self, other: &Rhs, epsilon: Self::Epsilon, max_relative: Self::Epsilon ) -> bool

A test for equality that uses a relative comparison if the values are far apart.

Provided Methods§

source

fn relative_ne( &self, other: &Rhs, epsilon: Self::Epsilon, max_relative: Self::Epsilon ) -> bool

The inverse of RelativeEq::relative_eq.

Implementations on Foreign Types§

source§

impl RelativeEq<f64> for f64

source§

fn default_max_relative() -> f64

source§

fn relative_eq(&self, other: &f64, epsilon: f64, max_relative: f64) -> bool

source§

impl<A, B> RelativeEq<[B]> for [A]where A: RelativeEq<B>, A::Epsilon: Clone,

source§

fn default_max_relative() -> A::Epsilon

source§

fn relative_eq( &self, other: &[B], epsilon: A::Epsilon, max_relative: A::Epsilon ) -> bool

source§

impl<'a, T: RelativeEq + ?Sized> RelativeEq<&'a T> for &'a T

source§

fn default_max_relative() -> T::Epsilon

source§

fn relative_eq( &self, other: &&'a T, epsilon: T::Epsilon, max_relative: T::Epsilon ) -> bool

source§

impl RelativeEq<f32> for f32

source§

fn default_max_relative() -> f32

source§

fn relative_eq(&self, other: &f32, epsilon: f32, max_relative: f32) -> bool

source§

impl<T: RelativeEq + Copy> RelativeEq<Cell<T>> for Cell<T>

source§

fn default_max_relative() -> T::Epsilon

source§

fn relative_eq( &self, other: &Cell<T>, epsilon: T::Epsilon, max_relative: T::Epsilon ) -> bool

source§

impl<T: RelativeEq + ?Sized> RelativeEq<RefCell<T>> for RefCell<T>

source§

fn default_max_relative() -> T::Epsilon

source§

fn relative_eq( &self, other: &RefCell<T>, epsilon: T::Epsilon, max_relative: T::Epsilon ) -> bool

source§

impl<'a, T: RelativeEq + ?Sized> RelativeEq<&'a mut T> for &'a mut T

source§

fn default_max_relative() -> T::Epsilon

source§

fn relative_eq( &self, other: &&'a mut T, epsilon: T::Epsilon, max_relative: T::Epsilon ) -> bool

Implementors§

impl<T, R: Dim, C: Dim, S> RelativeEq<Unit<Matrix<T, R, C, S>>> for Unit<Matrix<T, R, C, S>>where T: Scalar + RelativeEq, S: Storage<T, R, C>, T::Epsilon: Copy,

impl<T: Scalar + RelativeEq, const D: usize> RelativeEq<Point<T, D>> for Point<T, D>where T::Epsilon: Copy,

impl<T: RealField + RelativeEq<Epsilon = T>> RelativeEq<Quaternion<T>> for Quaternion<T>

impl<T: RealField, C: TCategory, const D: usize> RelativeEq<Transform<T, C, D>> for Transform<T, C, D>where Const<D>: DimNameAdd<U1>, T::Epsilon: Copy, DefaultAllocator: Allocator<T, DimNameSum<Const<D>, U1>, DimNameSum<Const<D>, U1>>,

impl<T, R: Dim, C: Dim, S> RelativeEq<Matrix<T, R, C, S>> for Matrix<T, R, C, S>where T: Scalar + RelativeEq, S: Storage<T, R, C>, T::Epsilon: Copy,

impl<T: RealField + RelativeEq<Epsilon = T>> RelativeEq<Unit<Quaternion<T>>> for UnitQuaternion<T>

impl<T, const D: usize> RelativeEq<Rotation<T, D>> for Rotation<T, D>where T: Scalar + RelativeEq, T::Epsilon: Copy,

impl<T: RealField + RelativeEq<Epsilon = T>> RelativeEq<DualQuaternion<T>> for DualQuaternion<T>

impl<T: Scalar + RelativeEq, const D: usize> RelativeEq<Translation<T, D>> for Translation<T, D>where T::Epsilon: Copy,

impl<T: RealField, R, const D: usize> RelativeEq<Isometry<T, R, D>> for Isometry<T, R, D>where R: AbstractRotation<T, D> + RelativeEq<Epsilon = T::Epsilon>, T::Epsilon: Copy,

impl<T: RealField, R, const D: usize> RelativeEq<Similarity<T, R, D>> for Similarity<T, R, D>where R: AbstractRotation<T, D> + RelativeEq<Epsilon = T::Epsilon>, T::Epsilon: Copy,