Vcsn  2.8
Be Rational
vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> > Struct Template Reference

Specialization: lift only some tapes. More...

#include <lift.hh>

Collaboration diagram for vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >:

Public Types

using in_labelset_t = tupleset< LabelSets... >
 Input labelset. More...
 
using in_context_t = context< in_labelset_t, WeightSet >
 
using in_label_t = typename in_labelset_t::value_t
 
template<std::size_t... I>
using seq = detail::index_sequence< I... >
 A static list of integers. More...
 
using index_t = typename detail::make_index_sequence< in_labelset_t::size()>::type
 Index of all input tapes. More...
 
template<size_t I>
using tape_labelset_t = typename in_labelset_t::template valueset_t< I >
 
using kept_index_t = sequence_difference< index_t, seq< Tapes... > >
 Complement the list of indexes of tapes to be lifted, to get the list of tapes to be kept. More...
 
using labelset_t = typename tape_set< kept_index_t, in_labelset_t >::type
 Labelset of tapes to be kept. More...
 
using weight_index_t = seq< Tapes... >
 List of indexes of tapes to be lifted. More...
 
using weight_tapes_t = typename tape_set< weight_index_t, in_labelset_t >::type
 Labelset of tapes to be lifted. More...
 
using inner_context_t = context< weight_tapes_t, WeightSet >
 
using weightset_t = expressionset< inner_context_t >
 Weightset of the result: lifted tapes plus former weightset. More...
 
using context_t = context< labelset_t, weightset_t >
 Result context. More...
 

Static Public Member Functions

static context_t value (const in_context_t &ctx, vcsn::rat::identities ids)
 Conversion. More...
 
template<size_t... WeightTapes, size_t... KeptTapes>
static context_t value_ (const in_context_t &ctx, vcsn::rat::identities ids, seq< WeightTapes... >, seq< KeptTapes... >)
 
static labelset_t::value_t kept_label (const in_label_t &l)
 Label in the output. More...
 
template<size_t... I>
static labelset_t::value_t kept_label_ (const in_label_t &l, seq< I... >)
 
static weight_tapes_t::value_t weight_label (const in_label_t &l)
 Weight in the output. More...
 
template<size_t... I>
static weight_tapes_t::value_t weight_label_ (const in_label_t &l, seq< I... >)
 

Static Public Attributes

static constexpr size_t number_of_tapes = in_labelset_t::size()
 

Detailed Description

template<typename... LabelSets, typename WeightSet, size_t... Tapes>
struct vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >

Specialization: lift only some tapes.

Definition at line 70 of file lift.hh.

Member Typedef Documentation

◆ context_t

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
using vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::context_t = context<labelset_t, weightset_t>

Result context.

Definition at line 130 of file lift.hh.

◆ in_context_t

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
using vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::in_context_t = context<in_labelset_t, WeightSet>

Definition at line 76 of file lift.hh.

◆ in_label_t

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
using vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::in_label_t = typename in_labelset_t::value_t

Definition at line 77 of file lift.hh.

◆ in_labelset_t

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
using vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::in_labelset_t = tupleset<LabelSets...>

Input labelset.

Definition at line 75 of file lift.hh.

◆ index_t

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
using vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::index_t = typename detail::make_index_sequence<in_labelset_t::size()>::type

Index of all input tapes.

Definition at line 102 of file lift.hh.

◆ inner_context_t

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
using vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::inner_context_t = context<weight_tapes_t, WeightSet>

Definition at line 124 of file lift.hh.

◆ kept_index_t

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
using vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::kept_index_t = sequence_difference<index_t, seq<Tapes...> >

Complement the list of indexes of tapes to be lifted, to get the list of tapes to be kept.

Definition at line 112 of file lift.hh.

◆ labelset_t

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
using vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::labelset_t = typename tape_set<kept_index_t, in_labelset_t>::type

Labelset of tapes to be kept.

Definition at line 115 of file lift.hh.

◆ seq

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
template<std::size_t... I>
using vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::seq = detail::index_sequence<I...>

A static list of integers.

Definition at line 81 of file lift.hh.

◆ tape_labelset_t

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
template<size_t I>
using vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::tape_labelset_t = typename in_labelset_t::template valueset_t<I>

Definition at line 107 of file lift.hh.

◆ weight_index_t

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
using vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::weight_index_t = seq<Tapes...>

List of indexes of tapes to be lifted.

Definition at line 118 of file lift.hh.

◆ weight_tapes_t

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
using vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::weight_tapes_t = typename tape_set<weight_index_t, in_labelset_t>::type

Labelset of tapes to be lifted.

Definition at line 122 of file lift.hh.

◆ weightset_t

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
using vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::weightset_t = expressionset<inner_context_t>

Weightset of the result: lifted tapes plus former weightset.

Definition at line 127 of file lift.hh.

Member Function Documentation

◆ kept_label()

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
static labelset_t::value_t vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::kept_label ( const in_label_t l)
inlinestatic

Label in the output.

Definition at line 159 of file lift.hh.

◆ kept_label_()

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
template<size_t... I>
static labelset_t::value_t vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::kept_label_ ( const in_label_t l,
seq< I... >   
)
inlinestatic

Definition at line 166 of file lift.hh.

◆ value()

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
static context_t vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::value ( const in_context_t ctx,
vcsn::rat::identities  ids 
)
inlinestatic

Conversion.

Definition at line 133 of file lift.hh.

◆ value_()

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
template<size_t... WeightTapes, size_t... KeptTapes>
static context_t vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::value_ ( const in_context_t ctx,
vcsn::rat::identities  ids,
seq< WeightTapes... >  ,
seq< KeptTapes... >   
)
inlinestatic

Definition at line 140 of file lift.hh.

References vcsn::context< LabelSet, WeightSet >::labelset(), and vcsn::context< LabelSet, WeightSet >::weightset().

Here is the call graph for this function:

◆ weight_label()

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
static weight_tapes_t::value_t vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::weight_label ( const in_label_t l)
inlinestatic

Weight in the output.

Definition at line 173 of file lift.hh.

◆ weight_label_()

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
template<size_t... I>
static weight_tapes_t::value_t vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::weight_label_ ( const in_label_t l,
seq< I... >   
)
inlinestatic

Definition at line 180 of file lift.hh.

Member Data Documentation

◆ number_of_tapes

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
constexpr size_t vcsn::detail::enable_if_t<(0< sizeof...(Tapes))> >::number_of_tapes = in_labelset_t::size()
static

Definition at line 104 of file lift.hh.


The documentation for this struct was generated from the following file: