12 template <
typename... Ctx>
19 auto ws =
join(*
ctx.weightset()...);
28 template <
typename... ExpansionSets>
40 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,
93 template <
typename ExpansionSets>
99 return tuple_<ExpansionSets>(es, indices);
113 template <
typename ExpSets,
size_t... I>
115 tuple_(
const std::vector<expression>& es,
134 template <
typename ExpSets>
140 return tuple_<ExpSets>(es, indices);
ValueSet::value_t tuple(const ValueSet &vs, const typename ValueSets::value_t &...v)
auto join(const ValueSet &vs) -> ValueSet
The join of a single valueset.
weightset_mixin< rat::expressionset_impl< Context >> expressionset
auto tuple_expansionset(const ExpansionSets &...ess) -> rat::expansionset< decltype(tuple_expressionset(ess.expressionset()...))>
decltype(join(std::declval< ValueSets >()...)) join_t
The type of the join of the ValueSets.
std::shared_ptr< const detail::expansion_base > expansion
auto tuple_expressionset(const ExpSets &...rss) -> expressionset< decltype(tuple_context(rss.context()...))>
tupleset< ValueSets... > make_tupleset(const ValueSets &...vss)
auto tuple_context(Ctx &&...ctx) -> context< tupleset< labelset_t_of< Ctx >... >, join_t< weightset_t_of< Ctx >... >>
Provide a variadic mul on top of a binary mul(), and one().
rat::expansionset< ExpSet > expansionset
typename std::tuple_element< I, T >::type tuple_element_t
C++14.
expression tuple_expression(const std::vector< expression > &es)
Bridge (tuple).
expansion tuple_(const std::vector< expansion > &es, vcsn::detail::index_sequence< I... >)
Bridge helper.
expansion tuple_expansion(const std::vector< expansion > &es)
Bridge (tuple).
static dyn::context ctx(const driver &d)
Get the context of the driver.
std::shared_ptr< detail::expression_base > expression
expansion make_expansion(const ExpansionSet &ps, const typename ExpansionSet::value_t &expansion)
static identities ids(const driver &d)
Get the identities of the driver.
expression make_expression(const ExpSet &rs, const typename ExpSet::value_t &r)