13 template <
typename... Ctx>
20 auto ws =
join(*
ctx.weightset()...);
29 template <
typename... ExpansionSets>
41 template <
typename ValueSet,
typename... ValueSets>
42 typename ValueSet::value_t
44 const typename ValueSets::value_t&...
v)
46 return vs.tuple(v...);
53 template <
typename... ExpSets>
59 auto ids =
join(rss.identities()...);
72 template <
typename ExpansionSets,
size_t... I>
74 tuple_(
const std::vector<expansion>& es,
84 vcsn::tuple<decltype(xs), tuple_element_t<I, ExpansionSets>...>
86 es[I]->template as<tuple_element_t<I, ExpansionSets>>()
91 template <
typename ExpansionSets>
97 return tuple_<ExpansionSets>(es, indices);
111 template <
typename ExpSets,
size_t... I>
113 tuple_(
const std::vector<expression>& es,
121 vcsn::tuple<decltype(rs), tuple_element_t<I, ExpSets>...>
124 ->template as<tuple_element_t<I, ExpSets>>().value()...)};
128 template <
typename ExpSets>
134 return tuple_<ExpSets>(es, indices);
144 template <
typename... PolynomialSets>
163 template <
typename PolynomialSet,
size_t... I>
165 tuple_(
const std::vector<polynomial>& polys,
173 vcsn::tuple<decltype(ps), tuple_element_t<I, PolynomialSet>...>
176 ->template as<tuple_element_t<I, PolynomialSet>>().value()...)};
180 template <
typename PolynomialSets>
186 return tuple_<PolynomialSets>(ps, indices);
tupleset< ValueSets... > make_tupleset(const ValueSets &...vss)
typename std::tuple_element< I, T >::type tuple_element_t
C++14.
expression tuple_expression(const std::vector< expression > &es)
Bridge (tuple).
auto join(const ValueSet &vs) -> ValueSet
The join of a single valueset.
decltype(join(std::declval< ValueSets >()...)) join_t
The type of the join of the ValueSets.
polynomial tuple_polynomial(const std::vector< polynomial > &ps)
Bridge (tuple).
ValueSet::value_t tuple(const ValueSet &vs, const typename ValueSets::value_t &...v)
expansion tuple_expansion(const std::vector< expansion > &es)
Bridge (tuple).
auto tuple_polynomialset(const PolynomialSets &...pss) -> polynomialset< decltype(tuple_context(pss.context()...))>
auto tuple_expansionset(const ExpansionSets &...ess) -> rat::expansionset< decltype(tuple_expressionset(ess.expressionset()...))>
value_impl< detail::polynomial_tag > polynomial
auto tuple_expressionset(const ExpSets &...rss) -> expressionset< decltype(tuple_context(rss.context()...))>
value_impl< detail::expansion_tag > expansion
automaton tuple_(const std::vector< automaton > &as, vcsn::detail::index_sequence< I... >)
Bridge helper.
static identities ids(const driver &d)
Get the identities of the driver.
Provide a variadic mul on top of a binary mul(), and one().
auto tuple_context(Ctx &&...ctx) -> context< tupleset< labelset_t_of< Ctx >... >, join_t< weightset_t_of< Ctx >... >>
value_impl< detail::expression_tag > expression