Vcsn  2.4
Be Rational
vcsn::detail::bounded_lag_checker< Aut > Class Template Reference

#include <has-bounded-lag.hh>

Collaboration diagram for vcsn::detail::bounded_lag_checker< Aut >:

Public Member Functions

 bounded_lag_checker (const automaton_t &aut)
 The vectors are indexed by the state number. More...
 
template<std::size_t... I>
void add_delay (delay_t &d, transition_t tr, seq< I... >)
 Add the delay from the transition's label to the given delay. More...
 
void add_delay (delay_t &d, transition_t tr)
 
bool has_bounded_lag (state_t src)
 Depth-first search. More...
 
bool has_bounded_lag ()
 

Static Public Member Functions

template<std::size_t I>
static int get_size_tape (label_t l)
 Get the size (number of letters) of a label on a specific tape. More...
 

Private Types

enum  visit_state { not_visited, visiting, visited }
 
using automaton_t = Aut
 
using state_t = state_t_of< automaton_t >
 
using labelset_t = labelset_t_of< automaton_t >
 
using label_t = typename labelset_t::value_t
 
using transition_t = transition_t_of< automaton_t >
 
using visited_t = std::vector< visit_state >
 Keep track of what states we have visited or are visiting. More...
 
template<std::size_t... I>
using seq = vcsn::detail::index_sequence< I... >
 A static list of integers. More...
 
using delay_index_t = detail::make_index_sequence< number_of_tapes-1 >
 
using delay_t = std::array< int, number_of_tapes-1 >
 The delay associated with each state. More...
 

Private Attributes

automaton_t aut_
 
visited_t v_
 
predecessors_t_of< automaton_tp_
 

Static Private Attributes

static constexpr size_t number_of_tapes = labelset_t_of<Aut>::size()
 

Detailed Description

template<Automaton Aut>
class vcsn::detail::bounded_lag_checker< Aut >

Definition at line 18 of file has-bounded-lag.hh.

Member Typedef Documentation

template<Automaton Aut>
using vcsn::detail::bounded_lag_checker< Aut >::automaton_t = Aut
private

Definition at line 29 of file has-bounded-lag.hh.

Definition at line 48 of file has-bounded-lag.hh.

template<Automaton Aut>
using vcsn::detail::bounded_lag_checker< Aut >::delay_t = std::array<int, number_of_tapes - 1>
private

The delay associated with each state.

Definition at line 51 of file has-bounded-lag.hh.

template<Automaton Aut>
using vcsn::detail::bounded_lag_checker< Aut >::label_t = typename labelset_t::value_t
private

Definition at line 32 of file has-bounded-lag.hh.

template<Automaton Aut>
using vcsn::detail::bounded_lag_checker< Aut >::labelset_t = labelset_t_of<automaton_t>
private

Definition at line 31 of file has-bounded-lag.hh.

template<Automaton Aut>
template<std::size_t... I>
using vcsn::detail::bounded_lag_checker< Aut >::seq = vcsn::detail::index_sequence<I...>
private

A static list of integers.

Definition at line 46 of file has-bounded-lag.hh.

template<Automaton Aut>
using vcsn::detail::bounded_lag_checker< Aut >::state_t = state_t_of<automaton_t>
private

Definition at line 30 of file has-bounded-lag.hh.

template<Automaton Aut>
using vcsn::detail::bounded_lag_checker< Aut >::transition_t = transition_t_of<automaton_t>
private

Definition at line 33 of file has-bounded-lag.hh.

template<Automaton Aut>
using vcsn::detail::bounded_lag_checker< Aut >::visited_t = std::vector<visit_state>
private

Keep track of what states we have visited or are visiting.

Definition at line 42 of file has-bounded-lag.hh.

Member Enumeration Documentation

template<Automaton Aut>
enum vcsn::detail::bounded_lag_checker::visit_state
private
Enumerator
not_visited 
visiting 
visited 

Definition at line 35 of file has-bounded-lag.hh.

Constructor & Destructor Documentation

template<Automaton Aut>
vcsn::detail::bounded_lag_checker< Aut >::bounded_lag_checker ( const automaton_t aut)
inline

The vectors are indexed by the state number.

Definition at line 55 of file has-bounded-lag.hh.

Member Function Documentation

template<Automaton Aut>
template<std::size_t... I>
void vcsn::detail::bounded_lag_checker< Aut >::add_delay ( delay_t d,
transition_t  tr,
seq< I... >   
)
inline

Add the delay from the transition's label to the given delay.

Definition at line 71 of file has-bounded-lag.hh.

References vcsn::detail::bounded_lag_checker< Aut >::aut_.

Referenced by vcsn::detail::bounded_lag_checker< Aut >::add_delay(), and vcsn::detail::bounded_lag_checker< Aut >::has_bounded_lag().

template<Automaton Aut>
void vcsn::detail::bounded_lag_checker< Aut >::add_delay ( delay_t d,
transition_t  tr 
)
inline

Definition at line 78 of file has-bounded-lag.hh.

References vcsn::detail::bounded_lag_checker< Aut >::add_delay().

Here is the call graph for this function:

template<Automaton Aut>
template<std::size_t I>
static int vcsn::detail::bounded_lag_checker< Aut >::get_size_tape ( label_t  l)
inlinestatic

Get the size (number of letters) of a label on a specific tape.

Definition at line 63 of file has-bounded-lag.hh.

References vcsn::rat::size().

Here is the call graph for this function:

template<Automaton Aut>
bool vcsn::detail::bounded_lag_checker< Aut >::has_bounded_lag ( )
inline

Member Data Documentation

template<Automaton Aut>
constexpr size_t vcsn::detail::bounded_lag_checker< Aut >::number_of_tapes = labelset_t_of<Aut>::size()
staticprivate

Definition at line 22 of file has-bounded-lag.hh.

template<Automaton Aut>
predecessors_t_of<automaton_t> vcsn::detail::bounded_lag_checker< Aut >::p_
private
template<Automaton Aut>
visited_t vcsn::detail::bounded_lag_checker< Aut >::v_
private

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