13 template <
typename ExpansionSet>
14 typename ExpansionSet::value_t
15 denormalize(
const ExpansionSet& xs,
typename ExpansionSet::value_t x)
17 return xs.denormalize(x);
21 template <
typename ExpansionSet>
23 is_normal(
const ExpansionSet& xs,
const typename ExpansionSet::value_t& x)
25 return xs.is_normal(x);
29 template <
typename ExpansionSet>
30 typename ExpansionSet::value_t
31 normalize(
const ExpansionSet& xs,
typename ExpansionSet::value_t x)
33 return xs.normalize(x);
41 template <
typename ExpansionSet>
45 const auto& x = xpn->
as<ExpansionSet>();
46 return {x.valueset(),
denormalize(x.valueset(), x.value())};
50 template <
typename ExpansionSet>
54 const auto& x = xpn->
as<ExpansionSet>();
55 return x.valueset().is_normal(x.value());
59 template <
typename ExpansionSet>
63 const auto& x = xpn->
as<ExpansionSet>();
64 return {x.valueset(),
normalize(x.valueset(), x.value())};
auto & as()
Extract wrapped typed value.
automaton normalize(const automaton &aut)
Bridge.
ExpansionSet::value_t normalize(const ExpansionSet &xs, typename ExpansionSet::value_t x)
Normalize an expansion.
bool is_normal(const ExpansionSet &xs, const typename ExpansionSet::value_t &x)
Normalize an expansion.
value_impl< detail::expansion_tag > expansion
expansion denormalize(const expansion &xpn)
Bridge.
expansion normalize_expansion(const expansion &xpn)
Bridge (normalize).
bool is_normal(const expansion &xpn)
Bridge.
ExpansionSet::value_t denormalize(const ExpansionSet &xs, typename ExpansionSet::value_t x)
Denormalize an expansion.