|
Public Member Functions |
| fed_t (cindex_t dim=1) |
| Initialize a fed_t to empty federation of a given dimension.
|
| fed_t (const fed_t &arg) |
| Standard copy constructor.
|
| fed_t (const dbm_t &arg) |
| Wrap a DBM in a federation.
|
| fed_t (const raw_t *arg, cindex_t dim) |
| Copy a DBM matrix in a federation.
|
| ~fed_t () |
size_t | size () const |
cindex_t | getDimension () const |
void | setDimension (cindex_t dim) |
| Change the dimension of this federation.
|
bool | isEmpty () const |
void | setEmpty () |
| Empty this federation.
|
void | nil () |
| Short for setDimension(1), has the effect of deallocating the DBMs.
|
bool | hasZero () const |
std::string | toString (const ClockAccessor &) const |
int32_t | getUpperMinimumCost (int cost) const |
| Computes the biggest lower cost in the zone.
|
int32_t | getInfimum () const |
| Only for compatibility with priced federations.
|
uint32_t | hash (uint32_t seed=0) const |
bool | sameAs (const fed_t &arg) const |
void | intern () |
| Try to share the DBMs. Side-effect: affects all copies of this fed_t.
|
fed_t & | operator= (const fed_t &) |
| Overload of standard operators.
|
fed_t & | operator= (const dbm_t &) |
fed_t & | operator= (const raw_t *) |
bool | operator== (const fed_t &) const |
| Comparisons have the semantics of set inclusion.
|
bool | operator== (const dbm_t &) const |
bool | operator== (const raw_t *) const |
bool | operator!= (const fed_t &) const |
bool | operator!= (const dbm_t &) const |
bool | operator!= (const raw_t *) const |
bool | operator< (const fed_t &) const |
bool | operator< (const dbm_t &) const |
bool | operator< (const raw_t *) const |
bool | operator> (const fed_t &) const |
bool | operator> (const dbm_t &) const |
bool | operator> (const raw_t *) const |
bool | operator<= (const fed_t &) const |
bool | operator<= (const dbm_t &) const |
bool | operator<= (const raw_t *) const |
bool | operator>= (const fed_t &) const |
bool | operator>= (const dbm_t &) const |
bool | operator>= (const raw_t *) const |
relation_t | relation (const fed_t &arg) const |
| Relation (wrt inclusion, approximate).
|
relation_t | relation (const dbm_t &arg) const |
relation_t | relation (const raw_t *arg, cindex_t dim) const |
bool | isSupersetEq (const raw_t *arg, cindex_t dim) const |
| Specialized relation test: >= arg (approximate).
|
bool | eq (const fed_t &arg) const |
| Exact (expensive) relations.
|
bool | eq (const dbm_t &arg) const |
bool | eq (const raw_t *arg, cindex_t dim) const |
bool | lt (const fed_t &arg) const |
bool | lt (const dbm_t &arg) const |
bool | lt (const raw_t *arg, cindex_t dim) const |
bool | gt (const fed_t &arg) const |
bool | gt (const dbm_t &arg) const |
bool | gt (const raw_t *arg, cindex_t dim) const |
bool | le (const fed_t &arg) const |
bool | le (const dbm_t &arg) const |
bool | le (const raw_t *arg, cindex_t dim) const |
bool | ge (const fed_t &arg) const |
bool | ge (const dbm_t &arg) const |
bool | ge (const raw_t *arg, cindex_t dim) const |
relation_t | exactRelation (const fed_t &arg) const |
relation_t | exactRelation (const dbm_t &arg) const |
relation_t | exactRelation (const raw_t *arg, cindex_t dim) const |
fed_t & | setZero () |
| Set this federation to zero (origin).
|
fed_t & | setInit () |
| (re-)initialize the federation with no constraint.
|
fed_t & | convexHull () |
| Convex union of its DBMs.
|
fed_t & | operator|= (const fed_t &) |
| (Set) union operator (|).
|
fed_t & | operator|= (const dbm_t &) |
fed_t & | operator|= (const raw_t *) |
fed_t & | unionWith (fed_t &arg) |
| Union of 2 fed_t.
|
fed_t & | unionWithC (fed_t arg) |
fed_t & | add (const fed_t &arg) |
| Simply add (list concatenation) DBMs to this federation.
|
fed_t & | add (const dbm_t &arg) |
fed_t & | add (const raw_t *arg, cindex_t dim) |
fed_t & | append (fed_t &arg) |
| Append arg to 'this',.
|
fed_t & | appendC (fed_t arg) |
void | append (fdbm_t *arg) |
fed_t & | operator+= (const fed_t &) |
| Convex union operator (+).
|
fed_t & | operator+= (const dbm_t &) |
fed_t & | operator+= (const raw_t *) |
fed_t & | operator &= (const fed_t &) |
| Intersection and constraint operator (&).
|
fed_t & | operator &= (const dbm_t &) |
fed_t & | operator &= (const raw_t *) |
fed_t & | operator &= (const constraint_t &) |
fed_t & | operator &= (const base::pointer_t< constraint_t > &) |
fed_t & | operator &= (const std::vector< constraint_t > &) |
fed_t & | operator-= (const fed_t &) |
| (Set) subtraction operator (-).
|
fed_t & | operator-= (const dbm_t &) |
fed_t & | operator-= (const raw_t *) |
bool | constrain (cindex_t i, int32_t value) |
| Methods for constraining: with one or more constraints.
|
bool | constrain (cindex_t i, cindex_t j, raw_t c) |
bool | constrain (cindex_t i, cindex_t j, int32_t b, strictness_t s) |
bool | constrain (cindex_t i, cindex_t j, int32_t b, bool isStrict) |
bool | constrain (const constraint_t &c) |
bool | constrain (const constraint_t *c, size_t n) |
bool | constrain (const cindex_t *table, const constraint_t *c, size_t n) |
bool | constrain (const cindex_t *table, const base::pointer_t< constraint_t > &) |
bool | constrain (const cindex_t *table, const std::vector< constraint_t > &) |
bool | intersects (const fed_t &) const |
bool | intersects (const dbm_t &) const |
bool | intersects (const raw_t *, cindex_t dim) const |
fed_t & | up () |
| Delay (strongest post-condition) for all the DBMs.
|
fed_t & | down () |
| Inverse delay (weakest pre-condition) for all the DBMs.
|
fed_t & | freeClock (cindex_t clock) |
| Free clock (unconstraint) for all the DBMs.
|
fed_t & | freeUp (cindex_t clock) |
| Free upper or lower bounds only for a particular clock or for all clocks.
|
fed_t & | freeDown (cindex_t clock) |
fed_t & | freeAllUp () |
fed_t & | freeAllDown () |
void | updateValue (cindex_t x, int32_t v) |
| Update methods where x & y are clocks, v an integer value.
|
void | updateClock (cindex_t x, cindex_t y) |
void | updateIncrement (cindex_t x, int32_t v) |
void | update (cindex_t x, cindex_t y, int32_t v) |
bool | satisfies (cindex_t i, cindex_t j, raw_t c) const |
bool | satisfies (const constraint_t &c) const |
bool | operator && (const constraint_t &c) const |
bool | isUnbounded () const |
fed_t & | relaxUp () |
| Make upper or lower finite bounds non strict for all the DBMs.
|
fed_t & | relaxDown () |
fed_t & | relaxUpClock (cindex_t clock) |
| Similar for all bounds of a particular clock for all the DBMs.
|
fed_t & | relaxDownClock (cindex_t clock) |
fed_t & | relaxAll () |
| Make all constraints (except infinity) non strict for all the DBMs.
|
fed_t & | reduce () |
| Remove redundant DBMs (if included in ONE other DBM).
|
fed_t & | noReduce () |
| This method is useful only for experiments.
|
fed_t & | expensiveReduce () |
| Remove redundant DBMs (if included in the UNION of the other DBMs).
|
fed_t & | mergeReduce () |
| Try to merge DBMs by pairs.
|
fed_t & | convexReduce () |
| Use a heuristic to recompute parts of the federation as part=convexHull(part)-(convexHull(part)-part).
|
fed_t & | expensiveConvexReduce () |
| Try to replace this by convexHull(this)-(convexHull(this)-this).
|
fed_t & | partitionReduce () |
| Find partitions in the federation and reduce them separately.
|
bool | contains (const IntValuation &point) const |
bool | contains (const int32_t *point, cindex_t dim) const |
bool | contains (const DoubleValuation &point) const |
bool | contains (const double *point, cindex_t dim) const |
double | possibleBackDelay (const DoubleValuation &point) const |
double | possibleBackDelay (const double *point, cindex_t dim) const |
bool | delay (const DoubleValuation &point, double *t) const |
| Compute the 'almost min' necessary delay from a point to enter this federation.
|
bool | delay (const double *point, cindex_t dim, double *t) const |
void | extrapolateMaxBounds (const int32_t *max) |
| Extrapolations:.
|
void | diagonalExtrapolateMaxBounds (const int32_t *max) |
void | extrapolateLUBounds (const int32_t *lower, const int32_t *upper) |
void | diagonalExtrapolateLUBounds (const int32_t *lower, const int32_t *upper) |
void | splitExtrapolate (const constraint_t *begin, const constraint_t *end, const int32_t *max) |
| "Split-extrapolation".
|
void | resize (const uint32_t *bitSrc, const uint32_t *bitDst, size_t bitSize, cindex_t *table) |
| Resize all the DBMs of this federation,.
|
void | changeClocks (const cindex_t *target, cindex_t newDim) |
| Resize and change clocks of all the DBMs of this federation.
|
void | swapClocks (cindex_t x, cindex_t y) |
| Swap clocks x and y.
|
DoubleValuation & | getValuation (DoubleValuation &cval, bool *freeC=NULL) const throw (std::out_of_range) |
| Get a clock valuation and change only the clocks that are marked free.
|
fed_t & | predt (const fed_t &bad) |
| predt operation: temporal predecessor of this federation avoiding 'bad'.
|
fed_t & | predt (const dbm_t &bad) |
fed_t & | predt (const raw_t *bad, cindex_t dim) |
bool | isIncludedInPredt (const fed_t &good, const fed_t &bad) const |
bool | has (const dbm_t &arg) const |
| Identify test to know if this federation has a specific DBM.
|
bool | has (const raw_t *arg, cindex_t dim) const |
bool | hasSame (const dbm_t &arg) const |
| Similar but test with exact same dbm_t.
|
void | removeIncludedIn (const fed_t &arg) |
| Remove the DBMs that are included in DBMs of arg (pair-wise inclusion checking).
|
bool | removeIncludedIn (const dbm_t &arg) |
bool | removeIncludedIn (const raw_t *arg, cindex_t dim) |
| fed_t (const ClockOperation< fed_t > &op) |
| Special constructor to copy the result of a pending operation.
|
ClockOperation< fed_t > | operator() (cindex_t clk) |
| Overload of operator (): () or (i,j) make no sense here.
|
bool | isSubtractionEmpty (const raw_t *arg, cindex_t dim) const |
bool | isSubtractionEmpty (const dbm_t &arg) const |
bool | isSubtractionEmpty (const fed_t &arg) const |
void | removeEmpty () |
| Clean-up the federation of its empty dbm_t.
|
bool | hasEmpty () const |
const_iterator | begin () const |
| Access to iterators.
|
const const_iterator | end () const |
iterator | beginMutable () |
const iterator | endMutable () const |
iterator | erase (iterator &iter) |
size_t | write (fdbm_t **mem) |
| Dump its list of ifed_t and reload them.
|
void | read (fdbm_t **fed, size_t size) |
| Symmetric: read.
|
const dbm_t & | const_dbmt () const |
bool | removeThisDBM (const dbm_t &dbm) |
| Remove a dbm_t from this fed_t.
|
void | setMutable () |
| Ensure this ifed_t is mutable.
|
Static Public Member Functions |
static bool | isSubtractionEmpty (const raw_t *dbm, cindex_t dim, const fed_t &fed) |
static fed_t | subtract (const raw_t *arg1, const raw_t *arg2, cindex_t dim) |
| Subtract DBM arg1 - DBM arg2 wrapper function.
|
static fed_t | subtract (const dbm_t &arg1, const raw_t *arg2, cindex_t dim) |
Private Member Functions |
| fed_t (ifed_t *ifed) |
ifed_t * | ifed () |
const ifed_t * | ifed () const |
bool | isMutable () const |
| Call-backs to ifed_t.
|
bool | isOK () const |
void | incRef () const |
void | decRef () const |
void | decRefImmutable () const |
dbm_t & | dbmt () |
void | toArray (const raw_t **ar) const |
| Convert its linked list to an array.
|
void | ptr_subtract (const raw_t *arg, cindex_t dim) |
| Internal subtraction implemention (*this - arg).
|
relation_t | ptr_relation (const raw_t *arg, cindex_t dim) const |
| Similarly with a DBM.
|
Private Attributes |
ifed_t * | ifedPtr |
Classes |
class | const_iterator |
| Const iterator -> iterate though dbm_t. More...
|
class | iterator |
| Mutable iterator -> iterate though dbm_t. More...
|