[−][src]Trait float_eq::FloatEqUlpsEpsilon
Per-field thresholds for ULPs based 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-based equality checks to specify
per-field thresholds. The UlpsEpsilon type alias exists to simplify
usage, for example UlpsEpsilon<f32> is u32. Usually, this type is named
FooUlps for a given type Foo.
Derivable
This trait can be used with #[derive]. The easiest way to do so is to use the
#[derive_float_eq] helper macro, see the top
level docs for example usage.
If you wish to derive this trait by itself, you will need to use a #[float_eq]
attribute and provide ulps_epsilon, which will be used as the name of a new
type. This type will be structurally identical to the type being derived, using
the same visibility as the parent type and with identically named fields that
use the derived fields' types wrapped by UlpsEpsilon. The new struct derives
Debug, Clone, Copy and PartialEq. This trait may not be derived for enums
or generic structs at present.
#[derive(Debug, Clone, Copy, PartialEq, FloatEqUlpsEpsilon)] #[float_eq(ulps_epsilon = "PointUlps")] struct Point { x: f64, y: f64, } assert_eq!( PointUlps { x: 1, y: 2 }, UlpsEpsilon::<Point> { x: 1, y: 2 } );
How can I implement FloatEqUlpsEpsilon?
Types should provide an UlpsEpsilon representation for each of their fields:
#[derive(Debug, Clone, Copy, PartialEq)] struct Point { x: f64, y: f64, } #[derive(Debug, Clone, Copy, PartialEq)] struct PointUlps { x: UlpsEpsilon<f64>, y: UlpsEpsilon<f64>, } impl FloatEqUlpsEpsilon for Point { type UlpsEpsilon = PointUlps; } assert_eq!( PointUlps { x: 1, y: 2 }, UlpsEpsilon::<Point> { x: 1, y: 2 } );
Associated Types
type UlpsEpsilon: ?Sized
A structurally identical type to Self, with fields recursively wrapped
by UlpsEpsilon.
Implementations on Foreign Types
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 0] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 0]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 1] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 1]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 2] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 2]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 3] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 3]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 4] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 4]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 5] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 5]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 6] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 6]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 7] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 7]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 8] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 8]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 9] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 9]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 10] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 10]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 11] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 11]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 12] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 12]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 13] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 13]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 14] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 14]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 15] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 15]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 16] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 16]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 17] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 17]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 18] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 18]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 19] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 19]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 20] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 20]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 21] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 21]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 22] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 22]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 23] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 23]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 24] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 24]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 25] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 25]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 26] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 26]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 27] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 27]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 28] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 28]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 29] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 29]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 30] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 30]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 31] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 31]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T; 32] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>; 32]
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for Option<T> where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = Option<UlpsEpsilon<T>>
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for [T] where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = [UlpsEpsilon<T>]
impl FloatEqUlpsEpsilon for f32[src]
type UlpsEpsilon = u32
impl FloatEqUlpsEpsilon for f64[src]
type UlpsEpsilon = u64
impl FloatEqUlpsEpsilon for ()[src]
type UlpsEpsilon = ()
impl<A> FloatEqUlpsEpsilon for (A,) where
A: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized, [src]
A: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
type UlpsEpsilon = (UlpsEpsilon<A>,)
impl<A: FloatEqUlpsEpsilon, B> FloatEqUlpsEpsilon for (A, B) where
B: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized, [src]
B: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
type UlpsEpsilon = (UlpsEpsilon<A>, UlpsEpsilon<B>)
impl<A: FloatEqUlpsEpsilon, B: FloatEqUlpsEpsilon, C> FloatEqUlpsEpsilon for (A, B, C) where
C: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized, [src]
C: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
type UlpsEpsilon = (UlpsEpsilon<A>, UlpsEpsilon<B>, UlpsEpsilon<C>)
impl<A: FloatEqUlpsEpsilon, B: FloatEqUlpsEpsilon, C: FloatEqUlpsEpsilon, D> FloatEqUlpsEpsilon for (A, B, C, D) where
D: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized, [src]
D: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
type UlpsEpsilon = (UlpsEpsilon<A>, UlpsEpsilon<B>, UlpsEpsilon<C>, UlpsEpsilon<D>)
impl<A: FloatEqUlpsEpsilon, B: FloatEqUlpsEpsilon, C: FloatEqUlpsEpsilon, D: FloatEqUlpsEpsilon, E> FloatEqUlpsEpsilon for (A, B, C, D, E) where
E: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
UlpsEpsilon<E>: Sized, [src]
E: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
UlpsEpsilon<E>: Sized,
type UlpsEpsilon = (UlpsEpsilon<A>, UlpsEpsilon<B>, UlpsEpsilon<C>, UlpsEpsilon<D>, UlpsEpsilon<E>)
impl<A: FloatEqUlpsEpsilon, B: FloatEqUlpsEpsilon, C: FloatEqUlpsEpsilon, D: FloatEqUlpsEpsilon, E: FloatEqUlpsEpsilon, F> FloatEqUlpsEpsilon for (A, B, C, D, E, F) where
F: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
UlpsEpsilon<E>: Sized,
UlpsEpsilon<F>: Sized, [src]
F: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
UlpsEpsilon<E>: Sized,
UlpsEpsilon<F>: Sized,
type UlpsEpsilon = (UlpsEpsilon<A>, UlpsEpsilon<B>, UlpsEpsilon<C>, UlpsEpsilon<D>, UlpsEpsilon<E>, UlpsEpsilon<F>)
impl<A: FloatEqUlpsEpsilon, B: FloatEqUlpsEpsilon, C: FloatEqUlpsEpsilon, D: FloatEqUlpsEpsilon, E: FloatEqUlpsEpsilon, F: FloatEqUlpsEpsilon, G> FloatEqUlpsEpsilon for (A, B, C, D, E, F, G) where
G: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
UlpsEpsilon<E>: Sized,
UlpsEpsilon<F>: Sized,
UlpsEpsilon<G>: Sized, [src]
G: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
UlpsEpsilon<E>: Sized,
UlpsEpsilon<F>: Sized,
UlpsEpsilon<G>: Sized,
type UlpsEpsilon = (UlpsEpsilon<A>, UlpsEpsilon<B>, UlpsEpsilon<C>, UlpsEpsilon<D>, UlpsEpsilon<E>, UlpsEpsilon<F>, UlpsEpsilon<G>)
impl<A: FloatEqUlpsEpsilon, B: FloatEqUlpsEpsilon, C: FloatEqUlpsEpsilon, D: FloatEqUlpsEpsilon, E: FloatEqUlpsEpsilon, F: FloatEqUlpsEpsilon, G: FloatEqUlpsEpsilon, H> FloatEqUlpsEpsilon for (A, B, C, D, E, F, G, H) where
H: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
UlpsEpsilon<E>: Sized,
UlpsEpsilon<F>: Sized,
UlpsEpsilon<G>: Sized,
UlpsEpsilon<H>: Sized, [src]
H: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
UlpsEpsilon<E>: Sized,
UlpsEpsilon<F>: Sized,
UlpsEpsilon<G>: Sized,
UlpsEpsilon<H>: Sized,
type UlpsEpsilon = (UlpsEpsilon<A>, UlpsEpsilon<B>, UlpsEpsilon<C>, UlpsEpsilon<D>, UlpsEpsilon<E>, UlpsEpsilon<F>, UlpsEpsilon<G>, UlpsEpsilon<H>)
impl<A: FloatEqUlpsEpsilon, B: FloatEqUlpsEpsilon, C: FloatEqUlpsEpsilon, D: FloatEqUlpsEpsilon, E: FloatEqUlpsEpsilon, F: FloatEqUlpsEpsilon, G: FloatEqUlpsEpsilon, H: FloatEqUlpsEpsilon, I> FloatEqUlpsEpsilon for (A, B, C, D, E, F, G, H, I) where
I: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
UlpsEpsilon<E>: Sized,
UlpsEpsilon<F>: Sized,
UlpsEpsilon<G>: Sized,
UlpsEpsilon<H>: Sized,
UlpsEpsilon<I>: Sized, [src]
I: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
UlpsEpsilon<E>: Sized,
UlpsEpsilon<F>: Sized,
UlpsEpsilon<G>: Sized,
UlpsEpsilon<H>: Sized,
UlpsEpsilon<I>: Sized,
type UlpsEpsilon = (UlpsEpsilon<A>, UlpsEpsilon<B>, UlpsEpsilon<C>, UlpsEpsilon<D>, UlpsEpsilon<E>, UlpsEpsilon<F>, UlpsEpsilon<G>, UlpsEpsilon<H>, UlpsEpsilon<I>)
impl<A: FloatEqUlpsEpsilon, B: FloatEqUlpsEpsilon, C: FloatEqUlpsEpsilon, D: FloatEqUlpsEpsilon, E: FloatEqUlpsEpsilon, F: FloatEqUlpsEpsilon, G: FloatEqUlpsEpsilon, H: FloatEqUlpsEpsilon, I: FloatEqUlpsEpsilon, J> FloatEqUlpsEpsilon for (A, B, C, D, E, F, G, H, I, J) where
J: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
UlpsEpsilon<E>: Sized,
UlpsEpsilon<F>: Sized,
UlpsEpsilon<G>: Sized,
UlpsEpsilon<H>: Sized,
UlpsEpsilon<I>: Sized,
UlpsEpsilon<J>: Sized, [src]
J: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
UlpsEpsilon<E>: Sized,
UlpsEpsilon<F>: Sized,
UlpsEpsilon<G>: Sized,
UlpsEpsilon<H>: Sized,
UlpsEpsilon<I>: Sized,
UlpsEpsilon<J>: Sized,
type UlpsEpsilon = (UlpsEpsilon<A>, UlpsEpsilon<B>, UlpsEpsilon<C>, UlpsEpsilon<D>, UlpsEpsilon<E>, UlpsEpsilon<F>, UlpsEpsilon<G>, UlpsEpsilon<H>, UlpsEpsilon<I>, UlpsEpsilon<J>)
impl<A: FloatEqUlpsEpsilon, B: FloatEqUlpsEpsilon, C: FloatEqUlpsEpsilon, D: FloatEqUlpsEpsilon, E: FloatEqUlpsEpsilon, F: FloatEqUlpsEpsilon, G: FloatEqUlpsEpsilon, H: FloatEqUlpsEpsilon, I: FloatEqUlpsEpsilon, J: FloatEqUlpsEpsilon, K> FloatEqUlpsEpsilon for (A, B, C, D, E, F, G, H, I, J, K) where
K: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
UlpsEpsilon<E>: Sized,
UlpsEpsilon<F>: Sized,
UlpsEpsilon<G>: Sized,
UlpsEpsilon<H>: Sized,
UlpsEpsilon<I>: Sized,
UlpsEpsilon<J>: Sized,
UlpsEpsilon<K>: Sized, [src]
K: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
UlpsEpsilon<E>: Sized,
UlpsEpsilon<F>: Sized,
UlpsEpsilon<G>: Sized,
UlpsEpsilon<H>: Sized,
UlpsEpsilon<I>: Sized,
UlpsEpsilon<J>: Sized,
UlpsEpsilon<K>: Sized,
type UlpsEpsilon = (UlpsEpsilon<A>, UlpsEpsilon<B>, UlpsEpsilon<C>, UlpsEpsilon<D>, UlpsEpsilon<E>, UlpsEpsilon<F>, UlpsEpsilon<G>, UlpsEpsilon<H>, UlpsEpsilon<I>, UlpsEpsilon<J>, UlpsEpsilon<K>)
impl<A: FloatEqUlpsEpsilon, B: FloatEqUlpsEpsilon, C: FloatEqUlpsEpsilon, D: FloatEqUlpsEpsilon, E: FloatEqUlpsEpsilon, F: FloatEqUlpsEpsilon, G: FloatEqUlpsEpsilon, H: FloatEqUlpsEpsilon, I: FloatEqUlpsEpsilon, J: FloatEqUlpsEpsilon, K: FloatEqUlpsEpsilon, L> FloatEqUlpsEpsilon for (A, B, C, D, E, F, G, H, I, J, K, L) where
L: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
UlpsEpsilon<E>: Sized,
UlpsEpsilon<F>: Sized,
UlpsEpsilon<G>: Sized,
UlpsEpsilon<H>: Sized,
UlpsEpsilon<I>: Sized,
UlpsEpsilon<J>: Sized,
UlpsEpsilon<K>: Sized,
UlpsEpsilon<L>: Sized, [src]
L: FloatEqUlpsEpsilon + ?Sized,
UlpsEpsilon<A>: Sized,
UlpsEpsilon<B>: Sized,
UlpsEpsilon<C>: Sized,
UlpsEpsilon<D>: Sized,
UlpsEpsilon<E>: Sized,
UlpsEpsilon<F>: Sized,
UlpsEpsilon<G>: Sized,
UlpsEpsilon<H>: Sized,
UlpsEpsilon<I>: Sized,
UlpsEpsilon<J>: Sized,
UlpsEpsilon<K>: Sized,
UlpsEpsilon<L>: Sized,
type UlpsEpsilon = (UlpsEpsilon<A>, UlpsEpsilon<B>, UlpsEpsilon<C>, UlpsEpsilon<D>, UlpsEpsilon<E>, UlpsEpsilon<F>, UlpsEpsilon<G>, UlpsEpsilon<H>, UlpsEpsilon<I>, UlpsEpsilon<J>, UlpsEpsilon<K>, UlpsEpsilon<L>)
impl<T: ?Sized + FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for Arc<T>[src]
type UlpsEpsilon = Arc<UlpsEpsilon<T>>
impl<T: ?Sized + FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for Box<T>[src]
type UlpsEpsilon = Box<UlpsEpsilon<T>>
impl<T: ?Sized + FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for Rc<T>[src]
type UlpsEpsilon = Rc<UlpsEpsilon<T>>
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for Vec<T> where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = Vec<UlpsEpsilon<T>>
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for VecDeque<T> where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = VecDeque<UlpsEpsilon<T>>
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for LinkedList<T> where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,
type UlpsEpsilon = LinkedList<UlpsEpsilon<T>>
impl<K, V, S> FloatEqUlpsEpsilon for HashMap<K, V, S> where
V: FloatEqUlpsEpsilon,
UlpsEpsilon<V>: Sized, [src]
V: FloatEqUlpsEpsilon,
UlpsEpsilon<V>: Sized,
type UlpsEpsilon = HashMap<K, UlpsEpsilon<V>, S>
impl<K, V> FloatEqUlpsEpsilon for BTreeMap<K, V> where
V: FloatEqUlpsEpsilon,
UlpsEpsilon<V>: Sized, [src]
V: FloatEqUlpsEpsilon,
UlpsEpsilon<V>: Sized,
type UlpsEpsilon = BTreeMap<K, UlpsEpsilon<V>>
impl<T: FloatEqUlpsEpsilon> FloatEqUlpsEpsilon for Complex<T> where
UlpsEpsilon<T>: Sized, [src]
UlpsEpsilon<T>: Sized,