|  | Vcsn
    2.4
    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_().