Struct approx::Ulps[][src]

pub struct Ulps<T: UlpsEq + ?Sized> {
    pub epsilon: T::Epsilon,
    pub max_ulps: u32,
}

The requisite parameters for testing for approximate equality using an ULPs based comparison.

This is not normally used directly, rather via the assert_ulps_{eq|ne}! and ulps_{eq|ne}! macros.

Example

use std::f64;
use approx::Ulps;

Ulps::default().eq(&1.0, &1.0);
Ulps::default().epsilon(f64::EPSILON).eq(&1.0, &1.0);
Ulps::default().max_ulps(4).eq(&1.0, &1.0);
Ulps::default().epsilon(f64::EPSILON).max_ulps(4).eq(&1.0, &1.0);
Ulps::default().max_ulps(4).epsilon(f64::EPSILON).eq(&1.0, &1.0);

Fields

The tolerance to use when testing values that are close together.

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

Methods

impl<T: UlpsEq + ?Sized> Ulps<T>
[src]

Replace the epsilon value with the one specified.

Replace the max ulps value with the one specified.

Peform the equality comparison

Peform the inequality comparison

Trait Implementations

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

Returns the "default value" for a type. Read more

Auto Trait Implementations

impl<T: ?Sized> Send for Ulps<T> where
    <T as AbsDiffEq>::Epsilon: Send

impl<T: ?Sized> Sync for Ulps<T> where
    <T as AbsDiffEq>::Epsilon: Sync