17 #ifndef AWALI_CORE_RAT_HASH_HXX
18 # define AWALI_CORE_RAT_HASH_HXX
27 template <typename RatExpSet> \
32 # define VISIT(Type) \
33 DEFINE::visit(const Type ## _t& v) \
39 std::hash_combine(res_, RatExpSet::labelset_t::hash(v.value()));
52 template <
typename RatExpSet>
55 hash<RatExpSet>::combine_type(
const node_t& node)
60 template <
typename RatExpSet>
63 hash<RatExpSet>::visit_nullary(
const node_t &n)
68 template <
typename RatExpSet>
69 template <type_t Type>
72 hash<RatExpSet>::visit_unary(
const unary_t<Type>& n)
75 n.sub()->accept(*
this);
78 template <
typename RatExpSet>
79 template <type_t Type>
82 hash<RatExpSet>::visit_weight_node(
const weight_node_t<Type>& n)
86 n.sub()->accept(*
this);
89 template <
typename RatExpSet>
90 template <type_t Type>
93 hash<RatExpSet>::visit_variadic(
const variadic_t<Type>& n)
#define VISIT(Type)
Definition: hash.hxx:32
weight_node< type_t::lweight, Label, Weight > lweight
Definition: fwd.hh:164
weight_node< type_t::rweight, Label, Weight > rweight
Definition: fwd.hh:167
Main namespace of Awali.
Definition: ato.hh:22
void hash_combine(std::size_t &seed, const T &v)
Definition: hash.hh:27