17 #ifndef AWALI_ALGOS_DETERMINIZE_HH
18 # define AWALI_ALGOS_DETERMINIZE_HH
38 template <
typename Aut>
47 unsigned state_size = a->max_state();
48 static const unsigned lim = std::numeric_limits<size_t>::digits;
82 template <
typename Aut>
101 template <
typename Aut>
123 template <
typename Aut>
152 template <
typename Aut>
159 auto ws = *aut->weightset();
160 auto bb=ws.mul(bound,bound);
162 for (
const auto& p : st)
163 if(ws.less_than(bb,ws.mul(p.second,p.second)))
186 "requires free labelset");
188 if (1 < aut->num_initials())
191 for (
auto s: aut->states())
213 "requires free labelset");
215 if (1 < aut->num_initials())
217 for (
auto t : aut->initial_transitions())
218 if(!aut->weightset()->is_one(aut->weight_of(t)))
220 for (
auto s: aut->states())
The subset construction automaton from another.
Definition: determinize.hxx:50
void set_history()
Definition: determinize.hxx:160
The subset construction automaton from another.
Definition: determinize.hxx:213
void set_history()
Definition: determinize.hxx:310
The weighted determinization of weighted automaton.
Definition: determinize.hxx:362
typename state_nameset_t::value_t state_name_t
Definition: determinize.hxx:391
bool is_deterministic(const Aut &aut, state_t s)
Whether state s is deterministic in aut.
Definition: is_deterministic.hxx:48
bool is_sequential(const Aut &aut, state_t s)
Whether state s is sequential in aut.
Definition: is_deterministic.hxx:32
bool is_deterministic(const Aut &aut)
tests whether the automaton is deterministic
Definition: determinize.hh:210
auto explore_by_length(const Aut &aut, unsigned depth) -> mutable_automaton< context_t_of< Aut >>
Exploration of the automaton up to a given depth.
Definition: determinize.hh:126
typename internal::labelset_t_of_impl< internal::base_t< ValueSet > >::type labelset_t_of
Helper to retrieve the type of the labelset of a value set.
Definition: traits.hh:76
auto determinize(const Aut &a, bool keep_history=true) -> mutable_automaton< context_t_of< Aut >>
Determinization of the automaton.
Definition: determinize.hh:41
auto codeterminize(const Aut &aut, bool keep_history=true) -> mutable_automaton< context_t_of< Aut >>
Co-determinization of the automaton.
Definition: determinize.hh:85
AutOut transpose(Aut &aut, bool keep_history=true)
Definition: transpose.hh:79
std::shared_ptr< internal::transpose_view_impl< Aut > > transpose_view(std::shared_ptr< Aut > aut)
Definition: transpose_view.hh:265
auto weighted_determinize(const Aut &aut) -> mutable_automaton< context_t_of< Aut >>
Weighted determinization of the automaton.
Definition: determinize.hh:104
std::shared_ptr< internal::mutable_automaton_impl< Context > > mutable_automaton
Definition: mutable_automaton.hh:45
bool is_sequential(const Aut &aut)
tests whether the automaton is deterministic
Definition: determinize.hh:183
auto explore_with_bound(const Aut &aut, typename weightset_t_of< Aut >::value_t bound) -> mutable_automaton< context_t_of< Aut >>
Exploration of the automaton up to a given bound.
Definition: determinize.hh:155
typename internal::weightset_t_of_impl< internal::base_t< ValueSet > >::type weightset_t_of
Helper to retrieve the type of the weightset of a value set.
Definition: traits.hh:86
Main namespace of Awali.
Definition: ato.hh:22