A timed condition, a finite conjunction of inequalities of the form \(\tau_{i} + \tau_{i + 1} \dots \tau_{j} \bowtie c\), where \({\bowtie} \in \{>,\ge,\le,<\}\) and \(c \in \mathbb{N} \).
More...
|
| TimedCondition (const std::vector< double > &accumulatedDuration) |
| Construct a timed condition from concrete values of T_{i,j}. The generated timed condition is the simple timed condition containing the given concrete valuation. More...
|
|
size_t | size () const |
| Return the number of the variables in this timed condition.
|
|
bool | isSimple () const |
| Returns if this timed condition is simple. More...
|
|
TimedCondition | operator+ (const TimedCondition &another) const |
| Concatenate two timed conditions. More...
|
|
JuxtaposedZone | operator^ (const TimedCondition &another) const |
| Juxtapose two timed conditions. More...
|
|
JuxtaposedZone | juxtaposeRight (const TimedCondition &right, Eigen::Index commonVariableSize) const |
| Juxtapose two timed conditions renaming variable. More...
|
|
JuxtaposedZone | juxtaposeLeft (const TimedCondition &left, Eigen::Index commonVariableSize) const |
| Juxtapose two timed conditions renaming variable. More...
|
|
Bounds | getLowerBound (std::size_t i, std::size_t j) const |
| Returns the lower bound of \(\tau_i + \tau_{i+1} + \dots \tau_{j} \).
|
|
Bounds | getUpperBound (std::size_t i, std::size_t j) const |
| Returns the upper bound of \(\tau_i + \tau_{i+1} + \dots \tau_{j} \).
|
|
void | restrictLowerBound (std::size_t i, std::size_t j, Bounds lowerBound, bool force=false) |
| Restrict the lower bound of \(\tau_i + \tau_{i+1} + \dots \tau_{j} \). More...
|
|
void | restrictUpperBound (std::size_t i, std::size_t j, Bounds upperBound, bool force=false) |
| Restrict the upper bound of \(\tau_i + \tau_{i+1} + \dots \tau_{j} \). More...
|
|
void | convexHullAssign (const TimedCondition &condition) |
| Make it to be the convex hull of this timed condition and the given timed condition.
|
|
TimedCondition | convexHull (const TimedCondition &condition) const |
| Return the convex hull of this timed condition and the given timed condition.
|
|
void | enumerate (std::vector< TimedCondition > &simpleConditions) const |
| Make a vector of simple timed conditions in this timed condition. More...
|
|
std::vector< TimedCondition > | enumerate () const |
| Make a vector of simple timed conditions in this timed condition. More...
|
|
TimedCondition | successor (const std::deque< ClockVariables > &variables) const |
| Make a continuous successor by elapsing variables.
|
|
void | successorAssign (const std::deque< ClockVariables > &variables) |
| Make a continuous successor by elapsing variables.
|
|
void | removeEqualityUpperBoundAssign () |
| Remove the equality upper bound.
|
|
void | removeUpperBoundAssign () |
| Remove the upper bounds.
|
|
TimedCondition | predecessor (const std::deque< ClockVariables > &variables) const |
| Make a continuous predecessor by backward-elapsing variables.
|
|
TimedCondition | prefix (const std::deque< ClockVariables > &variables) const |
| Make a continuous prefix.
|
|
TimedCondition | suffix (const std::deque< ClockVariables > &variables) const |
| Make a continuous suffix.
|
|
TimedCondition | extendN () const |
| Add another variable \(x_{n+1}\) such that \(x_n = x_{n+1}\).
|
|
TimedCondition | removeN () const |
| Remove \(x_{N}\).
|
|
TimedCondition | removeZero () const |
| Remove \(x_{0}\) TODO: Implement it.
|
|
bool | hasEqualityN () const |
| Return if there is \(\mathbb{T}_{i,N} = c\). More...
|
|
TimedCondition | extendZero () const |
| Rename each variable \(x_i\) to \(x_{i+1}\) and add \(x_0\) such that \(x_0 = x_1\).
|
|
std::vector< std::size_t > | getStrictlyConstrainedVariables (const TimedCondition &originalCondition, const size_t examinedVariableSize) const |
| Returns the set of variables strictly constrained compared with the original condition. More...
|
|
bool | operator== (const TimedCondition &condition) const |
|
bool | operator!= (const TimedCondition &condition) const |
|
std::vector< Constraint > | toGuard () const |
|
bool | hasPrefix () const |
| Return if this timed condition has a (continuous) prefix.
|
|
bool | hasSuffix () const |
| Return if this timed condition has a (continuous) suffix.
|
|
bool | includes (const TimedCondition &condition) const |
| Return if this timed condition includes the given timed condition.
|
|
TimedCondition | operator&& (const TimedCondition &another) const |
| Returns the intersection of two timed conditions.
|
|
bool | isSatisfiableNoCanonize () const |
| Returns if the timed condition is satisfiable.
|
|
| operator bool () |
| Returns if the timed condition is satisfiable.
|
|
TimedCondition | applyResets (const TATransition::Resets &resets) const |
|
TimedCondition | applyResets (const TATransition::Resets &resets, const std::size_t targetClockSize) const |
| Return the timed condition after applying the given reset. More...
|
|
bool | isPoint (std::size_t i) const |
| Check if T_{i, |T|} is a point.
|
|
std::size_t | hash_value () const |
|
std::ostream & | print (std::ostream &os) const |
|
A timed condition, a finite conjunction of inequalities of the form \(\tau_{i} + \tau_{i + 1} \dots \tau_{j} \bowtie c\), where \({\bowtie} \in \{>,\ge,\le,<\}\) and \(c \in \mathbb{N} \).
Let \(x_0, x_1, \dots x_N\) be the variables in the zone. We use \(x_i\) to represent \(\mathbb{T}_{i,N} = \tau_{i} + \tau_{i+1} \dots \tau_{N}\). We note that the first row and column with index 0 of DBM are for the constant 0, and we have to shift the index appropriately.
- Note
- Policy: We wrap all the low-level DBM operations in this class.