36 unsigned int getRoot();
37 unsigned int getNumberOfNodes();
39 void SetExamined(
bool b);
42 void ReverseAndRoot();
49 root(gen.InitState()),
50 finalStates(gen.MarkedStates()),
51 numberOfNodes(gen.States().MaxIndex()),
52 nodeArray(gen.States().MaxIndex()),
53 examined(gen.States().MaxIndex()) {
64 if (eit->X1 != eit->X2) {
82 for (
unsigned int i=0; i <
nodeArray.size(); i++) {
85 if (mult[q->
state-1] != i+1) {
86 mult[q->
state-1] = i+1;
89 if (q->
blink != NULL) {
92 if (p->
link != NULL) {
120 cout <<
" ===== Displaying the graph ===== " << endl;
121 for (
unsigned int i=0; i <
nodeArray.size(); i++) {
123 cout <<
"Neighbours of " << i+1 <<
": ";
125 cout << q->
state <<
", ";
133 for (
unsigned int i=0; i <
nodeArray.size(); i++) {
146 while (!que.empty()) {
149 AccessibleSet.
Insert(index);
159 return AccessibleSet;
173 for (
unsigned int i=0; i < v.size(); i++) {
176 for (
unsigned int i=0; i <
nodeArray.size(); i++) {
180 sNode->
link = v[q->state-1];
181 v[q->state-1] = sNode;
187 StateSet::Iterator sit;
207 for (
unsigned int i=0; i <
nodeArray.size(); i++) {
224 cerr <<
"=============================================================================\n"
225 <<
"You probably use numbers for state names, and some state-numbers are missing.\n"
226 <<
"Rename states for the algorithm to work more efficiently.\n"
227 <<
"=============================================================================" << endl;
231 cerr <<
"The generator is not deterministic." << endl;
236 cerr <<
"The generator does not have only one initial state." << endl;
Idx Insert(void)
Insert new index to set.
Idx MaxIndex(void) const
Get maximum index used in this set (0 for emptyset)
TBaseSet< Transition, TransSort::X1EvX2 >::Iterator Iterator
Iterator on transition.
unsigned int numberOfNodes
unsigned int getNumberOfNodes()
vector< node * > nodeArray
Base class of all FAUDES generators.
TransSet::Iterator TransRelBegin(void) const
Iterator to Begin() of transition relation.
Idx InitStatesSize(void) const
Get number of initial states.
void DelStates(const StateSet &rDelStates)
Delete a set of states Cleans mpStates, mInitStates, mMarkedStates, mpTransrel, and mpStateSymboltabl...
TransSet::Iterator TransRelEnd(void) const
Iterator to End() of transition relation.
Idx Size(void) const
Get generator size (number of states)
const StateSet & States(void) const
Return reference to state set.
more efficient Trim() operation
Iterator End(void) const
Iterator to the end of set.
Iterator Begin(void) const
Iterator to the begin of set.
Idx Size(void) const
Get Size of TBaseSet.
bool ccTrim(const Generator &gen, Generator &trimGen)
A more efficient Trim() operation.
bool IsAccessible(const vGenerator &rGen)
RTI wrapper function.
void Accessible(vGenerator &rGen)
RTI wrapper function.
bool IsDeterministic(const vGenerator &rGen)
RTI wrapper function.
libFAUDES resides within the namespace faudes.
uint32_t Idx
Type definition for index type (allways 32bit)