Vcsn  2.3
Be Rational
vcsn::detail::synchronizer< Aut > Class Template Reference

#include <synchronize.hh>

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

Public Types

using automaton_t = Aut
 
using out_automaton_t = synchronized_automaton< automaton_t >
 
using state_t = state_t_of< automaton_t >
 
using labelset_t = labelset_t_of< out_automaton_t >
 
using weightset_t = weightset_t_of< out_automaton_t >
 
using label_t = typename labelset_t::value_t
 
using state_name_t = typename out_automaton_t::element_type::state_name_t
 
template<std::size_t... I>
using seq = vcsn::detail::index_sequence< I... >
 A static list of integers. More...
 
using index_t = detail::make_index_sequence< number_of_tapes >
 
template<size_t I>
using tape_labelset_t = typename labelset_t::template valueset_t< I >
 

Public Member Functions

 synchronizer (const automaton_t &aut)
 
out_automaton_t synchronize ()
 

Static Public Attributes

static constexpr size_t number_of_tapes = labelset_t_of<Aut>::size()
 
static constexpr index_t indices = {}
 

Private Member Functions

std::pair< label_t, label_tget_prefix (const label_t &l)
 
std::pair< label_t, label_tget_prefix (size_t length, const label_t &l)
 Split the label in prefix/suffix, with the prefix of size length. More...
 
size_t get_min_length (const label_t &l)
 
template<size_t... I>
size_t get_min_length_ (const label_t &l, seq< I... >)
 

Private Attributes

automaton_t in_aut_
 
out_automaton_t out_aut_
 

Detailed Description

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

Definition at line 209 of file synchronize.hh.

Member Typedef Documentation

template<Automaton Aut>
using vcsn::detail::synchronizer< Aut >::automaton_t = Aut

Definition at line 215 of file synchronize.hh.

Definition at line 229 of file synchronize.hh.

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

Definition at line 220 of file synchronize.hh.

template<Automaton Aut>
using vcsn::detail::synchronizer< Aut >::labelset_t = labelset_t_of<out_automaton_t>

Definition at line 218 of file synchronize.hh.

Definition at line 216 of file synchronize.hh.

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

A static list of integers.

Definition at line 225 of file synchronize.hh.

template<Automaton Aut>
using vcsn::detail::synchronizer< Aut >::state_name_t = typename out_automaton_t::element_type::state_name_t

Definition at line 221 of file synchronize.hh.

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

Definition at line 217 of file synchronize.hh.

template<Automaton Aut>
template<size_t I>
using vcsn::detail::synchronizer< Aut >::tape_labelset_t = typename labelset_t::template valueset_t<I>

Definition at line 234 of file synchronize.hh.

template<Automaton Aut>
using vcsn::detail::synchronizer< Aut >::weightset_t = weightset_t_of<out_automaton_t>

Definition at line 219 of file synchronize.hh.

Constructor & Destructor Documentation

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

Definition at line 236 of file synchronize.hh.

Member Function Documentation

template<Automaton Aut>
size_t vcsn::detail::synchronizer< Aut >::get_min_length ( const label_t l)
inlineprivate

Definition at line 315 of file synchronize.hh.

template<Automaton Aut>
template<size_t... I>
size_t vcsn::detail::synchronizer< Aut >::get_min_length_ ( const label_t l,
seq< I... >   
)
inlineprivate

Definition at line 322 of file synchronize.hh.

References vcsn::min, and vcsn::rat::size().

Here is the call graph for this function:

template<Automaton Aut>
std::pair<label_t, label_t> vcsn::detail::synchronizer< Aut >::get_prefix ( const label_t l)
inlineprivate

Definition at line 283 of file synchronize.hh.

template<Automaton Aut>
std::pair<label_t, label_t> vcsn::detail::synchronizer< Aut >::get_prefix ( size_t  length,
const label_t l 
)
inlineprivate

Split the label in prefix/suffix, with the prefix of size length.

Definition at line 291 of file synchronize.hh.

References vcsn::prefix(), and vcsn::suffix().

Here is the call graph for this function:

template<Automaton Aut>
out_automaton_t vcsn::detail::synchronizer< Aut >::synchronize ( )
inline

Definition at line 240 of file synchronize.hh.

Referenced by vcsn::detail::synchronize().

Member Data Documentation

template<Automaton Aut>
automaton_t vcsn::detail::synchronizer< Aut >::in_aut_
private

Definition at line 326 of file synchronize.hh.

template<Automaton Aut>
constexpr index_t vcsn::detail::synchronizer< Aut >::indices = {}
static

Definition at line 231 of file synchronize.hh.

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

Definition at line 227 of file synchronize.hh.

template<Automaton Aut>
out_automaton_t vcsn::detail::synchronizer< Aut >::out_aut_
private

Definition at line 327 of file synchronize.hh.


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