#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().