pub struct Interval {
pub lo: Poly,
pub hi: Poly,
}Expand description
A closed range $[\text{lo}, \text{hi}]$ with Poly endpoints.
Fields§
§lo: Poly§hi: PolyImplementations§
Source§impl Interval
impl Interval
pub fn new(lo: Poly, hi: Poly) -> Self
pub fn is_exact(&self) -> bool
Sourcepub fn is_nonneg(&self, nonneg: &dyn Fn(Var) -> bool) -> bool
pub fn is_nonneg(&self, nonneg: &dyn Fn(Var) -> bool) -> bool
Every value in the range is non-negative, given non-negative variables.
Sourcepub fn is_nonpos(&self, nonneg: &dyn Fn(Var) -> bool) -> bool
pub fn is_nonpos(&self, nonneg: &dyn Fn(Var) -> bool) -> bool
Every value in the range is non-positive, given non-negative variables.
pub fn add(&self, rhs: &Self) -> Self
pub fn neg(&self) -> Self
pub fn sub(&self, rhs: &Self) -> Self
pub fn mul_scalar<T: Into<Coef>>(&self, c: T) -> Self
Sourcepub fn scale(&self, p: &Poly, nonneg: &dyn Fn(Var) -> bool) -> Option<Self>
pub fn scale(&self, p: &Poly, nonneg: &dyn Fn(Var) -> bool) -> Option<Self>
Multiply by a polynomial whose sign is known.
Sourcepub fn mul(&self, rhs: &Self, nonneg: &dyn Fn(Var) -> bool) -> Option<Self>
pub fn mul(&self, rhs: &Self, nonneg: &dyn Fn(Var) -> bool) -> Option<Self>
The product of two ranges, when the sign of each is known. The product of two exact values is exact regardless.
pub fn pow(&self, e: Pow, nonneg: &dyn Fn(Var) -> bool) -> Self
Trait Implementations§
impl Eq for Interval
impl StructuralPartialEq for Interval
Auto Trait Implementations§
impl Freeze for Interval
impl RefUnwindSafe for Interval
impl Send for Interval
impl Sync for Interval
impl Unpin for Interval
impl UnsafeUnpin for Interval
impl UnwindSafe for Interval
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more