pub struct Dbm<B: Bound, L: Layout<B> = LinearLayout<B>> { /* private fields */ }Expand description
An implementation of Zone as difference bound matrix.
Uses LinearLayout as the default storage layout.
Trait Implementations§
Source§impl<B: Bound, L: Layout<B>> Zone for Dbm<B, L>
impl<B: Bound, L: Layout<B>> Zone for Dbm<B, L>
type Bound = B
Source§fn new_unconstrained(num_variables: usize) -> Self
fn new_unconstrained(num_variables: usize) -> Self
Constructs a new zone without any constraints besides clocks being positive.
Source§fn new_zero(num_variables: usize) -> Self
fn new_zero(num_variables: usize) -> Self
Constructs a new zone where all clocks are set to zero.
Source§fn with_constraints<U>(num_variables: usize, constraints: U) -> Selfwhere
U: IntoIterator<Item = Constraint<B>>,
fn with_constraints<U>(num_variables: usize, constraints: U) -> Selfwhere
U: IntoIterator<Item = Constraint<B>>,
Constructs a new zone from the given iterable of constraints.
Source§fn num_variables(&self) -> usize
fn num_variables(&self) -> usize
Returns the number of clock variables of this zone.
Source§fn num_clocks(&self) -> usize
fn num_clocks(&self) -> usize
Returns the number of clocks of this zone. Read more
Source§fn get_bound(&self, left: impl AnyClock, right: impl AnyClock) -> &B
fn get_bound(&self, left: impl AnyClock, right: impl AnyClock) -> &B
Retrieves the difference bound for
left - right.Source§fn add_constraint(&mut self, constraint: Constraint<B>)
fn add_constraint(&mut self, constraint: Constraint<B>)
Adds a constraint to the zone.
Source§fn add_constraints<U>(&mut self, constraints: U)where
U: IntoIterator<Item = Constraint<B>>,
fn add_constraints<U>(&mut self, constraints: U)where
U: IntoIterator<Item = Constraint<B>>,
Adds all constraints from the given iterable to the zone.
Source§fn reset(&mut self, clock: Variable, value: B::Constant)
fn reset(&mut self, clock: Variable, value: B::Constant)
Resets the given clock variable to the specified constant.
Source§fn is_unbounded(&self, clock: impl AnyClock) -> bool
fn is_unbounded(&self, clock: impl AnyClock) -> bool
Checks whether the value of the given clock is unbounded.
Source§fn get_upper_bound(&self, clock: impl AnyClock) -> Option<B::Constant>
fn get_upper_bound(&self, clock: impl AnyClock) -> Option<B::Constant>
Returns the upper bound for the value of the given clock.
Source§fn get_lower_bound(&self, clock: impl AnyClock) -> Option<B::Constant>
fn get_lower_bound(&self, clock: impl AnyClock) -> Option<B::Constant>
Returns the lower bound for the value of the given clock.
Source§fn is_satisfied(&self, constraint: Constraint<B>) -> bool
fn is_satisfied(&self, constraint: Constraint<B>) -> bool
Checks whether the given constraint is satisfied by the zone.
impl<B: Eq + Bound, L: Eq + Layout<B>> Eq for Dbm<B, L>
impl<B: Bound, L: Layout<B>> StructuralPartialEq for Dbm<B, L>
Auto Trait Implementations§
impl<B, L> Freeze for Dbm<B, L>where
L: Freeze,
impl<B, L> RefUnwindSafe for Dbm<B, L>where
L: RefUnwindSafe,
B: RefUnwindSafe,
impl<B, L> Send for Dbm<B, L>
impl<B, L> Sync for Dbm<B, L>
impl<B, L> Unpin for Dbm<B, L>
impl<B, L> UnwindSafe for Dbm<B, L>where
L: UnwindSafe,
B: UnwindSafe,
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