21#include <spot/twaalgos/sccinfo.hh>
22#include <spot/misc/hash.hh>
72 : seen(false), reach(false), mark(false), del(num)
78 std::vector<bool>
del;
79 std::vector<unsigned>
b;
139 void push_state(
unsigned s);
142 void nocycle(
unsigned x,
unsigned y);
144 void unmark(
unsigned y);
Enumerate elementary cycles in a SCC.
Definition cycles.hh:64
dfs_stack dfs_
The DFS stack.
Definition cycles.hh:105
const_twa_graph_ptr aut_
The automaton being explored.
Definition cycles.hh:82
virtual bool cycle_found(unsigned start)
Called whenever a cycle was found.
void run(unsigned scc)
Run in SCC scc, and call cycle_found() for any new elementary cycle found.
std::vector< dfs_entry > dfs_stack
Stack type used during DFS traversal.
Definition cycles.hh:104
std::vector< state_info > info_
SCC information.
Definition cycles.hh:83
const scc_info & sm_
The state map used during exploration.
Definition cycles.hh:84
enumerate_cycles(const scc_info &map)
Construct a cycle enumerator for the given SCC.
Compute an SCC map and gather assorted information.
Definition sccinfo.hh:465
std::shared_ptr< const twa_graph > const_twa_graph_ptr
Shared pointer to a const twa_graph.
Definition fwd.hh:41
Definition automata.hh:26
DFS stack entry for the cycle enumeration algorithm.
Definition cycles.hh:93
dfs_entry(unsigned s) noexcept
Construct a DFS entry for state s.
Definition cycles.hh:98
unsigned s
State index.
Definition cycles.hh:94
Per-state information maintained by the cycle enumeration algorithm.
Definition cycles.hh:69
std::vector< unsigned > b
BDD labeling associated with the state.
Definition cycles.hh:79
bool reach
Whether this state is reachable from the start.
Definition cycles.hh:76
state_info(unsigned num)
Construct with initial state number.
Definition cycles.hh:71
std::vector< bool > del
Delayed transition set.
Definition cycles.hh:78
bool mark
Whether this state is marked.
Definition cycles.hh:77
bool seen
Whether this state has been visited.
Definition cycles.hh:75