Vcsn  2.2
Be Rational
vcsn::detail::epsilon_acyclic< Aut, true > Struct Template Reference

Detect epsilon-circuits. More...

#include <is-eps-acyclic.hh>

Collaboration diagram for vcsn::detail::epsilon_acyclic< Aut, true >:

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, statustag
 
automaton_t aut_
 
label_t one = aut_->labelset()->one()
 

Detailed Description

template<Automaton Aut>
struct vcsn::detail::epsilon_acyclic< Aut, true >

Detect epsilon-circuits.

In this algorithm, only epsilon-transitions are considered.

Definition at line 24 of file is-eps-acyclic.hh.

Member Typedef Documentation

template<Automaton Aut>
using vcsn::detail::epsilon_acyclic< Aut, true >::automaton_t = std::remove_cv_t<Aut>

Definition at line 26 of file is-eps-acyclic.hh.

template<Automaton Aut>
using vcsn::detail::epsilon_acyclic< Aut, true >::label_t = label_t_of<automaton_t>

Definition at line 28 of file is-eps-acyclic.hh.

template<Automaton Aut>
using vcsn::detail::epsilon_acyclic< Aut, true >::state_t = state_t_of<automaton_t>

Definition at line 27 of file is-eps-acyclic.hh.

Member Enumeration Documentation

template<Automaton Aut>
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.

Constructor & Destructor Documentation

template<Automaton Aut>
vcsn::detail::epsilon_acyclic< Aut, true >::epsilon_acyclic ( const automaton_t aut)
inline

Definition at line 30 of file is-eps-acyclic.hh.

Member Function Documentation

template<Automaton Aut>
bool vcsn::detail::epsilon_acyclic< Aut, true >::has_spontaneous_circuit ( state_t  s)
inline

Definition at line 44 of file is-eps-acyclic.hh.

References BUILTIN_UNREACHABLE, and vcsn::detail::out().

Here is the call graph for this function:

template<Automaton Aut>
bool vcsn::detail::epsilon_acyclic< Aut, true >::is_eps_acyclic ( )
inline

Definition at line 34 of file is-eps-acyclic.hh.

Member Data Documentation

template<Automaton Aut>
automaton_t vcsn::detail::epsilon_acyclic< Aut, true >::aut_

Definition at line 90 of file is-eps-acyclic.hh.

template<Automaton Aut>
label_t vcsn::detail::epsilon_acyclic< Aut, true >::one = aut_->labelset()->one()

Definition at line 91 of file is-eps-acyclic.hh.

template<Automaton Aut>
std::unordered_map<state_t, status> vcsn::detail::epsilon_acyclic< Aut, true >::tag

Definition at line 88 of file is-eps-acyclic.hh.


The documentation for this struct was generated from the following file: