Struct approx::Ulps [] [src]

pub struct Ulps<'a, T: 'a + ApproxEq> {
    pub lhs: &'a T,
    pub rhs: &'a T,
    pub epsilon: T::Epsilon,
    pub max_ulps: u32,
}

The requisite parameters for testing for approximate equality.

Fields

lhs: &'a T

The left-hand side of the approximate equality comparison.

rhs: &'a T

The right-hand side of the approximate equality comparison.

epsilon: T::Epsilon

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

max_ulps: u32

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

Methods

impl<'a, T> Ulps<'a, T> where T: ApproxEq
[src]

fn new(lhs: &'a T, rhs: &'a T) -> Ulps<'a, T>

The beginning of a chained equality expression, using an ULPs based comparison.

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

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

fn epsilon(self, epsilon: T::Epsilon) -> Ulps<'a, T>

Replace the epsilon value with the one specified.

fn max_ulps(self, max_ulps: u32) -> Ulps<'a, T>

Replace the max ulps value with the one specified.

fn eq(self) -> bool

Peform the equality comparison

fn ne(self) -> bool

Peform the inequality comparison