17 #ifndef AWALI_LABELSET_TRAITS_HH
18 #define AWALI_LABELSET_TRAITS_HH
161 template<
typename... Ts>
175 template<std::size_t... I>
186 template<std::size_t... I>
190 return wordset_t{ls.template set<I>()...};
252 template<
typename LS,
typename WS>
259 template<
typename LS,
typename WS>
263 return {
get_wordset(*ctx.labelset()), *ctx.weightset()};
266 template<
typename Context>
269 typename Context::weightset_t>>;
271 template<
typename Context>
274 typename Context::weightset_t>;
276 template<
typename Context>
279 typename Context::weightset_t>;
281 template<
typename Context>
285 typename Context::weightset_t>
290 template<
typename Context>
297 template<
typename Context>
carries the algebraic settings of automata
Definition: context.hh:40
Implementation of labels are letters.
Definition: letterset.hh:43
const genset_t & genset() const
Definition: letterset.hh:72
Implementation of labels are nullables (letter or empty).
Definition: nullableset.hh:189
const labelset_ptr labelset() const
Definition: nullableset.hh:281
Implementation of labels are ones: there is a single instance of label.
Definition: oneset.hh:38
A ValueSet which is a Cartesian product of ValueSets.
Definition: tupleset.hh:80
static constexpr indices_t indices
Definition: tupleset.hh:84
Implementation of labels are words.
Definition: wordset.hh:35
const genset_t & genset() const
Definition: wordset.hh:56
labelset_description oneset()
auto get_wordset_context(const context< LS, WS > &ctx) -> context< typename labelset_trait< LS >::wordset_t, WS >
Definition: traits.hh:261
auto get_rat_context(const Context &ctx) -> context< typename labelset_trait< typename Context::labelset_t >::ratlabelset_t, typename Context::weightset_t >
Definition: traits.hh:283
auto get_not_nullable_context(const Context &ctx) -> not_nullable_of< Context >
Definition: traits.hh:299
auto get_nullableset(const L &labelset) -> typename labelset_trait< L >::nullable_t
Definition: traits.hh:240
auto get_letterset(const L &labelset) -> typename labelset_trait< L >::letterset_t
Definition: traits.hh:219
auto get_wordset(const L &labelset) -> typename labelset_trait< L >::wordset_t
Definition: traits.hh:226
auto get_ratlabelset(const L &labelset) -> typename labelset_trait< L >::ratlabelset_t
Definition: traits.hh:233
auto get_not_nullableset(const L &labelset) -> typename labelset_trait< L >::not_nullable_t
Definition: traits.hh:247
auto get_nullable_context(const Context &ctx) -> nullable_of< Context >
Definition: traits.hh:292
auto get_letterset_context(const context< LS, WS > &ctx) -> context< typename labelset_trait< LS >::letterset_t, WS >
Definition: traits.hh:254
Main namespace of Awali.
Definition: ato.hh:22
static nullable_t get_nullableset(const letterset< T > &ls)
Definition: traits.hh:79
static wordset_t get_wordset(const letterset< T > &ls)
Definition: traits.hh:75
static const letterset_t & get_letterset(const letterset< T > &ls)
Definition: traits.hh:71
static const not_nullable_t & get_not_nullableset(const letterset< T > &ls)
Definition: traits.hh:83
static const ratlabelset_t & get_ratlabelset(const letterset< T > &ls)
Definition: traits.hh:87
static ratlabelset_t get_ratlabelset(const nullableset< T > &ls)
Definition: traits.hh:153
typename labelset_trait< T >::nullable_t nullable_t
Definition: traits.hh:127
static nullable_t get_nullableset(const nullableset< T > &ls)
Definition: traits.hh:143
typename labelset_trait< T >::not_nullable_t not_nullable_t
Definition: traits.hh:128
static wordset_t get_wordset(const nullableset< T > &ls)
Definition: traits.hh:138
typename labelset_trait< T >::ratlabelset_t ratlabelset_t
Definition: traits.hh:131
static letterset_t get_letterset(const nullableset< T > &ls)
Definition: traits.hh:133
typename labelset_trait< T >::letterset_t letterset_t
Definition: traits.hh:129
typename labelset_trait< T >::wordset_t wordset_t
Definition: traits.hh:130
static not_nullable_t get_not_nullableset(const nullableset< T > &ls)
Definition: traits.hh:148
static ratlabelset_t get_ratlabelset(const oneset &os)
Definition: traits.hh:211
static wordset_t const & get_wordset(const self_t &ls, awali::internal::index_sequence< I... >)
Definition: traits.hh:187
static nullable_t get_nullableset(const self_t &ls)
Definition: traits.hh:171
static nullable_t const & get_nullableset(const self_t &ls, awali::internal::index_sequence< I... >)
Definition: traits.hh:176
static nullable_t get_wordset(const self_t &ls)
Definition: traits.hh:182
static const ratlabelset_t & get_ratlabelset(const self_t &ls)
Definition: traits.hh:193
static not_nullable_t const & get_not_nullableset(const self_t &ls)
Definition: traits.hh:197
static letterset_t get_letterset(const wordset< T > &ls)
Definition: traits.hh:102
static const nullable_t & get_nullableset(const wordset< T > &ls)
Definition: traits.hh:110
static const ratlabelset_t & get_ratlabelset(const wordset< T > &ls)
Definition: traits.hh:118
static const wordset_t & get_wordset(const wordset< T > &ls)
Definition: traits.hh:106
static const not_nullable_t & get_not_nullableset(const wordset< T > &ls)
Definition: traits.hh:114
trait that computes the related types of a labelset
Definition: traits.hh:34
L ratlabelset_t
Definition: traits.hh:39
static const wordset_t & get_wordset(const L &ls)
Definition: traits.hh:45
L not_nullable_t
Definition: traits.hh:36
static const nullable_t & get_nullableset(const L &ls)
Definition: traits.hh:49
static const not_nullable_t & get_not_nullableset(const L &ls)
Definition: traits.hh:53
L nullable_t
Definition: traits.hh:35
static const letterset_t & get_letterset(const L &ls)
Definition: traits.hh:41
L wordset_t
Definition: traits.hh:38
L letterset_t
Definition: traits.hh:37
static const ratlabelset_t & get_ratlabelset(const L &ls)
Definition: traits.hh:57
Provide a variadic mul on top of a binary mul(), and one().
Definition: weightset.hh:38