|
Defines |
| #define | SIZEOF_DBMLIST(DIM) (sizeof(DBMList_t) + (DIM)*(DIM)*sizeof(raw_t)) |
| #define | dbmf_CHECKDIM(FACTORY, DIM) |
| | Assertion to check that requested DBMs have their dim <= max dim of the factory.
|
| #define | dbmf_checkFactory(F) assert(dbmf_internCheckFactory(F)) |
| | Check a factory -- for debugging.
|
| #define | dbmf_allocate(F) dbmf_internAllocate(F) |
| #define | dbmf_deallocate(F, D) dbmf_internDeallocate(F,D) |
| #define | dbmf_deallocateList(F, L) dbmf_internDeallocateList(F,L) |
| #define | APPLY_TO_FEDERATION(FED, OPERATION) |
| | Apply the same operation to all DBMs of a federation.
|
Typedefs |
| typedef dbmlist_s | DBMList_t |
| | DBM Federation type: such federations have one dimension and several DBMs of the same dimension.
|
Functions |
| static void | dbmf_initFactory (DBMAllocator_t *factory, cindex_t dim) |
| | Initialize a factory.
|
| BOOL | dbmf_internCheckFactory (const DBMAllocator_t *factory) |
| DBMList_t * | dbmf_internAllocate (DBMAllocator_t *factory) |
| | Allocate DBMs with the factory.
|
| static void | dbmf_internDeallocate (DBMAllocator_t *factory, DBMList_t *dbm) |
| | Give back ONE DBM to its factory.
|
| void | dbmf_internDeallocateList (DBMAllocator_t *factory, DBMList_t *dbmList) |
| | Give back a LIST of DBMs to its factory.
|
| static void | dbmf_deallocateFederation (DBMAllocator_t *factory, DBMFederation_t *fed) |
| | Same as deallocateList but for a federation.
|
| void | dbmf_clearFactory (DBMAllocator_t *factory) |
| | Clear a factory.
|
| static void | dbmf_initFederation (DBMFederation_t *fed, cindex_t dim) |
| | Initialize a federation.
|
| static void | dbmf_addDBM (DBMList_t *dbm, DBMFederation_t *fed) |
| | Add a DBM in the federation (at the beginning of the list).
|
| void | dbmf_cleanUp (DBMFederation_t *fed, DBMAllocator_t *factory) |
| | Clean up the federation from empty DBMs.
|
| static void | dbmf_appendList (DBMList_t *dbmList, DBMList_t *endList) |
| | Append a list to another.
|
| BOOL | dbmf_hasDBM (const DBMList_t *fed, const raw_t *dbm, cindex_t dim) |
| | Test if a federation has a particular DBM.
|
| static BOOL | dbmf_federationHasDBM (const DBMFederation_t fed, const raw_t *dbm) |
| | Wrapper for DBMFederation_t.
|
| size_t | dbmf_getSize (const DBMList_t *dbmList) |
| | Size of a federation.
|
| int | dbmf_copy (DBMFederation_t *dst, const DBMFederation_t src, DBMAllocator_t *factory) |
| | Copy a federation.
|
| DBMFederation_t | dbmf_copyDBM (const raw_t *dbm, cindex_t dim, DBMAllocator_t *factory) |
| | Copy a DBM to a federation.
|
| DBMList_t * | dbmf_copyDBM2List (const raw_t *dbm, cindex_t dim, DBMAllocator_t *factory) |
| | Copy a DBM to a DBMList_t.
|
| DBMList_t * | dbmf_copyDBMList (const DBMList_t *dbmList, cindex_t dim, BOOL *valid, DBMAllocator_t *factory) |
| | Copy a list of DBMs.
|
| static DBMFederation_t | dbmf_copyFederation (const DBMFederation_t fed, BOOL *valid, DBMAllocator_t *factory) |
| | Similar to dbmf_copyDBMList: wrapper for federations.
|
| static int | dbmf_addCopy (DBMFederation_t *fed, const DBMList_t *dbmList, DBMAllocator_t *factory) |
| | Copy a list of DBMs and append the result to a federation.
|
| int | dbmf_addZero (DBMFederation_t *fed, DBMAllocator_t *factory) |
| | Add to the federation 1 DBM that contains only 0.
|
| int | dbmf_addInit (DBMFederation_t *fed, DBMAllocator_t *factory) |
| | Add to the federation 1 DBM that is not constrained (all clocks >= 0, that's all).
|
| BOOL | dbmf_union (DBMFederation_t *fed, DBMList_t *dbmList, DBMAllocator_t *factory) |
| | Union of a list of DBMs and a federation: add DBMs to the federation.
|
| BOOL | dbmf_unionWithCopy (DBMFederation_t *fed, const DBMList_t *dbmList, DBMAllocator_t *factory, BOOL *valid) |
| | Union of a list of DBMs and a federation: add DBMs to the federation.
|
| void | dbmf_convexUnion (raw_t *dbm, cindex_t dim, const DBMList_t *dbmList) |
| | Computes the convex hull union between one DBM and a list of DBMs: dbm = dbm + list of dbm.
|
| static void | dbmf_convexUnionWithFederation (raw_t *dbm, const DBMFederation_t fed) |
| | Computes the convex hull union between one DBM and a federation: dbm = dbm + federation.
|
| void | dbmf_convexUnionWithSelf (DBMFederation_t *fed, DBMAllocator_t *factory) |
| | Computes the convex hull union from all the DBMs of a federation.
|
| DBMList_t * | dbmf_intersection (const raw_t *dbm, cindex_t dim, const DBMList_t *dbmList, BOOL *valid, DBMAllocator_t *factory) |
| | Computes the intersection between one DBM and a list of DBMs = dbm intersec list of dbm.
|
| DBMList_t * | dbmf_intersectionWithFederation (const DBMList_t *fed1, const DBMList_t *fed2, cindex_t dim, BOOL *valid, DBMAllocator_t *factory) |
| | Computes the intersection between 2 federations.
|
| BOOL | dbmf_intersectsDBM (DBMFederation_t *fed, const raw_t *dbm, DBMAllocator_t *factory) |
| | Computes the intersection between one DBM and a federation.
|
| int | dbmf_intersectsFederation (DBMFederation_t *fed1, const DBMList_t *fed2, DBMAllocator_t *factory) |
| | Computes the intersection between one federation and a federation.
|
| BOOL | dbmf_DBMsHaveIntersection (const DBMList_t *dbmList, const raw_t *dbm, cindex_t dim) |
| | Test if a list of DBMs and a DBM have an intersection.
|
| static BOOL | dbmf_federationHasIntersection (const DBMFederation_t fed, const raw_t *dbm) |
| | Test if a federation and a DBM have an intersection.
|
| static BOOL | dbmf_federationsHaveIntersection (const DBMFederation_t fed1, const DBMFederation_t fed2) |
| | Test if 2 federations have an intersection.
|
| void | dbmf_constrainN (DBMFederation_t *fed, const constraint_t *constraints, size_t n, DBMAllocator_t *factory) |
| | Constrain a federation with several constraints.
|
| void | dbmf_constrainIndexedN (DBMFederation_t *fed, const cindex_t *indexTable, const constraint_t *constraints, size_t n, DBMAllocator_t *factory) |
| | Constrain a federation with several constraints using an index table to translate constraint indices to DBM indices.
|
| void | dbmf_constrain1 (DBMFederation_t *fed, cindex_t i, cindex_t j, raw_t constraint, DBMAllocator_t *factory) |
| | Constrain a federation with one constraint constraint1 once is cheaper than constrainN with 1 constraintN with n > 1 is cheaper than constrain1 n times.
|
| void | dbmf_up (DBMFederation_t fed) |
| | Up/delay operation (strongest post-condition).
|
| void | dbmf_down (DBMFederation_t fed) |
| | Down operation (weakest pre-condition).
|
| void | dbmf_reduce (DBMFederation_t *fed, DBMAllocator_t *factory) |
| | Reduce a federation: remove DBMs that are included in other DBMs of the same federation.
|
| int | dbmf_expensiveReduce (DBMFederation_t *fed, DBMAllocator_t *factory) |
| | Reduce a federation: remove DBMs that are redundant.
|
| void | dbmf_freeClock (DBMFederation_t fed, cindex_t clock) |
| | Free operation: remove all constraints for a given clock.
|
| void | dbmf_updateValue (DBMFederation_t fed, cindex_t clock, int32_t value) |
| | Update a clock value: x := value.
|
| void | dbmf_updateClock (DBMFederation_t fed, cindex_t x, cindex_t y) |
| | Copy a clock: x := y.
|
| void | dbmf_updateIncrement (DBMFederation_t fed, cindex_t clock, int32_t value) |
| | Increment a clock: x += value.
|
| void | dbmf_update (DBMFederation_t fed, cindex_t x, cindex_t y, int32_t value) |
| | General update: x := x + value.
|
| BOOL | dbmf_satisfies (const DBMFederation_t fed, cindex_t i, cindex_t j, raw_t constraint) |
| | Check if a federation satisfies a constraint.
|
| static BOOL | dbmf_isEmpty (const DBMFederation_t fed) |
| | Test for emptiness.
|
| BOOL | dbmf_isUnbounded (const DBMFederation_t fed) |
| | Test if a federation is unbounded, ie, if one of its DBM is unbounded.
|
| relation_t | dbmf_partialRelation (const raw_t *dbm, const DBMFederation_t fed) |
| | Partial relation between one DBM and a federation: apply the relation to all the DBMs of a federation.
|
| relation_t | dbmf_relation (const raw_t *dbm, const DBMFederation_t fed, BOOL *valid, DBMAllocator_t *factory) |
| | Relation between one DBM and a federation.
|
| BOOL | dbmf_removePartialIncluded (DBMFederation_t *fed, const DBMList_t *arg, DBMAllocator_t *factory) |
| | Remove DBMs of fed that are (partially) included in arg.
|
| BOOL | dbmf_isIncludedIn (const raw_t *dbm, const DBMList_t *dbmList, cindex_t dim) |
| | Test if a DBM is included in a list of DBMs.
|
| static BOOL | dbmf_isReallyIncludedIn (const raw_t *dbm, const DBMFederation_t fed, BOOL *valid, DBMAllocator_t *factory) |
| | Test if a DBM is really included in a federation semantically.
|
| BOOL | dbmf_areDBMsIncludedIn (const DBMList_t *l1, const DBMList_t *l2, cindex_t dim) |
| | Test if all the DBMs of l1 are included in some DBMs of l2.
|
| BOOL | dbmf_areDBMsReallyIncludedIn (const DBMList_t *l1, const DBMFederation_t l2, BOOL *valid, DBMAllocator_t *factory) |
| | Test if all the DBMs of l1 are included semantically in l2.
|
| void | dbmf_stretchUp (DBMFederation_t fed) |
| | Stretch-up operation for approximation.
|
| void | dbmf_stretchDown (DBMFederation_t fed, cindex_t clock) |
| | Stretch-down operation for approximation.
|
| void | dbmf_microDelay (DBMFederation_t fed) |
| | Smallest possible delay.
|
| BOOL | dbmf_areEqual (const DBMFederation_t fed1, const DBMFederation_t fed2, BOOL *valid, DBMAllocator_t *factory) |
| | Test semantic equality.
|
| BOOL | dbmf_isPointIncluded (const int32_t *pt, const DBMFederation_t fed) |
| | Check if a discrete point is included in a federation.
|
| BOOL | dbmf_isRealPointIncluded (const double *pt, const DBMFederation_t fed) |
| | Check if a real point is included in a federation.
|
| DBMList_t * | dbmf_substractFederationFromDBM (const raw_t *dbm, const DBMFederation_t fed, BOOL *valid, DBMAllocator_t *factory) |
| | Substraction operation: computes C = A - B.
|
| DBMList_t * | dbmf_substractDBMFromDBM (const raw_t *dbm1, const raw_t *dbm2, cindex_t dim, BOOL *valid, DBMAllocator_t *factory) |
| | Substraction operation: computes C = A - B.
|
| DBMFederation_t | dbmf_substractDBMFromFederation (const DBMFederation_t fed, const raw_t *dbm, BOOL *valid, DBMAllocator_t *factory) |
| | Substraction operation: computes C = A - B.
|
| DBMFederation_t | dbmf_substractFederationFromFederation (const DBMFederation_t fed1, const DBMFederation_t fed2, BOOL *valid, DBMAllocator_t *factory) |
| | Substraction operation: computes C = A - B.
|
| int | dbmf_substractDBM (DBMFederation_t *fed, const raw_t *dbm, DBMAllocator_t *factory) |
| | Substraction operation: computes A = A - B.
|
| int | dbmf_substractFederation (DBMFederation_t *fed1, const DBMList_t *fed2, DBMAllocator_t *factory) |
| | Substraction operation: computes A = A - B.
|
| int | dbmf_predt (DBMFederation_t *fed, DBMFederation_t *bad, DBMAllocator_t *factory) |
| | Operation similar to down but constrained: predecessors of fed avoiding the states that could reach bad.
|
| void | dbmf_shrinkExpand (DBMFederation_t *fed, const uint32_t *bitSrc, const uint32_t *bitDst, size_t bitSize, cindex_t *table, DBMAllocator_t *factory) |
| | Similarly, on federations.
|
| void | dbmf_extrapolateMaxBounds (DBMFederation_t fed, const int32_t *max) |
| | Classical extrapolation based on maximal bounds, formerly called k-normalization.
|
| void | dbmf_diagonalExtrapolateMaxBounds (DBMFederation_t fed, const int32_t *max) |
| | Diagonal extrapolation based on maximal bounds.
|
| void | dbmf_extrapolateLUBounds (DBMFederation_t fed, const int32_t *lower, const int32_t *upper) |
| | Extrapolation based on lower-upper bounds.
|
| void | dbmf_diagonalExtrapolateLUBounds (DBMFederation_t fed, const int32_t *lower, const int32_t *upper) |
| | Diagonal extrapolation based on lower-upper bounds.
|
| void | dbm_printFederation (FILE *out, const DBMList_t *dbmList, cindex_t dim) |
| | Pretty print of a federation.
|
| std::ostream & | dbm_cppPrintFederation (std::ostream &out, const DBMList_t *dbmList, cindex_t dim) |
| | Pretty print of a DBM federation.
|