![]() |
Vcsn
2.1
Be Rational
|
Build the (accessible part of the) product. More...
#include <conjunction.hh>
Classes | |
struct | label_equal_p |
struct | not_to_post_p |
Public Types | |
using | state_name_t = typename tuple_automaton_t::element_type::state_name_t |
using | state_t = typename tuple_automaton_t::element_type::state_t |
template<size_t... I> | |
using | seq = typename tuple_automaton_t::element_type::template seq< I...> |
using | context_t = context_t_of< Aut > |
The 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 | automaton_t = tuple_automaton< Aut, Auts...> |
The type of automaton to wrap. More... | |
using | context_t = context_t_of< tuple_automaton< Aut, Auts...> > |
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 |
product_automaton_impl (Aut aut, const Auts &...auts) | |
Build a product automaton. More... | |
auto | all_out (state_t s) const -> decltype(aut_->all_out(s)) |
template<typename Pred > | |
auto | all_out (state_t s, Pred pred) const -> decltype(aut_->all_out(s, pred)) |
All the outgoing transitions satisfying the predicate. More... | |
auto | out (state_t s) -> decltype(this->all_out(s, not_to_post_p |
Indexes of visible transitions leaving state s. More... | |
auto | out (state_t s, label_t_of< self_t > l) -> decltype(this->all_out(s, label_equal_p |
Indexes of all transitions leaving state s on label l. More... | |
void | conjunction (bool lazy=false) |
Compute the (accessible part of the) conjunction. More... | |
void | shuffle () |
Compute the (accessible part of the) shuffle product. More... | |
void | infiltration () |
Compute the (accessible part of the) infiltration product. More... | |
![]() | |
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 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)...)) |
Private Types | |
using | automaton_t = Aut |
The type of the resulting automaton. More... | |
using | tuple_automaton_t = tuple_automaton< automaton_t, Auts...> |
using | self_t = product_automaton_impl |
using | super_t = automaton_decorator< tuple_automaton_t > |
template<typename A > | |
using | transition_map_t = transition_map< A, weightset_t, false, true > |
The type of our transition maps: convert the weight to weightset_t, non deterministic, and including transitions to post(). More... | |
Private Member Functions | |
void | initialize_conjunction () |
Fill the worklist with the initial source-state pairs, as needed for the conjunction algorithm. More... | |
void | initialize_shuffle () |
Fill the worklist with the initial source-state pairs, as needed for the shuffle algorithm. More... | |
template<typename... Args> | |
state_t | state (Args &&...args) |
Conversion from state name to state number. More... | |
std::tuple< typename transition_map_t< Auts >::map_t &...> | out_ (const state_name_t &ss) |
The outgoing tuple of transitions from state tuple ss. More... | |
template<size_t... I> | |
std::tuple< typename transition_map_t< Auts >::map_t &...> | out_ (const state_name_t &ss, seq< I...>) |
void | add_conjunction_transitions (const state_t src, const state_name_t &psrc) |
Add transitions to the result automaton, starting from the given result input state, which must correspond to the given pair of input state automata. More... | |
template<std::size_t... I> | |
void | add_one_transitions_ (const state_t src, const state_name_t &psrc, seq< I...>) |
Add the spontaneous transitions leaving state src, if it is relevant (i.e. More... | |
template<std::size_t I, typename L > | |
vcsn::enable_if_t<!L::has_one(), void > | maybe_add_one_transitions_ (const L &, const state_t, const state_name_t &) |
In the case where the labelset doesn't have one, do nothing. More... | |
template<std::size_t I, typename L > | |
vcsn::enable_if_t< L::has_one(), void > | maybe_add_one_transitions_ (const L &ls, const state_t src, const state_name_t &psrc) |
If the labelset has one, add the relevant spontaneous-transitions leaving the state. More... | |
template<std::size_t... I> | |
bool | has_one_in (const state_name_t &psrc, std::size_t i, seq< I...>) const |
Check if all the tapes after the Ith have only incoming spontaneous transitions. More... | |
template<std::size_t... I> | |
bool | has_only_one_out (const state_name_t &psrc, std::size_t i, seq< I...>) |
Check if all the tapes before the Ith have only outgoing spontaneous transitions. More... | |
template<typename Aut_ > | |
vcsn::enable_if_t< labelset_t_of< Aut_ >::has_one(), bool > | is_one (const Aut_ &aut, transition_t_of< Aut_ > tr) const |
Check if the transition is spontaneous (in the case of a labelset with one). More... | |
template<typename Aut_ > | |
constexpr vcsn::enable_if_t<!labelset_t_of< Aut_ >::has_one(), bool > | is_one (const Aut_ &, transition_t_of< Aut_ >) const |
Same as above, but for labelsets without one, so it's always false. More... | |
template<typename Aut_ > | |
constexpr vcsn::enable_if_t<!labelset_t_of< Aut_ >::has_one(), bool > | is_spontaneous_in (const Aut_ &, state_t_of< Aut_ >) const |
Check if the state has only incoming spontaneous transitions. More... | |
template<typename Aut_ > | |
vcsn::enable_if_t< labelset_t_of< Aut_ >::has_one(), bool > | is_spontaneous_in (const Aut_ &rhs, state_t_of< Aut_ > rst) const |
Whether the state has only incoming spontaneous transitions. More... | |
template<size_t I> | |
bool | has_only_ones_out (const state_name_t &psrc) |
Whether the Ith state of psrc in the Ith input automaton has no non-spontaneous outgoing transitions. More... | |
template<bool Infiltration = false> | |
void | add_shuffle_transitions (const state_t src, const state_name_t &psrc) |
Add transitions to the given result automaton, starting from the given result input state, which must correspond to the given tuple of input state automata. More... | |
template<bool Infiltration, size_t... I> | |
weight_t | add_shuffle_transitions_ (const state_t src, const state_name_t &psrc, seq< I...>) |
Let all automata advance one after the other, and add the corresponding transitions in the output. More... | |
template<bool Infiltration, size_t I> | |
weight_t | add_shuffle_transitions_ (const state_t src, const state_name_t &psrc) |
Let Ith automaton advance, and add the corresponding transitions in the output. More... | |
Private Attributes | |
const weightset_t & | ws_ = *aut_->weightset() |
The resulting weightset. More... | |
std::tuple< transition_map_t< Auts >...> | transition_maps_ |
Transition caches. More... | |
std::set< state_t > | done_ = {aut_->post()} |
When performing the lazy construction, list of states that have been completed (i.e., their outgoing transitions have been computed). More... | |
Additional Inherited Members | |
![]() | |
automaton_t | aut_ |
The wrapped automaton, possibly const. More... | |
Build the (accessible part of the) product.
Definition at line 29 of file conjunction.hh.
using vcsn::detail::product_automaton_impl< Aut, Auts >::automata_t = std::tuple<Auts...> |
The type of input automata.
Definition at line 73 of file conjunction.hh.
|
private |
The type of the resulting automaton.
Definition at line 36 of file conjunction.hh.
using vcsn::detail::product_automaton_impl< Aut, Auts >::context_t = context_t_of<Aut> |
The context of the result.
Definition at line 64 of file conjunction.hh.
using vcsn::detail::product_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 77 of file conjunction.hh.
using vcsn::detail::product_automaton_impl< Aut, Auts >::label_t = typename labelset_t::value_t |
Definition at line 68 of file conjunction.hh.
using vcsn::detail::product_automaton_impl< Aut, Auts >::labelset_t = labelset_t_of<context_t> |
Definition at line 65 of file conjunction.hh.
|
private |
Definition at line 38 of file conjunction.hh.
using vcsn::detail::product_automaton_impl< Aut, Auts >::seq = typename tuple_automaton_t::element_type::template seq<I...> |
Definition at line 48 of file conjunction.hh.
using vcsn::detail::product_automaton_impl< Aut, Auts >::state_name_t = typename tuple_automaton_t::element_type::state_name_t |
Definition at line 43 of file conjunction.hh.
using vcsn::detail::product_automaton_impl< Aut, Auts >::state_t = typename tuple_automaton_t::element_type::state_t |
Definition at line 45 of file conjunction.hh.
|
private |
Definition at line 39 of file conjunction.hh.
|
private |
The type of our transition maps: convert the weight to weightset_t, non deterministic, and including transitions to post().
Definition at line 268 of file conjunction.hh.
|
private |
Definition at line 37 of file conjunction.hh.
using vcsn::detail::product_automaton_impl< Aut, Auts >::weight_t = typename weightset_t::value_t |
Definition at line 69 of file conjunction.hh.
using vcsn::detail::product_automaton_impl< Aut, Auts >::weightset_t = weightset_t_of<context_t> |
Definition at line 66 of file conjunction.hh.
|
inline |
Build a product automaton.
aut | the automaton to build. |
auts | the input automata. |
Definition at line 84 of file conjunction.hh.
References vcsn::make_tuple_automaton().
|
inlineprivate |
Add transitions to the result automaton, starting from the given result input state, which must correspond to the given pair of input state automata.
Update the worklist with the needed source-state pairs.
Definition at line 288 of file conjunction.hh.
References vcsn::detail::product_automaton_impl< Aut, Auts >::add_one_transitions_(), vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::aut_, vcsn::detail::cross_tuple(), vcsn::detail::transition_map< Aut, WeightSet, Deterministic, AllOut, KeepTransitions >::transition_< Weight, KeepTransitions_, Dummy >::dst, vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::new_transition(), vcsn::detail::product_automaton_impl< Aut, Auts >::out_(), vcsn::detail::product_automaton_impl< Aut, Auts >::state(), vcsn::detail::transition_map< Aut, WeightSet, Deterministic, AllOut, KeepTransitions >::transition_< Weight, KeepTransitions_, Dummy >::weight(), vcsn::detail::product_automaton_impl< Aut, Auts >::ws_, and vcsn::zip_map_tuple().
Referenced by vcsn::detail::product_automaton_impl< Aut, Auts >::conjunction(), vcsn::detail::product_automaton_impl< Aut, Auts >::infiltration(), and vcsn::detail::product_automaton_impl< Aut, Auts >::initialize_shuffle().
|
inlineprivate |
Add the spontaneous transitions leaving state src, if it is relevant (i.e.
only for the labelsets that have one).
Definition at line 313 of file conjunction.hh.
References vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::aut_, vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::labelset(), and vcsn::detail::void.
Referenced by vcsn::detail::product_automaton_impl< Aut, Auts >::add_conjunction_transitions().
|
inlineprivate |
Add transitions to the given result automaton, starting from the given result input state, which must correspond to the given tuple of input state automata.
Update the worklist with the needed source-state pairs.
Definition at line 442 of file conjunction.hh.
References vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::aut_.
|
inlineprivate |
Let all automata advance one after the other, and add the corresponding transitions in the output.
Return the product of the final states.
Definition at line 455 of file conjunction.hh.
References vcsn::detail::void, and vcsn::detail::product_automaton_impl< Aut, Auts >::ws_.
|
inlineprivate |
Let Ith automaton advance, and add the corresponding transitions in the output.
If we reach a final state, return the corresponding final weight (zero otherwise).
Infiltration | whether we are called after add_conjunction_transitions. |
I | the tape on which to perform a transition. |
Definition at line 482 of file conjunction.hh.
References vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::add_transition(), vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::aut_, vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::new_transition(), vcsn::detail::product_automaton_impl< Aut, Auts >::state(), vcsn::detail::product_automaton_impl< Aut, Auts >::transition_maps_, and vcsn::detail::product_automaton_impl< Aut, Auts >::ws_.
|
inline |
Definition at line 114 of file conjunction.hh.
References vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::aut_, and vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::state_is_strict().
|
inline |
All the outgoing transitions satisfying the predicate.
Definition at line 124 of file conjunction.hh.
References vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::aut_, and vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::state_is_strict().
|
inline |
Compute the (accessible part of the) conjunction.
Definition at line 172 of file conjunction.hh.
References vcsn::detail::product_automaton_impl< Aut, Auts >::add_conjunction_transitions(), vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::aut_, and vcsn::detail::product_automaton_impl< Aut, Auts >::initialize_conjunction().
Referenced by vcsn::conjunction().
|
inlineprivate |
Check if all the tapes after the Ith have only incoming spontaneous transitions.
Definition at line 355 of file conjunction.hh.
References vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::aut_, and vcsn::detail::product_automaton_impl< Aut, Auts >::is_spontaneous_in().
Referenced by vcsn::detail::product_automaton_impl< Aut, Auts >::maybe_add_one_transitions_().
|
inlineprivate |
Check if all the tapes before the Ith have only outgoing spontaneous transitions.
Definition at line 369 of file conjunction.hh.
Referenced by vcsn::detail::product_automaton_impl< Aut, Auts >::maybe_add_one_transitions_().
|
inlineprivate |
Whether the Ith state of psrc in the Ith input automaton has no non-spontaneous outgoing transitions.
Definition at line 425 of file conjunction.hh.
References vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::aut_, vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::labelset(), and vcsn::detail::product_automaton_impl< Aut, Auts >::transition_maps_.
|
inline |
Compute the (accessible part of the) infiltration product.
Definition at line 199 of file conjunction.hh.
References vcsn::detail::product_automaton_impl< Aut, Auts >::add_conjunction_transitions(), vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::aut_, vcsn::detail::product_automaton_impl< Aut, Auts >::initialize_shuffle(), and vcsn::require().
Referenced by vcsn::infiltration().
|
inlineprivate |
Fill the worklist with the initial source-state pairs, as needed for the conjunction algorithm.
Definition at line 244 of file conjunction.hh.
References vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::aut_.
Referenced by vcsn::detail::product_automaton_impl< Aut, Auts >::conjunction().
|
inlineprivate |
Fill the worklist with the initial source-state pairs, as needed for the shuffle algorithm.
Definition at line 251 of file conjunction.hh.
References vcsn::detail::product_automaton_impl< Aut, Auts >::add_conjunction_transitions(), and vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::aut_.
Referenced by vcsn::detail::product_automaton_impl< Aut, Auts >::infiltration(), and vcsn::detail::product_automaton_impl< Aut, Auts >::shuffle().
|
inlineprivate |
Check if the transition is spontaneous (in the case of a labelset with one).
Definition at line 383 of file conjunction.hh.
Referenced by vcsn::detail::product_automaton_impl< Aut, Auts >::is_spontaneous_in().
|
inlineprivate |
Same as above, but for labelsets without one, so it's always false.
Definition at line 392 of file conjunction.hh.
|
inlineprivate |
Check if the state has only incoming spontaneous transitions.
As it is in the case of the one-free labelset, it's always false.
Definition at line 402 of file conjunction.hh.
Referenced by vcsn::detail::product_automaton_impl< Aut, Auts >::has_one_in().
|
inlineprivate |
Whether the state has only incoming spontaneous transitions.
The automaton has been insplit, so either all incoming transitions are proper, or all transitions are spontaneous (including the first one).
Definition at line 414 of file conjunction.hh.
References vcsn::detail::product_automaton_impl< Aut, Auts >::is_one().
|
inlineprivate |
In the case where the labelset doesn't have one, do nothing.
Definition at line 327 of file conjunction.hh.
|
inlineprivate |
If the labelset has one, add the relevant spontaneous-transitions leaving the state.
Definition at line 334 of file conjunction.hh.
References vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::aut_, vcsn::detail::product_automaton_impl< Aut, Auts >::has_one_in(), vcsn::detail::product_automaton_impl< Aut, Auts >::has_only_one_out(), vcsn::detail::product_automaton_impl< Aut, Auts >::state(), and vcsn::detail::product_automaton_impl< Aut, Auts >::transition_maps_.
|
inline |
Indexes of visible transitions leaving state s.
Invalidated by del_transition() and del_state().
Definition at line 157 of file conjunction.hh.
|
inline |
Indexes of all transitions leaving state s on label l.
Invalidated by del_transition() and del_state().
Definition at line 165 of file conjunction.hh.
|
inlineprivate |
The outgoing tuple of transitions from state tuple ss.
Definition at line 272 of file conjunction.hh.
References vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::aut_.
Referenced by vcsn::detail::product_automaton_impl< Aut, Auts >::add_conjunction_transitions().
|
inlineprivate |
Definition at line 279 of file conjunction.hh.
References vcsn::detail::product_automaton_impl< Aut, Auts >::transition_maps_.
|
inline |
Definition at line 57 of file conjunction.hh.
|
inline |
Compute the (accessible part of the) shuffle product.
Definition at line 186 of file conjunction.hh.
References vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::aut_, and vcsn::detail::product_automaton_impl< Aut, Auts >::initialize_shuffle().
|
inlinestatic |
Definition at line 50 of file conjunction.hh.
|
inlineprivate |
Conversion from state name to state number.
Definition at line 260 of file conjunction.hh.
References vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::aut_.
Referenced by vcsn::detail::product_automaton_impl< Aut, Auts >::add_conjunction_transitions(), vcsn::detail::product_automaton_impl< Aut, Auts >::add_shuffle_transitions_(), and vcsn::detail::product_automaton_impl< Aut, Auts >::maybe_add_one_transitions_().
|
mutableprivate |
When performing the lazy construction, list of states that have been completed (i.e., their outgoing transitions have been computed).
Definition at line 525 of file conjunction.hh.
|
private |
Transition caches.
Definition at line 520 of file conjunction.hh.
Referenced by vcsn::detail::product_automaton_impl< Aut, Auts >::add_shuffle_transitions_(), vcsn::detail::product_automaton_impl< Aut, Auts >::has_only_ones_out(), vcsn::detail::product_automaton_impl< Aut, Auts >::maybe_add_one_transitions_(), and vcsn::detail::product_automaton_impl< Aut, Auts >::out_().
|
private |
The resulting weightset.
Definition at line 517 of file conjunction.hh.
Referenced by vcsn::detail::product_automaton_impl< Aut, Auts >::add_conjunction_transitions(), and vcsn::detail::product_automaton_impl< Aut, Auts >::add_shuffle_transitions_().