Skip to main content

FloatInterval

Struct FloatInterval 

Source
pub struct FloatInterval { /* private fields */ }
Expand description

A closed floating-point interval [lo, hi] with outward-rounded arithmetic.

Implements a simplified version of Moore interval arithmetic.

Implementations§

Source§

impl FloatInterval

Source

pub fn new(lo: f64, hi: f64) -> Self

Create a new interval. Panics if lo > hi.

Source

pub fn try_new(lo: f64, hi: f64) -> Option<Self>

Try to create a new interval, returning None if lo > hi.

Source

pub fn lo(self) -> f64

The lower bound.

Source

pub fn hi(self) -> f64

The upper bound.

Source

pub fn width(self) -> f64

The width hi - lo.

Source

pub fn midpoint(self) -> f64

The midpoint (lo + hi) / 2.

Source

pub fn contains(self, x: f64) -> bool

Check if x is contained in [lo, hi].

Source

pub fn add(self, other: Self) -> Self

Moore addition: [a,b] + [c,d] = [a+c, b+d].

Source

pub fn sub(self, other: Self) -> Self

Moore subtraction: [a,b] - [c,d] = [a-d, b-c].

Source

pub fn mul(self, other: Self) -> Self

Moore multiplication (four-product rule).

Source

pub fn neg(self) -> Self

Interval negation: -[a,b] = [-b, -a].

Source

pub fn intersect(self, other: Self) -> Option<Self>

Intersection of two intervals, returning None if disjoint.

Source

pub fn hull(self, other: Self) -> Self

Convex hull (smallest enclosing interval).

Source

pub fn is_subset_of(self, other: Self) -> bool

Check if self is a subset of other.

Source

pub fn abs(self) -> Self

Absolute value interval: |[a,b]|.

Source

pub fn square(self) -> Self

Square: [a,b]^2.

Source

pub fn mignitude(self) -> f64

Mignitude: min |x| for x ∈ [lo, hi].

Source

pub fn magnitude(self) -> f64

Magnitude: max |x| for x ∈ [lo, hi].

Trait Implementations§

Source§

impl Clone for FloatInterval

Source§

fn clone(&self) -> FloatInterval

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FloatInterval

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for FloatInterval

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for FloatInterval

Source§

fn eq(&self, other: &FloatInterval) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for FloatInterval

Source§

impl StructuralPartialEq for FloatInterval

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Setoid for T
where T: PartialEq,

Source§

fn equiv(&self, other: &T) -> bool

The equivalence relation.
Source§

fn refl(&self) -> bool

Reflexivity of the equivalence.
Source§

fn symm(&self, other: &Self) -> bool

Symmetry: if self ~ other then other ~ self.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.