#include <algorithm>
#include <map>
#include <stack>
#include <unordered_map>
#include <unordered_set>
#include <boost/range/algorithm/permutation.hpp>
#include <boost/range/algorithm/sort.hpp>
#include <vcsn/algos/accessible.hh>
#include <vcsn/dyn/automaton.hh>
#include <vcsn/dyn/fwd.hh>
#include <vcsn/misc/functional.hh>
#include <vcsn/misc/map.hh>
#include <vcsn/misc/vector.hh>
Go to the source code of this file.
◆ HASH_TRANSITIONS
#define HASH_TRANSITIONS |
( |
|
Expression, |
|
|
|
Endpoint_Getter |
|
) |
| |
Value:{ \
auto endpoint_states = std::unordered_set<state_t_of<Aut>>{}; \
transitions_t tt; \
for (auto& t: Expression) \
{ \
tt.emplace_back(a->weight_of(t), a->label_of(t)); \
endpoint_states.emplace(a->Endpoint_Getter(t)); \
for (const auto& t: tt) \
{ \
hash_combine(
res, ws.hash(t.first)); \
hash_combine(
res, ls.hash(t.second)); \
} \
hash_combine(
res, endpoint_states.size()); \
}
auto sort(const Aut &a) -> permutation_automaton< Aut >
Referenced by vcsn::detail::are_isomorphic_impl< Aut1, Aut2 >::state_to_class().