![]() |
Vcsn
2.1
Be Rational
|
An automaton whose states are tuples of states of automata. More...
#include <tuple-automaton.hh>
Public Types | |
using | context_t = context_t_of< Aut > |
The type of context of the result. More... | |
using | labelset_t = labelset_t_of< context_t > |
using | weightset_t = weightset_t_of< context_t > |
using | label_t = typename labelset_t::value_t |
using | weight_t = typename weightset_t::value_t |
using | automata_t = std::tuple< Auts...> |
The type of input automata. More... | |
template<size_t I> | |
using | input_automaton_t = base_t< tuple_element_t< I, automata_t >> |
The type of the Ith input automaton, unqualified. More... | |
using | state_t = state_t_of< automaton_t > |
Result state type. More... | |
using | state_name_t = std::tuple< state_t_of< Auts >...> |
State names: Tuple of states of input automata. More... | |
using | origins_t = std::map< state_t, state_name_t > |
A map from result state to tuple of original states. More... | |
template<std::size_t... I> | |
using | seq = vcsn::detail::index_sequence< I...> |
A static list of integers. More... | |
using | indices_t = vcsn::detail::make_index_sequence< sizeof...(Auts)> |
The list of automaton indices as a static list. More... | |
using | map = std::map< state_name_t, state_t > |
Map state-tuple -> result-state. More... | |
![]() | |
using | automaton_t = Aut |
The type of automaton to wrap. More... | |
using | context_t = context_t_of< Aut > |
using | element_type = typename automaton_t::element_type |
The automaton type, without shared_ptr. More... | |
using | fresh_automaton_t = typename element_type::template fresh_automaton_t< Ctx > |
The (shared pointer) type to use it we have to create an automaton of the same (underlying) type. More... | |
using | kind_t = typename context_t::kind_t |
using | labelset_t = typename context_t::labelset_t |
using | labelset_ptr = typename context_t::labelset_ptr |
using | label_t = typename labelset_t::value_t |
using | weightset_t = typename context_t::weightset_t |
using | weightset_ptr = typename context_t::weightset_ptr |
using | weight_t = typename weightset_t::value_t |
using | state_t = state_t_of< automaton_t > |
using | transition_t = transition_t_of< automaton_t > |
Public Member Functions | |
std::ostream & | print_set (std::ostream &o, format fmt={}) const |
tuple_automaton_impl (const automaton_t &aut, const Auts &...auts) | |
bool | state_has_name (typename super_t::state_t s) const |
std::ostream & | print_state_name (typename super_t::state_t s, std::ostream &o, format fmt={}, bool delimit=false) const |
const origins_t & | origins () const |
A map from result state to tuple of original states. More... | |
std::ostream & | print_set_ (std::ostream &o, format fmt) const |
The setname of the sub automata. More... | |
template<size_t... I> | |
std::ostream & | print_set_ (std::ostream &o, format fmt, seq< I...>) const |
state_name_t | pre_ () const |
The name of the pre of the output automaton. More... | |
template<size_t... I> | |
state_name_t | pre_ (seq< I...>) const |
state_name_t | post_ () const |
The name of the post of the output automaton. More... | |
template<size_t... I> | |
state_name_t | post_ (seq< I...>) const |
state_t | state (const state_name_t &state) |
The state in the product corresponding to a pair of states of operands. More... | |
state_t | state (state_t_of< Auts >...ss) |
template<size_t... I> | |
std::ostream & | print_state_name_ (typename super_t::state_t s, std::ostream &o, format fmt, seq< I...>) const |
![]() | |
automaton_decorator (automaton_t aut) | |
automaton_decorator (const automaton_decorator &aut) | |
automaton_decorator (const context_t &ctx) | |
automaton_decorator (automaton_decorator &&aut) | |
automaton_decorator & | operator= (automaton_decorator &&that) |
automaton_t | strip () |
auto | all_in (Args &&...args) const -> decltype(aut_-> all_in(std::forward< Args >(args)...)) |
auto | all_out (Args &&...args) const -> decltype(aut_-> all_out(std::forward< Args >(args)...)) |
auto | all_states (Args &&...args) const -> decltype(aut_-> all_states(std::forward< Args >(args)...)) |
auto | all_transitions (Args &&...args) const -> decltype(aut_-> all_transitions(std::forward< Args >(args)...)) |
auto | context (Args &&...args) const -> decltype(aut_-> context(std::forward< Args >(args)...)) |
auto | dst_of (Args &&...args) const -> decltype(aut_-> dst_of(std::forward< Args >(args)...)) |
auto | final_transitions (Args &&...args) const -> decltype(aut_-> final _transitions(std |
auto | get_final_weight (Args &&...args) const -> decltype(aut_-> get_ final _weight(std |
auto | get_initial_weight (Args &&...args) const -> decltype(aut_-> get_initial_weight(std::forward< Args >(args)...)) |
auto | get_transition (Args &&...args) const -> decltype(aut_-> get_transition(std::forward< Args >(args)...)) |
auto | has_state (Args &&...args) const -> decltype(aut_-> has_state(std::forward< Args >(args)...)) |
auto | has_transition (Args &&...args) const -> decltype(aut_-> has_transition(std::forward< Args >(args)...)) |
auto | in (Args &&...args) const -> decltype(aut_-> in(std::forward< Args >(args)...)) |
auto | initial_transitions (Args &&...args) const -> decltype(aut_-> initial_transitions(std::forward< Args >(args)...)) |
auto | is_final (Args &&...args) const -> decltype(aut_-> is_ final(std |
auto | is_initial (Args &&...args) const -> decltype(aut_-> is_initial(std::forward< Args >(args)...)) |
auto | label_of (Args &&...args) const -> decltype(aut_-> label_of(std::forward< Args >(args)...)) |
auto | labelset (Args &&...args) const -> decltype(aut_-> labelset(std::forward< Args >(args)...)) |
auto | num_all_states (Args &&...args) const -> decltype(aut_-> num_all_states(std::forward< Args >(args)...)) |
auto | num_finals (Args &&...args) const -> decltype(aut_-> num_ final s(std |
auto | num_initials (Args &&...args) const -> decltype(aut_-> num_initials(std::forward< Args >(args)...)) |
auto | num_states (Args &&...args) const -> decltype(aut_-> num_states(std::forward< Args >(args)...)) |
auto | num_transitions (Args &&...args) const -> decltype(aut_-> num_transitions(std::forward< Args >(args)...)) |
auto | out (Args &&...args) const -> decltype(aut_-> out(std::forward< Args >(args)...)) |
auto | outin (Args &&...args) const -> decltype(aut_-> outin(std::forward< Args >(args)...)) |
auto | prepost_label (Args &&...args) const -> decltype(aut_-> prepost_label(std::forward< Args >(args)...)) |
auto | print_set (Args &&...args) const -> decltype(aut_-> print_set(std::forward< Args >(args)...)) |
auto | print_state (Args &&...args) const -> decltype(aut_-> print_state(std::forward< Args >(args)...)) |
auto | print_state_name (Args &&...args) const -> decltype(aut_-> print_state_name(std::forward< Args >(args)...)) |
auto | src_of (Args &&...args) const -> decltype(aut_-> src_of(std::forward< Args >(args)...)) |
auto | state_has_name (Args &&...args) const -> decltype(aut_-> state_has_name(std::forward< Args >(args)...)) |
auto | state_is_strict (Args &&...args) const -> decltype(aut_-> state_is_strict(std::forward< Args >(args)...)) |
auto | states (Args &&...args) const -> decltype(aut_-> states(std::forward< Args >(args)...)) |
auto | transitions (Args &&...args) const -> decltype(aut_-> transitions(std::forward< Args >(args)...)) |
auto | weight_of (Args &&...args) const -> decltype(aut_-> weight_of(std::forward< Args >(args)...)) |
auto | weightset (Args &&...args) const -> decltype(aut_-> weightset(std::forward< Args >(args)...)) |
auto | add_final (Args &&...args) -> decltype(aut_-> add_ final(std |
auto | add_initial (Args &&...args) -> decltype(aut_-> add_initial(std::forward< Args >(args)...)) |
auto | add_transition (Args &&...args) -> decltype(aut_-> add_transition(std::forward< Args >(args)...)) |
auto | add_transition_copy (Args &&...args) -> decltype(aut_-> add_transition_copy(std::forward< Args >(args)...)) |
auto | add_weight (Args &&...args) -> decltype(aut_-> add_weight(std::forward< Args >(args)...)) |
auto | del_state (Args &&...args) -> decltype(aut_-> del_state(std::forward< Args >(args)...)) |
auto | del_transition (Args &&...args) -> decltype(aut_-> del_transition(std::forward< Args >(args)...)) |
auto | lmul_weight (Args &&...args) -> decltype(aut_-> lmul_weight(std::forward< Args >(args)...)) |
auto | new_state (Args &&...args) -> decltype(aut_-> new_state(std::forward< Args >(args)...)) |
auto | new_transition (Args &&...args) -> decltype(aut_-> new_transition(std::forward< Args >(args)...)) |
auto | new_transition_copy (Args &&...args) -> decltype(aut_-> new_transition_copy(std::forward< Args >(args)...)) |
auto | rmul_weight (Args &&...args) -> decltype(aut_-> rmul_weight(std::forward< Args >(args)...)) |
auto | set_final (Args &&...args) -> decltype(aut_-> set_ final(std |
auto | set_initial (Args &&...args) -> decltype(aut_-> set_initial(std::forward< Args >(args)...)) |
auto | set_transition (Args &&...args) -> decltype(aut_-> set_transition(std::forward< Args >(args)...)) |
auto | set_weight (Args &&...args) -> decltype(aut_-> set_weight(std::forward< Args >(args)...)) |
auto | unset_final (Args &&...args) -> decltype(aut_-> unset_ final(std |
auto | unset_initial (Args &&...args) -> decltype(aut_-> unset_initial(std::forward< Args >(args)...)) |
Static Public Member Functions | |
static symbol | sname () |
static std::string | sname_ () |
The sname of the sub automata. More... | |
![]() | |
static constexpr auto | null_state (Args &&...args) -> decltype(element_type::null_state(std::forward< Args >(args)...)) |
static constexpr auto | null_transition (Args &&...args) -> decltype(element_type::null_transition(std::forward< Args >(args)...)) |
static constexpr auto | post (Args &&...args) -> decltype(element_type::post(std::forward< Args >(args)...)) |
static constexpr auto | pre (Args &&...args) -> decltype(element_type::pre(std::forward< Args >(args)...)) |
static constexpr auto | sname (Args &&...args) -> decltype(element_type::sname(std::forward< Args >(args)...)) |
Public Attributes | |
automata_t | auts_ |
Input automata, supplied at construction time. More... | |
map | pmap_ |
std::deque< std::pair< state_name_t, state_t > > | todo_ |
Worklist of state tuples. More... | |
origins_t | origins_ |
Static Public Attributes | |
static constexpr indices_t | indices {} |
Private Types | |
using | automaton_t = Aut |
The type of the resulting automaton. More... | |
using | super_t = automaton_decorator< automaton_t > |
Additional Inherited Members | |
![]() | |
automaton_t | aut_ |
The wrapped automaton, possibly const. More... | |
An automaton whose states are tuples of states of automata.
Corresponds to the Cartesian product of states.
Aut | the output automaton type |
Auts | the input automaton types |
Definition at line 29 of file tuple-automaton.hh.
using vcsn::detail::tuple_automaton_impl< Aut, Auts >::automata_t = std::tuple<Auts...> |
The type of input automata.
Definition at line 65 of file tuple-automaton.hh.
|
private |
The type of the resulting automaton.
Definition at line 33 of file tuple-automaton.hh.
using vcsn::detail::tuple_automaton_impl< Aut, Auts >::context_t = context_t_of<Aut> |
The type of context of the result.
The type is the "join" of the contexts, independently of the algorithm. However, its value differs: in the case of the product, the labelset is the meet of the labelsets, it is its join for shuffle and infiltration.
Definition at line 56 of file tuple-automaton.hh.
using vcsn::detail::tuple_automaton_impl< Aut, Auts >::indices_t = vcsn::detail::make_index_sequence<sizeof...(Auts)> |
The list of automaton indices as a static list.
Definition at line 123 of file tuple-automaton.hh.
using vcsn::detail::tuple_automaton_impl< Aut, Auts >::input_automaton_t = base_t<tuple_element_t<I, automata_t>> |
The type of the Ith input automaton, unqualified.
Definition at line 69 of file tuple-automaton.hh.
using vcsn::detail::tuple_automaton_impl< Aut, Auts >::label_t = typename labelset_t::value_t |
Definition at line 60 of file tuple-automaton.hh.
using vcsn::detail::tuple_automaton_impl< Aut, Auts >::labelset_t = labelset_t_of<context_t> |
Definition at line 57 of file tuple-automaton.hh.
using vcsn::detail::tuple_automaton_impl< Aut, Auts >::map = std::map<state_name_t, state_t> |
Map state-tuple -> result-state.
Definition at line 246 of file tuple-automaton.hh.
using vcsn::detail::tuple_automaton_impl< Aut, Auts >::origins_t = std::map<state_t, state_name_t> |
A map from result state to tuple of original states.
Definition at line 106 of file tuple-automaton.hh.
using vcsn::detail::tuple_automaton_impl< Aut, Auts >::seq = vcsn::detail::index_sequence<I...> |
A static list of integers.
Definition at line 120 of file tuple-automaton.hh.
using vcsn::detail::tuple_automaton_impl< Aut, Auts >::state_name_t = std::tuple<state_t_of<Auts>...> |
State names: Tuple of states of input automata.
Definition at line 103 of file tuple-automaton.hh.
using vcsn::detail::tuple_automaton_impl< Aut, Auts >::state_t = state_t_of<automaton_t> |
Result state type.
Definition at line 101 of file tuple-automaton.hh.
|
private |
Definition at line 34 of file tuple-automaton.hh.
using vcsn::detail::tuple_automaton_impl< Aut, Auts >::weight_t = typename weightset_t::value_t |
Definition at line 61 of file tuple-automaton.hh.
using vcsn::detail::tuple_automaton_impl< Aut, Auts >::weightset_t = weightset_t_of<context_t> |
Definition at line 58 of file tuple-automaton.hh.
|
inline |
Definition at line 74 of file tuple-automaton.hh.
References vcsn::detail::automaton_decorator< Aut >::aut_, vcsn::detail::tuple_automaton_impl< Aut, Auts >::pmap_, vcsn::detail::tuple_automaton_impl< Aut, Auts >::post_(), and vcsn::detail::tuple_automaton_impl< Aut, Auts >::pre_().
|
inline |
A map from result state to tuple of original states.
Definition at line 109 of file tuple-automaton.hh.
References vcsn::detail::tuple_automaton_impl< Aut, Auts >::origins_, and vcsn::detail::tuple_automaton_impl< Aut, Auts >::pmap_.
Referenced by vcsn::detail::tuple_automaton_impl< Aut, Auts >::state_has_name().
|
inline |
The name of the post of the output automaton.
Definition at line 180 of file tuple-automaton.hh.
Referenced by vcsn::detail::tuple_automaton_impl< Aut, Auts >::tuple_automaton_impl().
|
inline |
Definition at line 186 of file tuple-automaton.hh.
|
inline |
The name of the pre of the output automaton.
Definition at line 166 of file tuple-automaton.hh.
Referenced by vcsn::detail::tuple_automaton_impl< Aut, Auts >::tuple_automaton_impl().
|
inline |
Definition at line 172 of file tuple-automaton.hh.
|
inline |
Definition at line 43 of file tuple-automaton.hh.
Referenced by vcsn::detail::tuple_automaton_impl< Aut, Auts >::print_set_().
|
inline |
The setname of the sub automata.
Definition at line 141 of file tuple-automaton.hh.
References vcsn::detail::tuple_automaton_impl< Aut, Auts >::indices.
|
inline |
Definition at line 147 of file tuple-automaton.hh.
References vcsn::detail::automaton_decorator< Aut >::aut_, vcsn::detail::tuple_automaton_impl< Aut, Auts >::auts_, vcsn::detail::tuple_automaton_impl< Aut, Auts >::print_set(), and vcsn::detail::void.
|
inline |
Definition at line 88 of file tuple-automaton.hh.
|
inline |
Definition at line 218 of file tuple-automaton.hh.
|
inlinestatic |
Definition at line 37 of file tuple-automaton.hh.
References vcsn::detail::tuple_automaton_impl< Aut, Auts >::sname_().
|
inlinestatic |
The sname of the sub automata.
Definition at line 127 of file tuple-automaton.hh.
References vcsn::sname(), and vcsn::detail::void.
Referenced by vcsn::detail::tuple_automaton_impl< Aut, Auts >::sname().
|
inline |
The state in the product corresponding to a pair of states of operands.
Add the given two source-automaton states to the worklist for the given result automaton if they aren't already there, updating the map; in any case return.
Definition at line 199 of file tuple-automaton.hh.
|
inline |
Definition at line 211 of file tuple-automaton.hh.
|
inline |
Definition at line 82 of file tuple-automaton.hh.
References vcsn::has(), and vcsn::detail::tuple_automaton_impl< Aut, Auts >::origins().
automata_t vcsn::detail::tuple_automaton_impl< Aut, Auts >::auts_ |
Input automata, supplied at construction time.
Definition at line 243 of file tuple-automaton.hh.
Referenced by vcsn::detail::tuple_automaton_impl< Aut, Auts >::print_set_().
|
static |
Definition at line 124 of file tuple-automaton.hh.
Referenced by vcsn::detail::tuple_automaton_impl< Aut, Auts >::print_set_().
|
mutable |
Definition at line 252 of file tuple-automaton.hh.
Referenced by vcsn::detail::tuple_automaton_impl< Aut, Auts >::origins().
map vcsn::detail::tuple_automaton_impl< Aut, Auts >::pmap_ |
Definition at line 247 of file tuple-automaton.hh.
Referenced by vcsn::detail::tuple_automaton_impl< Aut, Auts >::origins(), and vcsn::detail::tuple_automaton_impl< Aut, Auts >::tuple_automaton_impl().
std::deque<std::pair<state_name_t, state_t> > vcsn::detail::tuple_automaton_impl< Aut, Auts >::todo_ |
Worklist of state tuples.
Definition at line 250 of file tuple-automaton.hh.