Trait UlpsEq

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

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

Required Methods§

Source

fn default_max_ulps() -> u32

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.

Source

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

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

Provided Methods§

Source

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

The inverse of UlpsEq::ulps_eq.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl UlpsEq for f32

Source§

fn default_max_ulps() -> u32

Source§

fn ulps_eq(&self, other: &f32, epsilon: f32, max_ulps: u32) -> bool

Source§

impl UlpsEq for f64

Source§

fn default_max_ulps() -> u32

Source§

fn ulps_eq(&self, other: &f64, epsilon: f64, max_ulps: u32) -> bool

Source§

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

Source§

fn default_max_ulps() -> u32

Source§

fn ulps_eq( &self, other: &&'a T, epsilon: <T as AbsDiffEq>::Epsilon, max_ulps: u32, ) -> bool

Source§

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

Source§

fn default_max_ulps() -> u32

Source§

fn ulps_eq( &self, other: &&'a mut T, epsilon: <T as AbsDiffEq>::Epsilon, max_ulps: u32, ) -> bool

Source§

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

Source§

fn default_max_ulps() -> u32

Source§

fn ulps_eq( &self, other: &[B], epsilon: <A as AbsDiffEq<B>>::Epsilon, max_ulps: u32, ) -> bool

Source§

impl<T> UlpsEq for Cell<T>
where T: UlpsEq + Copy,

Source§

fn default_max_ulps() -> u32

Source§

fn ulps_eq( &self, other: &Cell<T>, epsilon: <T as AbsDiffEq>::Epsilon, max_ulps: u32, ) -> bool

Source§

impl<T> UlpsEq for RefCell<T>
where T: UlpsEq + ?Sized,

Source§

fn default_max_ulps() -> u32

Source§

fn ulps_eq( &self, other: &RefCell<T>, epsilon: <T as AbsDiffEq>::Epsilon, max_ulps: u32, ) -> bool

Implementors§

Source§

impl<A: Angle> UlpsEq for Euler<A>

Source§

impl<S, R, E: BaseFloat> UlpsEq for Decomposed<S, R>
where S: UlpsEq<Epsilon = E> + VectorSpace, S::Scalar: UlpsEq<Epsilon = E>, R: UlpsEq<Epsilon = E>,

Source§

impl<S: BaseFloat> UlpsEq for Basis2<S>

Source§

impl<S: BaseFloat> UlpsEq for Basis3<S>

Source§

impl<S: BaseFloat> UlpsEq for Deg<S>

Source§

impl<S: BaseFloat> UlpsEq for Matrix2<S>

Source§

impl<S: BaseFloat> UlpsEq for Matrix3<S>

Source§

impl<S: BaseFloat> UlpsEq for Matrix4<S>

Source§

impl<S: BaseFloat> UlpsEq for Point1<S>

Source§

impl<S: BaseFloat> UlpsEq for Point2<S>

Source§

impl<S: BaseFloat> UlpsEq for Point3<S>

Source§

impl<S: BaseFloat> UlpsEq for Quaternion<S>

Source§

impl<S: BaseFloat> UlpsEq for Rad<S>

Source§

impl<S: BaseFloat> UlpsEq for Vector1<S>

Source§

impl<S: BaseFloat> UlpsEq for Vector2<S>

Source§

impl<S: BaseFloat> UlpsEq for Vector3<S>

Source§

impl<S: BaseFloat> UlpsEq for Vector4<S>