FloatEqUlpsTol

Trait FloatEqUlpsTol 

Source
pub trait FloatEqUlpsTol {
    type UlpsTol: ?Sized;
}
Expand description

Per-field tolerances for ULPs comparisons.

This trait establishes a one-to-one relation between an IEEE floating point type and a type whose fields are expected to be structurally identical but specified in ULPs. It is used by ULPs equality checks to specify per-field tolerances.

By convention, this type is named FooUlps for a given type Foo.

The UlpsTol type alias exists to simplify usage, for example UlpsTol<f32> is u32.

To implement this trait over a new type, see How to compare custom types.

Required Associated Types§

Source

type UlpsTol: ?Sized

A structurally identical type to Self, with fields recursively wrapped by UlpsTol.

Implementations on Foreign Types§

Source§

impl FloatEqUlpsTol for f32

Source§

impl FloatEqUlpsTol for f64

Source§

impl FloatEqUlpsTol for ()

Source§

impl<A> FloatEqUlpsTol for (A,)
where A: ?Sized + FloatEqUlpsTol, UlpsTol<A>: Sized,

Source§

impl<A: FloatEqUlpsTol, B> FloatEqUlpsTol for (A, B)

Source§

impl<A: FloatEqUlpsTol, B: FloatEqUlpsTol, C> FloatEqUlpsTol for (A, B, C)

Source§

impl<A: FloatEqUlpsTol, B: FloatEqUlpsTol, C: FloatEqUlpsTol, D> FloatEqUlpsTol for (A, B, C, D)

Source§

impl<A: FloatEqUlpsTol, B: FloatEqUlpsTol, C: FloatEqUlpsTol, D: FloatEqUlpsTol, E> FloatEqUlpsTol for (A, B, C, D, E)

Source§

impl<A: FloatEqUlpsTol, B: FloatEqUlpsTol, C: FloatEqUlpsTol, D: FloatEqUlpsTol, E: FloatEqUlpsTol, F> FloatEqUlpsTol for (A, B, C, D, E, F)

Source§

impl<A: FloatEqUlpsTol, B: FloatEqUlpsTol, C: FloatEqUlpsTol, D: FloatEqUlpsTol, E: FloatEqUlpsTol, F: FloatEqUlpsTol, G> FloatEqUlpsTol for (A, B, C, D, E, F, G)

Source§

impl<A: FloatEqUlpsTol, B: FloatEqUlpsTol, C: FloatEqUlpsTol, D: FloatEqUlpsTol, E: FloatEqUlpsTol, F: FloatEqUlpsTol, G: FloatEqUlpsTol, H> FloatEqUlpsTol for (A, B, C, D, E, F, G, H)

Source§

impl<A: FloatEqUlpsTol, B: FloatEqUlpsTol, C: FloatEqUlpsTol, D: FloatEqUlpsTol, E: FloatEqUlpsTol, F: FloatEqUlpsTol, G: FloatEqUlpsTol, H: FloatEqUlpsTol, I> FloatEqUlpsTol for (A, B, C, D, E, F, G, H, I)

Source§

impl<A: FloatEqUlpsTol, B: FloatEqUlpsTol, C: FloatEqUlpsTol, D: FloatEqUlpsTol, E: FloatEqUlpsTol, F: FloatEqUlpsTol, G: FloatEqUlpsTol, H: FloatEqUlpsTol, I: FloatEqUlpsTol, J> FloatEqUlpsTol for (A, B, C, D, E, F, G, H, I, J)

Source§

impl<A: FloatEqUlpsTol, B: FloatEqUlpsTol, C: FloatEqUlpsTol, D: FloatEqUlpsTol, E: FloatEqUlpsTol, F: FloatEqUlpsTol, G: FloatEqUlpsTol, H: FloatEqUlpsTol, I: FloatEqUlpsTol, J: FloatEqUlpsTol, K> FloatEqUlpsTol for (A, B, C, D, E, F, G, H, I, J, K)

Source§

impl<A: FloatEqUlpsTol, B: FloatEqUlpsTol, C: FloatEqUlpsTol, D: FloatEqUlpsTol, E: FloatEqUlpsTol, F: FloatEqUlpsTol, G: FloatEqUlpsTol, H: FloatEqUlpsTol, I: FloatEqUlpsTol, J: FloatEqUlpsTol, K: FloatEqUlpsTol, L> FloatEqUlpsTol for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

impl<K, V> FloatEqUlpsTol for BTreeMap<K, V>

Source§

impl<K, V, S> FloatEqUlpsTol for HashMap<K, V, S>

Source§

impl<T: FloatEqUlpsTol> FloatEqUlpsTol for Option<T>
where UlpsTol<T>: Sized,

Source§

impl<T: FloatEqUlpsTol> FloatEqUlpsTol for [T]
where UlpsTol<T>: Sized,

Source§

impl<T: FloatEqUlpsTol> FloatEqUlpsTol for LinkedList<T>
where UlpsTol<T>: Sized,

Source§

impl<T: FloatEqUlpsTol> FloatEqUlpsTol for VecDeque<T>
where UlpsTol<T>: Sized,

Source§

impl<T: FloatEqUlpsTol> FloatEqUlpsTol for Vec<T>
where UlpsTol<T>: Sized,

Source§

impl<T: FloatEqUlpsTol> FloatEqUlpsTol for Complex<T>
where UlpsTol<T>: Sized,

Source§

impl<T: FloatEqUlpsTol, const N: usize> FloatEqUlpsTol for [T; N]
where UlpsTol<T>: Sized,

Source§

impl<T: ?Sized + FloatEqUlpsTol> FloatEqUlpsTol for Box<T>

Source§

impl<T: ?Sized + FloatEqUlpsTol> FloatEqUlpsTol for Rc<T>

Source§

impl<T: ?Sized + FloatEqUlpsTol> FloatEqUlpsTol for Arc<T>

Implementors§