|
Public Types |
| enum | { MAX_DIM_POWER = 15,
MAX_DIM = ((1 << MAX_DIM_POWER) - 1)
} |
Public Member Functions |
| | dbm_t (cindex_t dim=1) |
| | Initialize a dbm_t to empty DBM of a given dimension.
|
| | dbm_t (const dbm_t &arg) |
| | Standard copy constructor.
|
| | dbm_t (const raw_t *arg, cindex_t dim) |
| | Copy constructor from a DBM matrix.
|
| | ~dbm_t () |
| cindex_t | getDimension () const |
| std::string | toString (const ClockAccessor &) const |
| void | setDimension (cindex_t dim) |
| | Change the dimension of this DBM.
|
| bool | isEmpty () const |
| void | setEmpty () |
| | Empty this DBM.
|
| void | nil () |
| | Short for setDimension(1), has the effect of deallocating the DBM.
|
| bool | hasZero () const |
| uint32_t | hash (uint32_t seed=0) const |
| bool | sameAs (const dbm_t &arg) const |
| void | intern () |
| | Try to share the DBM.
|
| void | copyFrom (const raw_t *src, cindex_t dim) |
| | Copy from a DBM.
|
| void | copyTo (raw_t *dst, cindex_t dim) const |
| | Copy to a DBM.
|
| const raw_t * | operator() () const |
| raw_t | operator() (cindex_t i, cindex_t j) const |
| const raw_t * | operator[] (cindex_t i) const |
| raw_t * | getDBM () |
| size_t | analyzeForMinDBM (uint32_t *bitMatrix) const |
| | Compute the minimal set of constraints to represent this DBM.
|
| int32_t * | writeToMinDBMWithOffset (bool minimizeGraph, bool tryConstraints16, allocator_t c_alloc, size_t offset) const |
| | Compute & save the minimal set of constraints.
|
| int32_t * | writeAnalyzedDBM (uint32_t *bitMatrix, size_t nbConstraints, BOOL tryConstraints16, allocator_t c_alloc, size_t offset) const |
| | Similar to writeToMinDBMWithOffset but works with a pre-analyzed DBM.
|
| relation_t | relation (mingraph_t ming, raw_t *unpackBuffer) const |
| | Relation with a mingraph_t,.
|
| dbm_t & | operator= (const dbm_t &) |
| | Overload of standard operators.
|
| dbm_t & | operator= (const raw_t *) |
| bool | operator== (const dbm_t &) const |
| | Comparisons have the semantics of set inclusion.
|
| bool | operator== (const fed_t &) const |
| bool | operator== (const raw_t *) const |
| bool | operator!= (const dbm_t &) const |
| bool | operator!= (const fed_t &) const |
| bool | operator!= (const raw_t *) const |
| bool | operator< (const dbm_t &) const |
| bool | operator< (const fed_t &) const |
| bool | operator< (const raw_t *) const |
| bool | operator> (const dbm_t &) const |
| bool | operator> (const fed_t &) const |
| bool | operator> (const raw_t *) const |
| bool | operator<= (const dbm_t &) const |
| bool | operator<= (const fed_t &) const |
| bool | operator<= (const raw_t *) const |
| bool | operator>= (const dbm_t &) const |
| bool | operator>= (const fed_t &) const |
| bool | operator>= (const raw_t *) const |
| relation_t | relation (const dbm_t &arg) const |
| | Relation (wrt inclusion, approximate only for fed_t).
|
| relation_t | relation (const fed_t &arg) const |
| relation_t | relation (const raw_t *arg, cindex_t dim) const |
| bool | lt (const fed_t &arg) const |
| | Exact (expensive) relations (for fed_t only).
|
| bool | gt (const fed_t &arg) const |
| bool | le (const fed_t &arg) const |
| bool | ge (const fed_t &arg) const |
| bool | eq (const fed_t &arg) const |
| relation_t | exactRelation (const fed_t &arg) const |
| dbm_t & | setZero () |
| | Set this zone to zero (origin).
|
| dbm_t & | setInit () |
| | (re-)initialize the DBM with no constraint.
|
| bool | isInit () const |
| bool | isZero () const |
| int32_t | getUpperMinimumCost (int32_t cost) const |
| | Computes the biggest lower cost in the zone.
|
| int32_t | getInfimum () const |
| | Only for compatibility with priced DBMs.
|
| dbm_t & | operator+= (const dbm_t &) |
| | Convex union operator (+).
|
| dbm_t & | operator+= (const fed_t &) |
| dbm_t & | operator+= (const raw_t *) |
| dbm_t & | operator &= (const dbm_t &) |
| | Intersection and constraint operator (&).
|
| dbm_t & | operator &= (const raw_t *) |
| dbm_t & | operator &= (const constraint_t &) |
| dbm_t & | operator &= (const base::pointer_t< constraint_t > &) |
| dbm_t & | operator &= (const std::vector< constraint_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 dbm_t &) const |
| bool | intersects (const fed_t &) const |
| bool | intersects (const raw_t *, cindex_t dim) const |
| dbm_t & | up () |
| | Delay (strongest post-condition).
|
| dbm_t & | down () |
| | Inverse delay (weakest pre-condition).
|
| dbm_t & | freeClock (cindex_t clock) |
| | Free clock (unconstrain).
|
| dbm_t & | freeUp (cindex_t clock) |
| | Free upper or lower bounds only for a particular clock or for all clocks.
|
| dbm_t & | freeDown (cindex_t clock) |
| dbm_t & | freeAllUp () |
| dbm_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 |
| | Check if the DBM satisfies a constraint c_ij.
|
| bool | satisfies (const constraint_t &c) const |
| bool | operator && (const constraint_t &c) const |
| bool | isUnbounded () const |
| dbm_t & | relaxUp () |
| | Make upper or lower finite bounds non strict.
|
| dbm_t & | relaxDown () |
| dbm_t & | relaxUpClock (cindex_t clock) |
| | Similar for all bounds of a particular clock.
|
| dbm_t & | relaxDownClock (cindex_t clock) |
| dbm_t & | relaxAll () |
| | Make all constraints (except infinity) non strict.
|
| bool | contains (const IntValuation &point) const |
| | Test point inclusion.
|
| 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 |
| 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 | resize (const uint32_t *bitSrc, const uint32_t *bitDst, size_t bitSize, cindex_t *table) |
| | Resize this DBM: bitSrc marks the subset of clocks (out from a larger total set) that are in this DBM and bitDst marks the subset of clocks we want to change to.
|
| void | changeClocks (const cindex_t *target, cindex_t newDim) |
| | Resize and change clocks of this DBM.
|
| 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.
|
| | dbm_t (const ClockOperation< dbm_t > &op) |
| | Special constructor to copy the result of a pending operation.
|
| ClockOperation< dbm_t > | operator() (cindex_t clk) |
| bool | isSubtractionEmpty (const raw_t *arg, cindex_t dim) const |
| bool | isSubtractionEmpty (const fed_t &arg) const |
| bool | isSubtractionEmpty (const dbm_t &arg) const |
| void | newCopy (const raw_t *arg, cindex_t dim) |
| | Simplified copy with.
|
| void | newCopy (const dbm_t &arg) |
| | Simplified copy with.
|
| void | updateCopy (const raw_t *arg, cindex_t dim) |
| | Simplified copy with.
|
| void | updateCopy (const dbm_t &arg) |
| | Simplified copy with.
|
| const idbm_t * | const_idbmt () const |
| | Const access to its idbm_t,.
|
| idbm_t * | idbmt () |
| const raw_t * | const_dbm () const |
| | Explicit const access to the DBM matrix.
|
| raw_t * | dbm () |
| | Mutable access to the DBM matrix.
|
| cindex_t | edim () const |
| cindex_t | pdim () const |
| bool | isMutable () const |
| raw_t * | getNew () |
| | Set and return a new writable DBM,.
|
| raw_t * | getCopy () |
| | Set and return a writable copy of this DBM,.
|
Static Public Member Functions |
| static size_t | getSizeOfMinDBM (cindex_t dim, mingraph_t) |
| | Wrapper for dbm_getSizeOfMinDBM.
|
| static dbm_t | readFromMinDBM (cindex_t dim, mingraph_t) |
| | Construct a dbm_t from a mingraph_t.
|
Private Member Functions |
| uintptr_t | uval () const |
| void | incRef () const |
| | Wrapper for idbmPtr.
|
| void | decRef () const |
| | Wrapper for idbmPtr.
|
| void | empty (cindex_t dim) |
| | Specialized versions to remove idbmPtr and setEmpty(dim),.
|
| void | emptyImmutable (cindex_t dim) |
| void | emptyMutable (cindex_t dim) |
| void | setEmpty (cindex_t dim) |
| | Set idbmPtr to empty with dimension dim.
|
| void | setPtr (idbm_t *ptr) |
| | Set a pointer for idbmPtr.
|
| bool | tryMutable () |
| | Check and try to make idbmPtr mutable cheaply (eg if reference counter is equal to 1 and the DBM is in the hash, then it is cheap).
|
| raw_t * | setNew (cindex_t dim) |
| | Set idbmPtr to a newly allocated DBM with explicit dimension.
|
| raw_t * | inew (cindex_t dim) |
| | Allocate new DBM and return the matrix.
|
| raw_t * | icopy (cindex_t dim) |
| | Copy its DBM and return the matrix.
|
| void | ptr_intern () |
| | Implementations of previous methods with.
|
| dbm_t & | ptr_convexUnion (const raw_t *arg, cindex_t dim) |
| bool | ptr_intersectionIsArg (const raw_t *arg, cindex_t dim) |
| bool | ptr_constrain (cindex_t i, cindex_t j, raw_t c) |
| bool | ptr_constrain (cindex_t k, int32_t value) |
| bool | ptr_constrain (const constraint_t *cnstr, size_t n) |
| bool | ptr_constrain (const cindex_t *table, const constraint_t *cnstr, size_t n) |
| void | ptr_up () |
| void | ptr_down () |
| void | ptr_freeClock (cindex_t k) |
| void | ptr_updateValue (cindex_t i, int32_t v) |
| void | ptr_updateClock (cindex_t i, cindex_t j) |
| void | ptr_update (cindex_t i, cindex_t j, int32_t v) |
| void | ptr_freeUp (cindex_t k) |
| void | ptr_freeDown (cindex_t k) |
| void | ptr_freeAllUp () |
| void | ptr_freeAllDown () |
| void | ptr_relaxDownClock (cindex_t k) |
| void | ptr_relaxUpClock (cindex_t k) |
| void | ptr_relaxAll () |
| bool | ptr_getValuation (DoubleValuation &cval, bool *freeC) const |
| void | ptr_swapClocks (cindex_t x, cindex_t y) |
Private Attributes |
| idbm_t * | idbmPtr |
| | Internal pointer or special coding for empty.
|
Friends |
| class | fed_t |
| class | dbmlist_t |