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>
258 template<
typename LS,
typename WS>
265 template<
typename LS,
typename WS>
269 return {
get_wordset(*ctx.labelset()), *ctx.weightset()};
274 template<
typename Context>
277 typename Context::weightset_t >;
280 template<
typename Context>
283 template<
typename Context>
286 typename Context::weightset_t>;
288 template<
typename Context>
291 typename Context::weightset_t>;
293 template<
typename Context>
300 template<
typename Context>
307 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:267
auto get_not_nullable_context(const Context &ctx) -> not_nullable_of< Context >
Definition: traits.hh:309
auto get_nullableset(const L &labelset) -> typename labelset_trait< L >::nullable_t
Definition: traits.hh:246
auto get_letterset(const L &labelset) -> typename labelset_trait< L >::letterset_t
Definition: traits.hh:225
auto get_wordset(const L &labelset) -> typename labelset_trait< L >::wordset_t
Definition: traits.hh:232
auto get_ratlabelset(const L &labelset) -> typename labelset_trait< L >::ratlabelset_t
Definition: traits.hh:239
auto get_not_nullableset(const L &labelset) -> typename labelset_trait< L >::not_nullable_t
Definition: traits.hh:253
auto get_nullable_context(const Context &ctx) -> nullable_of< Context >
Definition: traits.hh:302
ratexp_context_of< Context > get_rat_context(const Context &ctx)
Definition: traits.hh:295
auto get_letterset_context(const context< LS, WS > &ctx) -> context< typename labelset_trait< LS >::letterset_t, WS >
Definition: traits.hh:260
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 not_nullable_t const & get_not_nullableset(const self_t &ls)
Definition: traits.hh:216
static ratlabelset_t get_ratlabelset(const oneset &os)
Definition: traits.hh:213
static nullable_t get_nullableset(const self_t &ls)
Definition: traits.hh:171
static wordset_t get_wordset(const self_t &ls, awali::internal::index_sequence< I... >)
Definition: traits.hh:187
static wordset_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 nullable_t get_nullableset(const self_t &ls, awali::internal::index_sequence< I... >)
Definition: traits.hh:176
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