15 template <
typename ValueSet>
16 typename ValueSet::value_t
18 const typename ValueSet::value_t& lhs,
19 const typename ValueSet::value_t& rhs)
21 return vs.shuffle(lhs, rhs);
28 template <
typename ValueSetLhs,
typename ValueSetRhs,
33 auto join_elts = join<ValueSetLhs, ValueSetRhs>(lhs, rhs);
34 return {std::get<0>(join_elts),
36 std::get<1>(join_elts),
37 std::get<2>(join_elts))};
53 template <
typename ExpSetLhs,
typename ExpSetRhs>
57 return shuffle_value<ExpSetLhs, ExpSetRhs>(lhs, rhs);
71 template <
typename SetLhs,
typename SetRhs>
75 return shuffle_value<SetLhs, SetRhs>(lhs, rhs);
auto shuffle(const Auts &... as) -> tuple_automaton< decltype(join_automata(as...)), Auts... >
The (accessible part of the) shuffle product.
Value shuffle_value(const Value &lhs, const Value &rhs)
expression shuffle_expression(const expression &lhs, const expression &rhs)
Bridge (shuffle).
polynomial shuffle_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (shuffle).
value_impl< detail::expression_tag > expression