Vcsn
2.3
Be Rational
|
Detect circuits. More...
#include <is-acyclic.hh>
Public Types | |
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 | |
is_acyclic_impl (const automaton_t &aut, boost::optional< label_t > label={}) | |
bool | operator() () |
Whether the automaton is acyclic. More... | |
Private Types | |
enum | status { unknown, ok, circuit } |
Private Member Functions | |
bool | has_circuit_ (state_t s) |
Return true if an circuit is accessible from s. More... | |
Private Attributes | |
std::unordered_map< state_t, status > | tag_ |
automaton_t | aut_ |
boost::optional< label_t > | one_ |
Detect circuits.
Definition at line 20 of file is-acyclic.hh.
using vcsn::detail::is_acyclic_impl< Aut >::automaton_t = std::remove_cv_t<Aut> |
Definition at line 23 of file is-acyclic.hh.
using vcsn::detail::is_acyclic_impl< Aut >::label_t = label_t_of<automaton_t> |
Definition at line 25 of file is-acyclic.hh.
using vcsn::detail::is_acyclic_impl< Aut >::state_t = state_t_of<automaton_t> |
Definition at line 24 of file is-acyclic.hh.
|
private |
Enumerator | |
---|---|
unknown |
The graph reachable from s is under exploration. |
ok |
There is no circuit accessible from s. |
circuit |
There is an circuit accessible from s. |
Definition at line 92 of file is-acyclic.hh.
|
inline |
Definition at line 27 of file is-acyclic.hh.
|
inlineprivate |
Return true if an circuit is accessible from s.
Definition at line 44 of file is-acyclic.hh.
References vcsn::detail::is_acyclic_impl< Aut >::aut_, BUILTIN_UNREACHABLE, vcsn::detail::is_acyclic_impl< Aut >::circuit, vcsn::detail::is_acyclic_impl< Aut >::ok, vcsn::detail::is_acyclic_impl< Aut >::one_, vcsn::detail::out(), vcsn::detail::is_acyclic_impl< Aut >::tag_, and vcsn::detail::is_acyclic_impl< Aut >::unknown.
Referenced by vcsn::detail::is_acyclic_impl< Aut >::operator()().
|
inline |
Whether the automaton is acyclic.
Definition at line 34 of file is-acyclic.hh.
References vcsn::detail::is_acyclic_impl< Aut >::aut_, and vcsn::detail::is_acyclic_impl< Aut >::has_circuit_().
|
private |
Definition at line 105 of file is-acyclic.hh.
Referenced by vcsn::detail::is_acyclic_impl< Aut >::has_circuit_(), and vcsn::detail::is_acyclic_impl< Aut >::operator()().
|
private |
Definition at line 106 of file is-acyclic.hh.
Referenced by vcsn::detail::is_acyclic_impl< Aut >::has_circuit_().
|
private |
Definition at line 103 of file is-acyclic.hh.
Referenced by vcsn::detail::is_acyclic_impl< Aut >::has_circuit_().