| |
libFAUDES
Sections
Index
|
faudes::SccFilter Class Reference |
Public Types | |
enum | FMode { NoFilter = 0x00, FindFirst = 0x01, IgnoreTrivial = 0x02, StatesAvoid = 0x10, StatesRequire = 0x20, EventsAvoid = 0x40, IgnoreLiveLocks = 0x1000, LiveLocksOnly = 0x2000, IgnoreUnaccessible = 0x4000 } |
Typedef for filter modes. More... | |
Public Member Functions | |
SccFilter (void) | |
Constructor (no filter). | |
SccFilter (int mode, const Generator &rGen) | |
Constructor (from flags w.r.t. | |
SccFilter (int mode, const StateSet &rStatesAvoid, const StateSet &rStatesRequire) | |
Constructor (from flags and state sets). | |
SccFilter (int mode, const EventSet &rEventsAvoid) | |
Constructor (from flags and event sets). | |
SccFilter (int mode, const StateSet &rStatesAvoid, const StateSet &rStatesRequire, const EventSet &rEventsAvoid) | |
Constructor (from flags and sets). | |
~SccFilter (void) | |
Destructor. | |
int | Mode (void) const |
Member access. | |
Protected Attributes | |
int | mMode |
Flag, combining bit masks from Mode. | |
const StateSet * | pStatesAvoid |
States to avoid (if flag StatesAvoid is set). | |
const StateSet * | pStatesRequire |
States to require (if flag StatesRequire is set). | |
const EventSet * | pEventsAvoid |
Events to avoid (if flag EventssAvoid is set). | |
StateSet * | mpStatesAvoid |
Local sets (optional). | |
StateSet * | mpStatesRequire |
EventSet * | mpEventsAvoid |
Static Protected Attributes | |
static const StateSet | msEmptyStates = StateSet() |
Static emptysets. | |
static const EventSet | msEmptyEvents = EventSet() |
Friends | |
void | SearchScc (const Idx vState, int &vRcount, const Generator &rGen, const SccFilter &rFilter, StateSet &rTodo, std::stack< Idx > &rStack, StateSet &rStackStates, std::map< const Idx, int > &rDfn, std::map< const Idx, int > &rLowLnk, std::list< StateSet > &rSccList, StateSet &rRoots) |
Search for strongly connected components (SCC). |
Typedef for filter modes.
NoFilter | |
FindFirst | |
IgnoreTrivial | |
StatesAvoid | |
StatesRequire | |
EventsAvoid | |
IgnoreLiveLocks | |
LiveLocksOnly | |
IgnoreUnaccessible |
Definition at line 84 of file graphfncts.h.
faudes::SccFilter::SccFilter | ( | void | ) |
faudes::SccFilter::SccFilter | ( | int | mode, | |
const Generator & | rGen | |||
) |
faudes::SccFilter::SccFilter | ( | int | mode, | |
const StateSet & | rStatesAvoid, | |||
const StateSet & | rStatesRequire | |||
) |
Constructor (from flags and state sets).
faudes::SccFilter::SccFilter | ( | int | mode, | |
const EventSet & | rEventsAvoid | |||
) |
Constructor (from flags and event sets).
faudes::SccFilter::SccFilter | ( | int | mode, | |
const StateSet & | rStatesAvoid, | |||
const StateSet & | rStatesRequire, | |||
const EventSet & | rEventsAvoid | |||
) |
Constructor (from flags and sets).
faudes::SccFilter::~SccFilter | ( | void | ) |
int faudes::SccFilter::Mode | ( | void | ) | const [inline] |
void SearchScc | ( | const Idx | vState, | |
int & | vRcount, | |||
const Generator & | rGen, | |||
const SccFilter & | rFilter, | |||
StateSet & | rTodo, | |||
std::stack< Idx > & | rStack, | |||
StateSet & | rStackStates, | |||
std::map< const Idx, int > & | rDfn, | |||
std::map< const Idx, int > & | rLowLnk, | |||
std::list< StateSet > & | rSccList, | |||
StateSet & | rRoots | |||
) | [friend] |
Search for strongly connected components (SCC).
This function partitions the stateset of a generator into equivalent classes such that states x1 and x2 are equivalent iff there is a path from x1 to x2 AND a path from x2 to x1.
This function implements the algorithm based on a depth first search presented in:
-- Aho, Hopcroft, Ullman: The Design and Analysis of Computer Algorithms --
While the original algorithm works on a directed graph, this implementation adds some features that refer to transition systems and allow to filter SCCs on the run. The filter condition is specified by the SccFilter parameter rFilter.
Note: this version is derived from earlier implementations used in various plug-ins; in due course, this version will replace earlier versions; filter conditions are not thouroughly tested.
vState | State, from which the current recursion is started. | |
vRcount | Denotes the current depth of the recursion. | |
rGen | Transition system to investigate | |
rFilter | Filter out specified transitions | |
rTodo | Set of states that up to now were not found by the depth first search. | |
rStack | Stack of states to represent current path. | |
rStackStates | Set of states that are in rStack | |
rDfn | Map assigning to each state idx its Depth-First Number. | |
rLowLnk | Map assigning to each state its LOWLINK Number. | |
rSccList | Set SCCs (accumulative result). | |
rRoots | Set of states that each are root of some SCC (accumulative result). |
Definition at line 95 of file graphfncts.cpp.
int faudes::SccFilter::mMode [protected] |
const StateSet* faudes::SccFilter::pStatesAvoid [protected] |
const StateSet* faudes::SccFilter::pStatesRequire [protected] |
const EventSet* faudes::SccFilter::pEventsAvoid [protected] |
StateSet* faudes::SccFilter::mpStatesAvoid [protected] |
StateSet* faudes::SccFilter::mpStatesRequire [protected] |
Definition at line 131 of file graphfncts.h.
EventSet* faudes::SccFilter::mpEventsAvoid [protected] |
Definition at line 132 of file graphfncts.h.
const StateSet faudes::SccFilter::msEmptyStates = StateSet() [static, protected] |
const EventSet faudes::SccFilter::msEmptyEvents = EventSet() [static, protected] |
Definition at line 136 of file graphfncts.h.
libFAUDES 2.14g --- 2009-12-3 --- c++ source docu by doxygen 1.5.6