16 template <Automaton Aut>
27 return {
labelset_t{*aut->labelset(), *aut->labelset()}, *aut->weightset()};
32 template <Automaton Aut>
36 template <Automaton Aut>
44 automaton_t res = make_shared_ptr<automaton_t>(part_id_ctx::value(aut));
49 = std::vector<state_t>(
detail::back(aut->all_states()) + 1);
51 map[aut->pre()] = res->pre();
52 map[aut->post()] = res->post();
55 for (
auto st : aut->states())
56 map[st] = res->new_state();
60 res->new_transition(map[aut->src_of(tr)],
62 label_t{aut->label_of(tr), aut->label_of(tr)},
77 template <Automaton Aut>
81 const auto& a = aut->as<Aut>();
Container::value_type back(const Container &container)
The last member of this Container.
automaton make_automaton(const Aut &aut)
Build a dyn::automaton.
static context_t value(const Aut &aut)
weightset_t_of< Aut > weightset_t
typename detail::weightset_t_of_impl< base_t< ValueSet >>::type weightset_t_of
automaton partial_identity(const automaton &aut)
Bridge.
typename detail::labelset_t_of_impl< base_t< ValueSet >>::type labelset_t_of
Provide a variadic mul on top of a binary mul(), and one().
typename detail::state_t_of_impl< base_t< ValueSet >>::type state_t_of
fresh_automaton_t_of< Aut, partial_identity_context_t_of< Aut > > partial_identity(const Aut &aut)
Create a partial identity transducer from aut.
typename Aut::element_type::template fresh_automaton_t< Context > fresh_automaton_t_of
Given an automaton type, the type of its copies.
std::shared_ptr< detail::automaton_base > automaton
typename detail::label_t_of_impl< base_t< ValueSet >>::type label_t_of
labelset_t_of< Aut > in_labelset_t
auto all_transitions(const Aut &aut)
All the transition indexes between all states (including pre and post).
typename detail::partial_identity_context< Aut >::context_t partial_identity_context_t_of