17 template <
typename Aut>
26 template <
typename Aut>
27 using path_t_of = std::vector<transition_t_of<Aut>>;
39 template <Automaton Aut>
43 return aut->all_states().back() + 1;
49 template <Automaton Aut>
52 return (aut->all_transitions().empty()
54 : aut->all_transitions().back() + 1);
65 template <Automaton Aut>
68 return aut->all_out(s);
75 template <Automaton Aut,
typename Pred>
84 template <Automaton Aut>
90 return aut->dst_of(t) != aut->post();
97 template <Automaton Aut>
103 return aut->labelset()->equal(aut->label_of(t), l);
114 template <Automaton Aut>
117 return aut->all_in(s);
124 template <Automaton Aut,
typename Pred>
133 template <Automaton Aut>
139 return aut->src_of(t) != aut->pre();
146 template <Automaton Aut>
152 return aut->labelset()->equal(aut->label_of(t), l);
165 template <Automaton Aut>
167 -> decltype(aut->all_out(aut->pre()))
169 return aut->all_out(aut->pre());
176 template <Automaton Aut>
178 -> decltype(aut->all_in(aut->post()))
180 return aut->all_in(aut->post());
187 template <Automaton Aut>
193 return aut->dst_of(t) == d;
198 template <Automaton Aut>
204 aut->del_transition(t);
212 template <Automaton Aut>
215 return aut->all_transitions();
220 template <Automaton Aut,
typename Pred>
227 template <Automaton Aut>
230 return aut->src_of(t) != aut->pre() && aut->dst_of(t) != aut->post();
235 template <Automaton Aut>
246 template <Automaton Aut>
std::vector< typename Cont::value_type > make_vector(const Cont &cont)
The content of cont as a vector.
size_t transitions_size(const Aut &aut)
The largest transition number, plus one.
auto transitions(const Aut &aut) -> decltype(all_transitions(aut, is_special_t< Aut >
All the transition indexes between visible states.
container_filter_range< Cont, Pred > make_container_filter_range(const Cont &cont, Pred pred)
bool is_special(const Aut &aut, transition_t_of< Aut > t)
Whether this transition is from pre or to post.
auto final_transitions(const Aut &aut) -> decltype(aut->all_in(aut->post()))
Indexes of transitions from (visible) final states.
typename detail::label_t_of_impl< base_t< ValueSet >>::type label_t_of
bool operator()(transition_t_of< Aut > t)
size_t states_size(const Aut &aut)
The largest state number, plus one.
auto initial_transitions(const Aut &aut) -> decltype(aut->all_out(aut->pre()))
Indexes of transitions to (visible) initial states.
void del_transition(const Aut &aut, state_t_of< Aut > s, state_t_of< Aut > d)
Remove all the transitions between s and d.
auto out(const Aut &aut, state_t_of< Aut > s)
Indexes of visible transitions leaving state s.
auto in(const Aut &aut, state_t_of< Aut > s)
Indexes of visible transitions arriving to state s.
auto all_out(const Aut &aut, state_t_of< Aut > s)
Indexes of transitions leaving state s.
typename detail::state_t_of_impl< base_t< ValueSet >>::type state_t_of
typename detail::transition_t_of_impl< base_t< ValueSet >>::type transition_t_of
auto outin(const Aut &aut, state_t_of< Aut > s, state_t_of< Aut > d)
Indexes of visible transitions from state s to state d.
std::vector< transition_t_of< Aut >> path_t_of
A list of transitions representing a path.
Needed for GCC 5 and 6 that refuse deduced return type for transitions() when using a lambda...
auto all_in(const Aut &aut, state_t_of< Aut > s)
Indexes of transitions entering state s.
std::vector< transition_t_of< Aut >> predecessors_t_of
A state-indexed vector of predecessor transitions from the path path.
auto all_transitions(const Aut &aut)
All the transition indexes between all states (including pre and post).