Vcsn
2.2
Be Rational
|
Detect epsilon-circuits. More...
#include <is-eps-acyclic.hh>
Public Types | |
enum | status { unknown, ok, circuit } |
using | automaton_t = std::remove_cv_t< Aut > |
using | state_t = state_t_of< automaton_t > |
using | label_t = label_t_of< automaton_t > |
Public Member Functions | |
epsilon_acyclic (const automaton_t &aut) | |
bool | is_eps_acyclic () |
bool | has_spontaneous_circuit (state_t s) |
Public Attributes | |
std::unordered_map< state_t, status > | tag |
automaton_t | aut_ |
label_t | one = aut_->labelset()->one() |
Detect epsilon-circuits.
In this algorithm, only epsilon-transitions are considered.
Definition at line 24 of file is-eps-acyclic.hh.
using vcsn::detail::epsilon_acyclic< Aut, true >::automaton_t = std::remove_cv_t<Aut> |
Definition at line 26 of file is-eps-acyclic.hh.
using vcsn::detail::epsilon_acyclic< Aut, true >::label_t = label_t_of<automaton_t> |
Definition at line 28 of file is-eps-acyclic.hh.
using vcsn::detail::epsilon_acyclic< Aut, true >::state_t = state_t_of<automaton_t> |
Definition at line 27 of file is-eps-acyclic.hh.
enum vcsn::detail::epsilon_acyclic< Aut, true >::status |
Enumerator | |
---|---|
unknown |
The graph reachable from s is under exploration. |
ok |
There is no eps-circuit accessible from s. |
circuit |
There is an eps-circuit accessible from s. |
Definition at line 77 of file is-eps-acyclic.hh.
|
inline |
Definition at line 30 of file is-eps-acyclic.hh.
|
inline |
Definition at line 44 of file is-eps-acyclic.hh.
References BUILTIN_UNREACHABLE, and vcsn::detail::out().
|
inline |
Definition at line 34 of file is-eps-acyclic.hh.
automaton_t vcsn::detail::epsilon_acyclic< Aut, true >::aut_ |
Definition at line 90 of file is-eps-acyclic.hh.
label_t vcsn::detail::epsilon_acyclic< Aut, true >::one = aut_->labelset()->one() |
Definition at line 91 of file is-eps-acyclic.hh.
std::unordered_map<state_t, status> vcsn::detail::epsilon_acyclic< Aut, true >::tag |
Definition at line 88 of file is-eps-acyclic.hh.