24 #include <unordered_map>
26 #include "misc/common.hh"
34 typedef std::unordered_map<
const state*, int,
37 virtual bool expand_new_state(
int n,
bool expanded,
41 const state*,
const const_twa_ptr&) = 0;
43 virtual bool expand_src_closingedge(
int src,
int dst) = 0;
45 virtual bool expand_before_pop(
int n,
60 seen_map&,
const state*,
const const_twa_ptr&);
61 bool expand_src_closingedge(
int,
int);
72 seen_map&,
const state*,
const const_twa_ptr&);
73 bool expand_src_closingedge(
int,
int);
83 bool expand_new_state(
int n,
bool expanded,
85 const state*,
const const_twa_ptr&);
87 bool expand_src_closingedge(
int,
int dst);
93 std::unordered_set<int> on_dfs_;
94 std::vector<bool> expanded_;
104 bool expand_new_state(
int n,
bool expanded,
106 const state*,
const const_twa_ptr&);
109 bool expand_src_closingedge(
int,
int dst);
117 std::unordered_map<int, bool> on_dfs_;
118 std::vector<bool> expanded_;
127 bool expand_new_state(
int n,
bool expanded,
129 const state*,
const const_twa_ptr&);
132 bool expand_src_closingedge(
int,
int dst);
140 std::unordered_map<int, bool> on_dfs_;
141 std::vector<bool> expanded_;
153 seen_map&,
const state*,
const const_twa_ptr&);
155 bool expand_src_closingedge(
int src,
int dst);
163 std::vector<int> todo_;
164 std::unordered_map<int, bool> reach_;
170 std::unordered_map<int, dfs_element> on_dfs_;
180 seen_map&,
const state*,
const const_twa_ptr&);
182 bool expand_src_closingedge(
int src,
int dst);
190 std::vector<int> todo_;
195 std::vector<int> same_scc;
197 std::vector<root_element> root_stack_;
203 std::unordered_map<int, reach_element> reach_;
209 std::unordered_map<int, dfs_element> on_dfs_;
224 seen_map& map,
const state*,
const const_twa_ptr&);
226 bool expand_src_closingedge(
int src,
int dst);
242 spot::color_proviso::color color;
246 std::unordered_map<int, element> reach_;
247 std::vector<bool> st_expanded_;
262 seen_map& map,
const state*,
const const_twa_ptr&);
264 bool expand_src_closingedge(
int src,
int dst);
280 spot::color_proviso_dead::color color;
285 std::unordered_map<int, element> reach_;
289 std::vector<int> same_scc;
291 std::vector<root_element> root_stack_;
292 std::vector<bool> st_expanded_;
304 seen_map&,
const state*,
const const_twa_ptr&);
306 bool expand_src_closingedge(
int,
int dst);
319 std::unordered_map<int, reach_element> reach_;
320 std::vector<bool> expanded_;
321 std::vector<bool> to_be_expanded_;
325 std::vector<int> same_scc;
327 std::vector<root_element> root_stack_;
338 seen_map&,
const state*,
const const_twa_ptr&);
340 bool expand_src_closingedge(
int,
int dst);
353 std::unordered_map<int, reach_element> reach_;
354 std::vector<bool> expanded_;
355 std::vector<bool> to_be_expanded_;
356 std::vector<unsigned> succ_;
360 std::vector<int> same_scc;
362 std::vector<root_element> root_stack_;
373 seen_map&,
const state*,
const const_twa_ptr&);
375 bool expand_src_closingedge(
int,
int dst);
388 std::unordered_map<int, reach_element> reach_;
389 std::vector<bool> expanded_;
390 std::vector<bool> to_be_expanded_;
391 std::vector<unsigned> succ_;
395 std::vector<int> same_scc;
397 std::vector<root_element> root_stack_;
408 seen_map&,
const state*,
const const_twa_ptr&);
410 bool expand_src_closingedge(
int,
int dst);
423 std::unordered_map<int, reach_element> reach_;
424 std::vector<bool> expanded_;
425 std::vector<bool> to_be_expanded_;
426 std::vector<unsigned> succ_;
430 std::vector<int> same_scc;
432 std::vector<root_element> root_stack_;
443 seen_map&,
const state*,
const const_twa_ptr&);
445 bool expand_src_closingedge(
int,
int dst);
458 std::unordered_map<int, reach_element> reach_;
459 std::vector<bool> expanded_;
460 std::vector<bool> to_be_expanded_;
461 std::vector<unsigned> succ_;
465 std::vector<int> same_scc;
467 std::vector<root_element> root_stack_;
477 seen_map&,
const state*,
const const_twa_ptr&);
479 bool expand_src_closingedge(
int src,
int dst);
492 std::unordered_map<int, dfs_element> on_dfs_;
502 seen_map&,
const state*,
const const_twa_ptr&);
504 bool expand_src_closingedge(
int src,
int dst);
517 std::unordered_map<int, dfs_element> on_dfs_;
An Equivalence Relation for state*.
Definition: twa.hh:140
Definition: proviso.hh:101
Definition: proviso.hh:369
Definition: proviso.hh:439
Abstract class for states.
Definition: twa.hh:42
Definition: proviso.hh:215
Definition: proviso.hh:175
Definition: proviso.hh:300
Definition: proviso.hh:497
Definition: proviso.hh:68
Definition: proviso.hh:334
Iterate over the successors of a state.
Definition: twa.hh:331
Definition: proviso.hh:56
Hash Function for state*.
Definition: twa.hh:164
Definition: proviso.hh:404
Definition: proviso.hh:148
Definition: proviso.hh:253
Definition: proviso.hh:31
Definition: proviso.hh:124
Definition: proviso.hh:472
Definition: proviso.hh:80