18 template <Automaton Aut>
22 return aut->all_states().back() + 1;
28 template <Automaton Aut>
31 return (aut->all_transitions().empty()
33 : aut->all_transitions().back() + 1);
44 template <Automaton Aut>
47 return aut->all_out(s);
54 template <Automaton Aut,
typename Pred>
63 template <Automaton Aut>
69 return aut->dst_of(t) != aut->post();
76 template <Automaton Aut>
82 return aut->labelset()->equal(aut->label_of(t), l);
93 template <Automaton Aut>
96 return aut->all_in(s);
103 template <Automaton Aut,
typename Pred>
112 template <Automaton Aut>
118 return aut->src_of(t) != aut->pre();
125 template <Automaton Aut>
131 return aut->labelset()->equal(aut->label_of(t), l);
144 template <Automaton Aut>
146 -> decltype(aut->all_out(aut->pre()))
148 return aut->all_out(aut->pre());
155 template <Automaton Aut>
157 -> decltype(aut->all_in(aut->post()))
159 return aut->all_in(aut->post());
166 template <Automaton Aut>
172 return aut->dst_of(t) == d;
177 template <Automaton Aut>
183 aut->del_transition(t);
191 template <Automaton Aut>
194 return aut->all_transitions();
199 template <Automaton Aut,
typename Pred>
206 template <Automaton Aut>
209 return aut->src_of(t) != aut->pre() && aut->dst_of(t) != aut->post();
214 template <Automaton Aut>
225 template <Automaton Aut>
std::vector< typename Cont::value_type > make_vector(const Cont &cont)
The content of cont as a vector.
auto transitions(const Aut &aut) -> decltype(all_transitions(aut, is_special_t< Aut >
All the transition indexes between visible states.
typename detail::transition_t_of_impl< base_t< ValueSet >>::type transition_t_of
size_t states_size(const Aut &aut)
The largest state number, plus one.
auto in(const Aut &aut, state_t_of< Aut > s)
Indexes of visible transitions arriving to state s.
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 all_transitions(const Aut &aut)
All the transition indexes between all states (including pre and post).
size_t transitions_size(const Aut &aut)
The largest transition number, plus one.
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.
typename detail::state_t_of_impl< base_t< ValueSet >>::type state_t_of
bool is_special(const Aut &aut, transition_t_of< Aut > t)
Whether this transition is from pre or to post.
typename detail::label_t_of_impl< base_t< ValueSet >>::type label_t_of
auto all_in(const Aut &aut, state_t_of< Aut > s)
Indexes of transitions entering state s.
bool operator()(transition_t_of< Aut > t)
container_filter_range< Cont, Pred > make_container_filter_range(const Cont &cont, Pred pred)
auto initial_transitions(const Aut &aut) -> decltype(aut->all_out(aut->pre()))
Indexes of transitions to (visible) initial states.
auto all_out(const Aut &aut, state_t_of< Aut > s)
Indexes of transitions leaving state s.
auto final_transitions(const Aut &aut) -> decltype(aut->all_in(aut->post()))
Indexes of transitions from (visible) final states.
Needed for GCC 5 and 6 that refuse deduced return type for transitions() when using a lambda...