29 template <Automaton Aut,
typename ValueSet,
typename Mul>
42 using value_t =
typename valueset_t::value_t;
84 auto handles = std::vector<typename heap_t::handle_type>(
size);
88 handles[source] = todo.emplace(source, *
this);
100 auto dst =
aut_->dst_of(t);
102 if (
res_[dst] ==
aut_->null_transition())
107 handles[dst] = todo.emplace(dst, *
this);
114 todo.update(handles[dst]);
118 return std::move(
res_);
130 template <Automaton Aut,
typename ValueSet,
typename Mul>
138 template <Automaton Aut>
145 return aut->weightset()->mul(lhs, aut->weight_of(t));
148 return algo(source, dest);
typename detail::weightset_t_of_impl< base_t< ValueSet > >::type weightset_t_of
predecessors_t_of< automaton_t > res_
For each state, its predecessor.
size_t size(const ExpSet &rs, const typename ExpSet::value_t &r)
typename detail::transition_t_of_impl< base_t< ValueSet > >::type transition_t_of
transition_t_of< automaton_t > transition_t
typename detail::state_t_of_impl< base_t< ValueSet > >::type state_t_of
size_t states_size(const Aut &aut)
The largest state number, plus one.
profile(state_t state, const self_t &d)
typename valueset_t::value_t value_t
auto all_out(const Aut &aut, state_t_of< Aut > s)
Indexes of transitions leaving state s.
typename detail::context_t_of_impl< base_t< ValueSet > >::type context_t_of
std::vector< transition_t_of< Aut > > lightest_path(const Aut &aut, state_t_of< Aut > source, state_t_of< Aut > dest, a_star_tag)
typename detail::label_t_of_impl< base_t< ValueSet > >::type label_t_of
weightset_t_of< automaton_t > weightset_t
state_t_of< automaton_t > state_t
vcsn::min_fibonacci_heap< profile > heap_t
context_t_of< automaton_t > context_t
auto make_dijkstra_impl(const Aut &aut, const ValueSet &vs, Mul mul)
weight_t_of< automaton_t > weight_t
bool operator<(const profile &rhs) const
boost::heap::fibonacci_heap< Elt, detail::comparator_t< Elt > > min_fibonacci_heap
label_t_of< automaton_t > label_t
std::vector< transition_t_of< Aut > > predecessors_t_of
A state-indexed vector of predecessor transitions from the path path.
predecessors_t_of< automaton_t > operator()(state_t source, state_t dest)
typename detail::weight_t_of_impl< base_t< ValueSet > >::type weight_t_of
dijkstra_impl(const Aut &aut, const ValueSet &vs, Mul mul)
std::vector< value_t > distance_t
Dijkstra implementation of lightest automaton.