17 template <
typename Aut>
25 template <
typename Aut>
26 using path_t_of = std::vector<transition_t_of<Aut>>;
38 template <Automaton Aut>
42 return aut->all_states().back() + 1;
48 template <Automaton Aut>
51 return (aut->all_transitions().empty()
53 : aut->all_transitions().back() + 1);
64 template <Automaton Aut>
67 return aut->all_out(s);
74 template <Automaton Aut,
typename Pred>
83 template <Automaton Aut>
89 return aut->dst_of(t) != aut->post();
96 template <Automaton Aut>
102 return aut->labelset()->equal(aut->label_of(t), l);
113 template <Automaton Aut>
116 return aut->all_in(s);
123 template <Automaton Aut,
typename Pred>
132 template <Automaton Aut>
138 return aut->src_of(t) != aut->pre();
145 template <Automaton Aut>
151 return aut->labelset()->equal(aut->label_of(t), l);
164 template <Automaton Aut>
166 -> decltype(aut->all_out(aut->pre()))
168 return aut->all_out(aut->pre());
175 template <Automaton Aut>
177 -> decltype(aut->all_in(aut->post()))
179 return aut->all_in(aut->post());
186 template <Automaton Aut>
192 return aut->dst_of(t) == d;
197 template <Automaton Aut>
203 aut->del_transition(t);
211 template <Automaton Aut>
214 return aut->all_transitions();
219 template <Automaton Aut,
typename Pred>
226 template <Automaton Aut>
229 return aut->src_of(t) != aut->pre() && aut->dst_of(t) != aut->post();
234 template <Automaton Aut>
245 template <Automaton Aut>
size_t states_size(const Aut &aut)
The largest state number, plus one.
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_out(const Aut &aut, state_t_of< Aut > s)
Indexes of transitions leaving state s.
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.
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
bool operator()(transition_t_of< Aut > t)
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.
auto all_in(const Aut &aut, state_t_of< Aut > s)
Indexes of transitions entering state s.
auto all_transitions(const Aut &aut)
All the transition indexes between all states (including pre and post).
std::vector< transition_t_of< Aut >> predecessors_t_of
A state-indexed vector of predecessor transitions from the path path.
auto initial_transitions(const Aut &aut) -> decltype(aut->all_out(aut->pre()))
Indexes of transitions to (visible) initial states.
bool is_special(const Aut &aut, transition_t_of< Aut > t)
Whether this transition is from pre or to post.
Needed for GCC 5 and 6 that refuse deduced return type for transitions() when using a lambda...
auto in(const Aut &aut, state_t_of< Aut > s)
Indexes of visible transitions arriving to state s.
auto final_transitions(const Aut &aut) -> decltype(aut->all_in(aut->post()))
Indexes of transitions from (visible) final states.
container_filter_range< Cont, Pred > make_container_filter_range(const Cont &cont, Pred pred)
typename detail::label_t_of_impl< base_t< ValueSet >>::type label_t_of