18 template <
typename State>
42 size_t insp,
size_t in,
43 size_t outsp,
size_t out)
45 , in_sp(insp), in_nsp(in - insp)
46 , out_sp(outsp), out_nsp(out - outsp)
50 size_t outsp,
size_t out)
55 out_nsp = out - outsp;
72 < std::tie(out_sp, out_nsp, in_sp, r.
state));
epsilon_profile(state_t s, size_t insp, size_t in, size_t outsp, size_t out)
Generate a state profile.
state_t state
From the heap's top, recover state to eliminate.
size_t in_nsp
Number of incoming non-spontaneous transitions.
auto in(const Aut &aut, state_t_of< Aut > s)
Indexes of visible transitions arriving to state s.
auto out(const Aut &aut, state_t_of< Aut > s)
Indexes of visible transitions leaving state s.
size_t out_sp
Number of outgoing spontaneous transitions.
size_t out_nsp
Number of outgoing non-spontaneous transitions.
size_t in_sp
Number of incoming spontaneous transitions.
This is used by some epsilon removal algorithms.
friend std::ostream & operator<<(std::ostream &o, const epsilon_profile &p)
void update(size_t insp, size_t in, size_t outsp, size_t out)
Provide a variadic mul on top of a binary mul(), and one().
bool operator<(const epsilon_profile &r) const
Whether l < r for the max-heap.