![]() |
Vcsn
2.8
Be Rational
|
A ValueSet which is a Cartesian product of ValueSets. More...
#include <fwd.hh>
Public Types | |
using | valuesets_t = std::tuple< ValueSets... > |
using | indices_t = make_index_sequence< sizeof...(ValueSets)> |
template<std::size_t... I> | |
using | seq = index_sequence< I... > |
template<std::size_t I> | |
using | valueset_t = tuple_element_t< I, valuesets_t > |
The Ith valueset type. More... | |
using | self_t = tupleset< ValueSets... > |
using | value_t = std::tuple< typename ValueSets::value_t... > |
A tuple of values. More... | |
using | letter_t = typename labelset_types< ValueSets... >::letter_t |
A tuple of base letters if meaningful, void otherwise. More... | |
using | letters_t = typename labelset_types< ValueSets... >::letters_t |
A set of letters if meaningful, void otherwise. More... | |
using | genset_ptr = typename labelset_types< ValueSets... >::genset_ptr |
A tuple of generators if meaningful, void otherwise. More... | |
using | word_t = typename labelset_types< ValueSets... >::word_t |
A tuple of words if meaningful, void otherwise. More... | |
using | value_type = letter_t |
To be iterable. More... | |
using | kind_t = labels_are_tuples |
template<size_t I> | |
using | project_t = valueset_t< I > |
The type of the I-th tape valueset. More... | |
using | indices1_t = punched_sequence< tupleset< LS1... >::size(), out > |
using | indices2_t = punched_sequence< tupleset< LS2... >::size(), in > |
Public Member Functions | |
tupleset_impl (valuesets_t vs) | |
tupleset_impl (ValueSets... ls) | |
~tupleset_impl () | |
const valuesets_t & | sets () const |
The componants valuesets, as a tuple. More... | |
template<size_t I> | |
const valueset_t< I > & | set () const |
The Ith component valueset. More... | |
template<size_t I> | |
const valueset_t< I > & | project () const |
The Ith component valueset. More... | |
template<size_t I> | |
auto | project (const value_t &v) const |
The I-th component of the value. More... | |
bool | open (bool o) const |
Whether unknown letters should be added, or rejected. More... | |
template<typename... Args> | |
value_t | value (const std::tuple< Args... > &args) const |
Construct a value. More... | |
template<typename... Args> | |
value_t | tuple (Args &&... args) const |
Construct a value. More... | |
template<typename... LS1, typename... LS2> | |
auto | compose (const tupleset< LS1... > &ls1, const typename tupleset< LS1... >::value_t &l1, const tupleset< LS2... > &ls2, const typename tupleset< LS2... >::value_t &l2) const -> std::enable_if_t< are_labelsets_composable< tupleset< LS1... >, tupleset< LS2... >> |
Compose, aka join in the world of databases. More... | |
return | compose_ (ls1, l1, ls2, l2, indices1_t{}, indices2_t{}) |
genset_ptr | genset () const |
auto | pregenerators () const |
The pregenerators. Meaningful for labelsets only. More... | |
auto | generators () const |
The generators. Meaningful for labelsets only. More... | |
template<typename... Args> | |
auto | word (const std::tuple< Args... > &v) const -> word_t |
Convert to a word. More... | |
template<typename Fun > | |
auto | map (Fun &&fun) const |
Run a function per set, and return the tuple of results. More... | |
bool | is_zero (const value_t &l) const |
bool | is_letter (const value_t &) const |
bool | is_valid (const value_t &l) const |
value_t | add (const value_t &l, const value_t &r) const |
Pointwise addition. More... | |
template<typename LhsValue , typename RhsValue > | |
auto | mul (const LhsValue &l, const RhsValue &r) const -> word_t |
The product (possibly concatenation) of l and r. More... | |
value_t | lgcd (const value_t &l, const value_t &r) const |
Pointwise left GCD. More... | |
value_t | rdivide (const value_t &l, const value_t &r) const |
Pointwise right division (l / r). More... | |
boost::optional< value_t > | maybe_rdivide (const value_t &l, const value_t &r) const |
value_t | ldivide (const value_t &l, const value_t &r) const |
Pointwise left division (l \ r). More... | |
boost::optional< value_t > | maybe_ldivide (const value_t &l, const value_t &r) const |
valueset_t< 0 >::value_t | lnormalize_here (value_t &v) const |
Eliminate the LGCD between all the tapes. More... | |
value_t | star (const value_t &v) const |
Pointwise star. More... | |
template<typename Value > | |
Value | delimit (const Value &l) const |
Add the special character first and last. More... | |
template<typename Value > | |
Value | undelimit (const Value &l) const |
Remove first and last characters, that must be "special". More... | |
template<typename Value > | |
Value | transpose (const Value &l) const |
Transpose a word_t or a value_t. More... | |
value_t | conv (b, b::value_t v) const |
template<typename... VS> | |
value_t | conv (const tupleset< VS... > &vs, const typename tupleset< VS... >::value_t &v) const |
Convert a value from tupleset<...> to value_t. More... | |
template<typename... VS> | |
value_t | conv (const nullableset< tupleset< VS... >> &vs, const typename nullableset< tupleset< VS... >>::value_t &v) const |
Convert a value from nullableset<tupleset<...>> to value_t. More... | |
template<typename VS > | |
value_t | conv (const VS &vs, const typename VS::value_t &v) const |
Convert a single tape expression to multitape. More... | |
value_t | conv (std::istream &i, bool quoted=true) const |
Read one label from i, return the corresponding value. More... | |
template<typename Fun > | |
void | convs (std::istream &i, Fun &&fun) const |
Fun: (label_t) -> void. More... | |
std::ostream & | print_set (std::ostream &o, format fmt={}) const |
std::ostream & | print (const value_t &l, std::ostream &o=std::cout, format fmt={}) const |
template<std::size_t... I> | |
auto | get_letter (std::istream &i, bool quoted=true) const -> decltype(this->get_letter_(i, quoted, indices)) |
template<typename Value , typename... Defaults> | |
auto | letters_of_padded (const Value &v, const std::tuple< Defaults... > &def) const -> decltype(this->letters_of_padded_(v, def, indices)) |
Iterate over the letters of v. More... | |
Static Public Member Functions | |
static symbol | sname () |
static constexpr std::size_t | size () |
Number of tapes. More... | |
template<typename Value > | |
static size_t | size (const Value &v) |
Get the max of the sizes of the tapes. More... | |
static constexpr bool | is_commutative () |
static constexpr bool | is_idempotent () |
static self_t | make (std::istream &is) |
Build from the description in is. More... | |
static constexpr bool | is_free () |
static bool | equal (const value_t &l, const value_t &r) |
Whether l equals r. More... | |
template<typename LhsValue , typename RhsValue > | |
static auto | compare (const LhsValue &l, const RhsValue &r) -> int |
Three-way comparison between l and r. More... | |
template<typename LhsValue , typename RhsValue > | |
static auto | less (const LhsValue &l, const RhsValue &r) -> bool |
Whether l < r. More... | |
static value_t | special () |
static bool | is_special (const value_t &l) |
static constexpr bool | has_lightening_weights () |
static constexpr bool | has_one () |
static constexpr bool | is_expressionset () |
static constexpr bool | is_letterized () |
template<typename Indices = indices_t> | |
static auto | one () -> decltype(one_(Indices |
A tuple of ones. More... | |
static bool | is_one (const value_t &l) |
static bool | show_one () |
static constexpr star_status_t | star_status () |
static size_t | hash (const value_t &v) |
static value_t | conv (self_t, value_t v) |
template<typename Indices = indices_t> | |
static auto | zero () -> decltype(zero_(Indices |
A tuple of zeros. More... | |
template<typename Value > | |
static auto | letters_of (const Value &v) -> decltype(letters_of_(v, indices)) |
Iterate over the letters of v. More... | |
Public Attributes | |
value_t | |
constexpr auto | in = 0 |
Static Public Attributes | |
static constexpr indices_t | indices {} |
static constexpr bool | is_labelset = labelset_types<ValueSets...>::is_labelset |
Whether this models a labelset. More... | |
Private Member Functions | |
template<std::size_t... I> | |
bool | open_ (bool o, seq< I... >) const |
template<typename... Args, std::size_t... I> | |
value_t | value_ (const std::tuple< Args... > &args, seq< I... >) const |
template<typename... LS1, typename... LS2, std::size_t... I1, std::size_t... I2> | |
value_t | compose_ (const tupleset< LS1... > &, const typename tupleset< LS1... >::value_t &l1, const tupleset< LS2... > &, const typename tupleset< LS2... >::value_t &l2, seq< I1... >, seq< I2... >) const |
template<std::size_t... I> | |
genset_ptr | genset_ (seq< I... >) const |
template<std::size_t... I> | |
auto | pregenerators_ (seq< I... >) const |
template<typename... Args, std::size_t... I> | |
word_t | word_ (const std::tuple< Args... > &l, seq< I... >) const |
template<std::size_t... I> | |
bool | is_zero_ (const value_t &l, seq< I... >) const |
template<std::size_t... I> | |
bool | is_valid_ (const value_t &l, seq< I... >) const |
template<typename Fun , std::size_t... I> | |
auto | map_impl_ (Fun &&fun, seq< I... >) const |
Run a nullary function pointwise, and return the tuple of results. More... | |
template<typename Fun > | |
value_t | map_ (const value_t &v, Fun &&fun) const |
Apply a unary function pointwise, and return the tuple of results. More... | |
template<typename Fun , std::size_t... I> | |
value_t | map_impl_ (const value_t &v, Fun &&fun, seq< I... >) const |
template<typename Fun > | |
value_t | map_ (const value_t &l, const value_t &r, Fun &&fun) const |
Apply a binary function pointwise, and return the tuple of results. More... | |
template<typename Fun , std::size_t... I> | |
value_t | map_impl_ (const value_t &l, const value_t &r, Fun &&fun, seq< I... >) const |
template<typename LhsValue , typename RhsValue , std::size_t... I> | |
auto | mul_ (const LhsValue &l, const RhsValue &r, seq< I... >) const -> word_t |
template<std::size_t... I> | |
valueset_t< 0 >::value_t | lnormalize_here_ (value_t &vs, seq< I... >) const |
template<typename Value , std::size_t... I> | |
Value | delimit_ (const Value &l, seq< I... >) const |
template<typename Value , std::size_t... I> | |
Value | undelimit_ (const Value &l, seq< I... >) const |
template<typename... VS, std::size_t... I> | |
value_t | conv_ (const tupleset< VS... > &vs, const typename tupleset< VS... >::value_t &v, seq< I... >) const |
template<typename VS , std::size_t... I> | |
value_t | partial_identity_ (const VS &vs, const typename VS::value_t &v, seq< I... >) const |
value_t | conv_ (std::istream &i, bool quoted, std::true_type) const |
When the valuesets are labelsets and support one, accept the empty string to denote one. More... | |
value_t | conv_ (std::istream &i, bool quoted, std::false_type) const |
Read a tuple in the stream, possibly parenthesized. More... | |
template<std::size_t... I> | |
value_t | conv_ (std::istream &i, bool quoted, seq< I... >) const |
template<std::size_t... I> | |
std::ostream & | print_ (const value_t &l, std::ostream &o, format fmt, const char *pre, const char *sep, const char *post, seq< I... >) const |
template<std::size_t... I> | |
std::ostream & | print_set_ (std::ostream &o, format fmt, seq< I... >) const |
template<typename Value , std::size_t... I> | |
Value | transpose_ (const Value &l, seq< I... >) const |
template<std::size_t... I> | |
self_t | meet_ (const self_t &rhs, seq< I... >) const |
The intersection with another tupleset. More... | |
template<std::size_t... I> | |
auto | get_letter_ (std::istream &i, bool quoted, seq< I... >) const -> letter_t |
Must be declared before, as we use its result in decltype. More... | |
template<typename Value , typename... Defaults, std::size_t... I> | |
auto | letters_of_padded_ (const Value &v, const std::tuple< Defaults... > &def, seq< I... >) const -> decltype(zip_with_padding(def, this->set< I >().letters_of_padded(std::get< I >(v), std::get< I >(def))...)) |
Must be declared before, as we use its result in decltype. More... | |
Static Private Member Functions | |
template<std::size_t... I> | |
static auto | one_ (seq< I... >) -> decltype(value_t |
template<std::size_t... I> | |
static std::string | sname_ (seq< I... >) |
template<std::size_t... I> | |
static constexpr bool | is_commutative_ (seq< I... >) |
template<std::size_t... I> | |
static constexpr bool | is_idempotent_ (seq< I... >) |
template<std::size_t... I> | |
static self_t | make_ (std::istream &i, seq< I... >) |
template<typename Value , std::size_t I> | |
static auto | size_ (const Value &v, int) -> decltype(valueset_t< I >::size(std::get< I >(v))) |
The size of the Ith element, if its valueset features a size() function. More... | |
template<typename Value , std::size_t I> | |
static constexpr auto | size_ (const Value &,...) -> size_t |
The size of the Ith element, if its valueset does not feature a size() function. More... | |
template<typename Value , std::size_t... I> | |
static size_t | size_ (const Value &v, seq< I... >) |
template<std::size_t... I> | |
static constexpr bool | is_free_ (seq< I... >) |
template<std::size_t... I> | |
static bool | equal_ (const value_t &l, const value_t &r, seq< I... >) |
template<typename LhsValue , typename RhsValue , std::size_t... I> | |
static auto | less_ (const LhsValue &l, const RhsValue &r, seq< I... >) -> bool |
template<std::size_t... I> | |
static std::size_t | hash_ (const value_t &v, seq< I... >) |
template<std::size_t... I> | |
static value_t | special_ (seq< I... >) |
template<std::size_t... I> | |
static bool | is_special_ (const value_t &l, seq< I... >) |
template<std::size_t... I> | |
static auto | zero_ (seq< I... >) -> decltype(value_t |
template<std::size_t... I> | |
static constexpr bool | has_lightening_weights_ (seq< I... >) |
template<std::size_t... I> | |
static constexpr bool | has_one_ (seq< I... >) |
template<std::size_t... I> | |
static constexpr bool | is_expressionset_ (seq< I... >) |
template<std::size_t... I> | |
static constexpr bool | is_letterized_ (seq< I... >) |
template<std::size_t... I> | |
static bool | is_one_ (const value_t &l, seq< I... >) |
template<std::size_t... I> | |
static bool | show_one_ (seq< I... >) |
template<std::size_t I> | |
static void | eat_separator_ (std::istream &i) |
Read the separator from the input stream i if I is not 0. More... | |
template<typename Value , std::size_t... I> | |
static auto | letters_of_ (const Value &v, seq< I... >) -> decltype(zip(valueset_t< I >::letters_of(std::get< I >(v))...)) |
Must be declared before, as we use its result in decltype. More... | |
Private Attributes | |
valuesets_t | sets_ |
The tupled valuesets. More... | |
bool | open__ = false |
Whether this valueset is open. More... | |
Friends | |
self_t | meet (const self_t &lhs, const self_t &rhs) |
The meet with another tupleset. More... | |
self_t | meet (const self_t &lhs, const b &) |
The meet with the B weightset. More... | |
self_t | meet (const b &, const self_t &rhs) |
The meet with the B weightset. More... | |
A ValueSet which is a Cartesian product of ValueSets.
Exposes a LabelSet interface for products of LabelSets, and similarly for WeightSets.
using vcsn::detail::tupleset_impl< ValueSets >::genset_ptr = typename labelset_types<ValueSets...>::genset_ptr |
A tuple of generators if meaningful, void otherwise.
Definition at line 96 of file tupleset.hh.
using vcsn::detail::tupleset_impl< ValueSets >::indices1_t = punched_sequence<tupleset<LS1...>::size(), out> |
Definition at line 232 of file tupleset.hh.
using vcsn::detail::tupleset_impl< ValueSets >::indices2_t = punched_sequence<tupleset<LS2...>::size(), in> |
Definition at line 233 of file tupleset.hh.
using vcsn::detail::tupleset_impl< ValueSets >::indices_t = make_index_sequence<sizeof...(ValueSets)> |
Definition at line 75 of file tupleset.hh.
using vcsn::detail::tupleset_impl< ValueSets >::kind_t = labels_are_tuples |
Definition at line 107 of file tupleset.hh.
using vcsn::detail::tupleset_impl< ValueSets >::letter_t = typename labelset_types<ValueSets...>::letter_t |
A tuple of base letters if meaningful, void otherwise.
Definition at line 91 of file tupleset.hh.
using vcsn::detail::tupleset_impl< ValueSets >::letters_t = typename labelset_types<ValueSets...>::letters_t |
A set of letters if meaningful, void otherwise.
Definition at line 93 of file tupleset.hh.
using vcsn::detail::tupleset_impl< ValueSets >::project_t = valueset_t<I> |
The type of the I-th tape valueset.
Definition at line 177 of file tupleset.hh.
using vcsn::detail::tupleset_impl< ValueSets >::self_t = tupleset<ValueSets...> |
Definition at line 85 of file tupleset.hh.
using vcsn::detail::tupleset_impl< ValueSets >::seq = index_sequence<I...> |
Definition at line 78 of file tupleset.hh.
using vcsn::detail::tupleset_impl< ValueSets >::value_t = std::tuple<typename ValueSets::value_t...> |
A tuple of values.
Definition at line 88 of file tupleset.hh.
using vcsn::detail::tupleset_impl< ValueSets >::value_type = letter_t |
To be iterable.
Definition at line 105 of file tupleset.hh.
using vcsn::detail::tupleset_impl< ValueSets >::valueset_t = tuple_element_t<I, valuesets_t> |
The Ith valueset type.
Definition at line 82 of file tupleset.hh.
using vcsn::detail::tupleset_impl< ValueSets >::valuesets_t = std::tuple<ValueSets...> |
Definition at line 74 of file tupleset.hh.
using vcsn::detail::tupleset_impl< ValueSets >::word_t = typename labelset_types<ValueSets...>::word_t |
A tuple of words if meaningful, void otherwise.
Definition at line 98 of file tupleset.hh.
|
inline |
Definition at line 109 of file tupleset.hh.
|
inline |
Definition at line 113 of file tupleset.hh.
|
inline |
Definition at line 117 of file tupleset.hh.
|
inline |
Pointwise addition.
Definition at line 403 of file tupleset.hh.
|
inlinestatic |
Three-way comparison between l and r.
Definition at line 293 of file tupleset.hh.
|
inline |
Compose, aka join
in the world of databases.
Beware that we don't even check that the common tapes match.
Definition at line 220 of file tupleset.hh.
return vcsn::detail::tupleset_impl< ValueSets >::compose_ | ( | ls1 | , |
l1 | , | ||
ls2 | , | ||
l2 | , | ||
indices1_t{} | , | ||
indices2_t{} | |||
) |
|
inlineprivate |
Definition at line 726 of file tupleset.hh.
|
inlinestatic |
Definition at line 563 of file tupleset.hh.
References vcsn::detail::v.
|
inline |
Definition at line 569 of file tupleset.hh.
|
inline |
Convert a value from tupleset<...> to value_t.
Definition at line 577 of file tupleset.hh.
|
inline |
Convert a value from nullableset<tupleset<...>> to value_t.
Definition at line 586 of file tupleset.hh.
References vcsn::conv().
|
inline |
Convert a single tape expression to multitape.
Definition at line 595 of file tupleset.hh.
|
inline |
Read one label from i, return the corresponding value.
Definition at line 602 of file tupleset.hh.
References vcsn::detail::labelset_types_impl< Enable, ValueSets >::is_labelset.
|
inlineprivate |
Definition at line 978 of file tupleset.hh.
References vcsn::conv(), and vcsn::detail::v.
|
inlineprivate |
When the valuesets are labelsets and support one, accept the empty string to denote one.
Definition at line 996 of file tupleset.hh.
|
inlineprivate |
Read a tuple in the stream, possibly parenthesized.
Definition at line 1007 of file tupleset.hh.
References vcsn::eat(), and vcsn::res.
|
inlineprivate |
Definition at line 1020 of file tupleset.hh.
References vcsn::conv(), and vcsn::detail::make_gcc_tuple().
|
inline |
Fun: (label_t) -> void.
Definition at line 611 of file tupleset.hh.
References vcsn::detail::conv_label_class_(), and vcsn::eat().
|
inline |
Add the special character first and last.
Templated by Value so that we work for both word_t and label_t. Besides, avoids the problem of instantiation with weightsets that do not provide a word_t type.
Definition at line 529 of file tupleset.hh.
|
inlineprivate |
Definition at line 964 of file tupleset.hh.
|
inlinestaticprivate |
Read the separator from the input stream i if I is not 0.
The separator is '|' (for labels), but ',' is accepted too (for weights).
Definition at line 1039 of file tupleset.hh.
References vcsn::eat().
|
inlinestatic |
Whether l equals r.
Definition at line 285 of file tupleset.hh.
|
inlinestaticprivate |
Definition at line 765 of file tupleset.hh.
|
inline |
The generators. Meaningful for labelsets only.
Definition at line 253 of file tupleset.hh.
|
inline |
Definition at line 239 of file tupleset.hh.
|
inlineprivate |
Definition at line 737 of file tupleset.hh.
|
inline |
Definition at line 1197 of file tupleset.hh.
References vcsn::eat(), and vcsn::res.
|
inlineprivate |
Must be declared before, as we use its result in decltype.
Definition at line 1157 of file tupleset.hh.
References vcsn::detail::make_gcc_tuple().
|
inlinestatic |
Definition at line 334 of file tupleset.hh.
|
inlinestaticprivate |
Definition at line 848 of file tupleset.hh.
|
inlinestatic |
Definition at line 340 of file tupleset.hh.
|
inlinestaticprivate |
Definition at line 855 of file tupleset.hh.
|
inlinestatic |
Definition at line 557 of file tupleset.hh.
|
inlinestaticprivate |
Definition at line 792 of file tupleset.hh.
References vcsn::hash_combine(), and vcsn::res.
|
inlinestatic |
Definition at line 140 of file tupleset.hh.
|
inlinestaticprivate |
Definition at line 660 of file tupleset.hh.
|
inlinestatic |
Definition at line 346 of file tupleset.hh.
|
inlinestaticprivate |
Definition at line 862 of file tupleset.hh.
|
inlinestatic |
Definition at line 261 of file tupleset.hh.
|
inlinestaticprivate |
Definition at line 751 of file tupleset.hh.
|
inlinestatic |
Definition at line 146 of file tupleset.hh.
|
inlinestaticprivate |
Definition at line 667 of file tupleset.hh.
|
inline |
Definition at line 389 of file tupleset.hh.
|
inlinestatic |
Definition at line 352 of file tupleset.hh.
|
inlinestaticprivate |
Definition at line 869 of file tupleset.hh.
References vcsn::detail::is_letterized().
|
inlinestatic |
Definition at line 377 of file tupleset.hh.
|
inlinestaticprivate |
Definition at line 876 of file tupleset.hh.
|
inlinestatic |
Definition at line 322 of file tupleset.hh.
|
inlinestaticprivate |
Definition at line 809 of file tupleset.hh.
References vcsn::detail::is_special().
|
inline |
Definition at line 396 of file tupleset.hh.
|
inlineprivate |
Definition at line 896 of file tupleset.hh.
References vcsn::is_valid().
|
inline |
Definition at line 328 of file tupleset.hh.
|
inlineprivate |
Definition at line 838 of file tupleset.hh.
|
inline |
Pointwise left division (l \ r).
Definition at line 470 of file tupleset.hh.
|
inlinestatic |
Whether l < r.
Definition at line 302 of file tupleset.hh.
References vcsn::rat::size().
|
inlinestaticprivate |
Definition at line 776 of file tupleset.hh.
|
inlinestatic |
Iterate over the letters of v.
Templated by Value so that we work for both word_t and label_t. Besides, avoids the problem of instantiation with weightsets that do not provide a word_t type.
Definition at line 1216 of file tupleset.hh.
References vcsn::detail::v.
|
inlinestaticprivate |
Must be declared before, as we use its result in decltype.
Definition at line 1174 of file tupleset.hh.
References vcsn::detail::v, and vcsn::zip().
|
inline |
Iterate over the letters of v.
When the tapes are not the same length, instead of stopping when the shortest tape is consumed, continue until the end of every tape, padding with the default values provided.
Definition at line 1229 of file tupleset.hh.
References vcsn::detail::v.
|
inlineprivate |
Must be declared before, as we use its result in decltype.
Definition at line 1183 of file tupleset.hh.
References vcsn::detail::v, and vcsn::zip_with_padding().
|
inline |
Pointwise left GCD.
Definition at line 426 of file tupleset.hh.
|
inline |
Eliminate the LGCD between all the tapes.
E.g., (abc, abd) =>
(c, d)`.
This tupleset must be homegeneous.
Definition at line 506 of file tupleset.hh.
|
inlineprivate |
Definition at line 952 of file tupleset.hh.
References vcsn::lgcd(), vcsn::res, vcsn::detail::v, and vcsn::detail::void.
|
inlinestatic |
Build from the description in is.
Definition at line 152 of file tupleset.hh.
References vcsn::eat(), and vcsn::res.
|
inlinestaticprivate |
Definition at line 673 of file tupleset.hh.
References vcsn::detail::make_gcc_tuple().
|
inline |
Run a function per set, and return the tuple of results.
Definition at line 278 of file tupleset.hh.
References vcsn::detail::map_impl_().
|
inlineprivate |
Apply a unary function pointwise, and return the tuple of results.
Definition at line 915 of file tupleset.hh.
References vcsn::detail::map_impl_().
|
inlineprivate |
Apply a binary function pointwise, and return the tuple of results.
Definition at line 930 of file tupleset.hh.
References vcsn::detail::map_impl_().
|
inlineprivate |
Run a nullary function pointwise, and return the tuple of results.
Definition at line 907 of file tupleset.hh.
|
inlineprivate |
Definition at line 922 of file tupleset.hh.
|
inlineprivate |
Definition at line 937 of file tupleset.hh.
|
inline |
Definition at line 480 of file tupleset.hh.
References vcsn::res.
|
inline |
Definition at line 447 of file tupleset.hh.
References vcsn::res.
|
inlineprivate |
The intersection with another tupleset.
Definition at line 1119 of file tupleset.hh.
References vcsn::meet().
|
inline |
The product (possibly concatenation) of l and r.
Templated in order to work with tuples of letters and/or words in the case of labelsets.
Definition at line 418 of file tupleset.hh.
|
inlineprivate |
Definition at line 944 of file tupleset.hh.
|
inlinestatic |
A tuple of ones.
Template + decltype so that this is not defined when not all the valuesets support one().
Definition at line 371 of file tupleset.hh.
|
inlinestaticprivate |
Definition at line 359 of file tupleset.hh.
|
inline |
Whether unknown letters should be added, or rejected.
o | whether to accept |
Definition at line 198 of file tupleset.hh.
|
inlineprivate |
Definition at line 686 of file tupleset.hh.
References vcsn::detail::swap(), and vcsn::detail::void.
|
inlineprivate |
Definition at line 987 of file tupleset.hh.
References vcsn::conv().
|
inline |
The pregenerators. Meaningful for labelsets only.
Definition at line 246 of file tupleset.hh.
|
inlineprivate |
Definition at line 744 of file tupleset.hh.
References vcsn::cross().
|
inline |
Definition at line 629 of file tupleset.hh.
References vcsn::detail::print_().
|
inlineprivate |
Definition at line 1050 of file tupleset.hh.
References vcsn::detail::is_special(), and vcsn::detail::void.
|
inline |
Definition at line 623 of file tupleset.hh.
|
inlineprivate |
Definition at line 1073 of file tupleset.hh.
References vcsn::format::kind(), vcsn::format::latex, vcsn::format::raw, vcsn::format::sname, vcsn::format::text, vcsn::format::utf8, and vcsn::detail::void.
|
inline |
|
inline |
The I-th component of the value.
Definition at line 190 of file tupleset.hh.
References vcsn::detail::v.
|
inline |
Pointwise right division (l / r).
Definition at line 437 of file tupleset.hh.
|
inline |
The Ith component valueset.
Definition at line 170 of file tupleset.hh.
|
inline |
The componants valuesets, as a tuple.
Definition at line 163 of file tupleset.hh.
|
inlinestatic |
Definition at line 383 of file tupleset.hh.
|
inlinestaticprivate |
Definition at line 886 of file tupleset.hh.
|
inlinestatic |
Number of tapes.
Definition at line 127 of file tupleset.hh.
|
inlinestatic |
Get the max of the sizes of the tapes.
Definition at line 134 of file tupleset.hh.
|
inlinestaticprivate |
The size of the Ith element, if its valueset features a size() function.
Definition at line 697 of file tupleset.hh.
References vcsn::rat::size(), and vcsn::detail::v.
|
inlinestaticprivate |
The size of the Ith element, if its valueset does not feature a size() function.
Definition at line 706 of file tupleset.hh.
|
inlinestaticprivate |
Definition at line 713 of file tupleset.hh.
References vcsn::detail::v.
|
inlinestatic |
Definition at line 120 of file tupleset.hh.
References vcsn::res.
|
inlinestaticprivate |
Definition at line 644 of file tupleset.hh.
References vcsn::res, and vcsn::sname().
|
inlinestatic |
Definition at line 316 of file tupleset.hh.
|
inlinestaticprivate |
Definition at line 802 of file tupleset.hh.
|
inline |
Pointwise star.
Definition at line 513 of file tupleset.hh.
|
inlinestatic |
Definition at line 543 of file tupleset.hh.
References vcsn::STARRABLE.
|
inline |
Transpose a word_t or a value_t.
Definition at line 551 of file tupleset.hh.
|
inlineprivate |
Definition at line 1111 of file tupleset.hh.
References vcsn::transpose().
|
inline |
Construct a value.
Definition at line 212 of file tupleset.hh.
|
inline |
Remove first and last characters, that must be "special".
Definition at line 537 of file tupleset.hh.
|
inlineprivate |
Definition at line 971 of file tupleset.hh.
|
inline |
Construct a value.
Definition at line 205 of file tupleset.hh.
|
inlineprivate |
Definition at line 719 of file tupleset.hh.
|
inline |
|
inlineprivate |
Definition at line 758 of file tupleset.hh.
|
inlinestatic |
A tuple of zeros.
Template + decltype so that this is not defined when not all the valuesets support zero().
Definition at line 830 of file tupleset.hh.
|
inlinestaticprivate |
Definition at line 818 of file tupleset.hh.
The meet with another tupleset.
Definition at line 1127 of file tupleset.hh.
The meet with the B weightset.
Definition at line 1135 of file tupleset.hh.
The meet with the B weightset.
Definition at line 1143 of file tupleset.hh.
constexpr auto vcsn::detail::tupleset_impl< ValueSets >::in = 0 |
Definition at line 231 of file tupleset.hh.
|
static |
Definition at line 76 of file tupleset.hh.
|
static |
Whether this models a labelset.
Definition at line 102 of file tupleset.hh.
|
mutableprivate |
Whether this valueset is open.
Definition at line 1151 of file tupleset.hh.
|
private |
The tupled valuesets.
Definition at line 1149 of file tupleset.hh.
vcsn::detail::tupleset_impl< ValueSets >::value_t |
Definition at line 227 of file tupleset.hh.