Vcsn
2.3
Be Rational
|
A typed expression set. More...
#include <expressionset.hh>
Classes | |
struct | as_tupleset_impl |
struct | as_tupleset_impl< detail::index_sequence< I... > > |
struct | tuple_of_label |
Turn a tuple of expressions that are labels into a multi-tape label. More... | |
Public Member Functions | |
expressionset_impl (const context_t &ctx, identities_t ids={}) | |
Constructor. More... | |
bool | open (bool o) const |
Whether unknown letters should be added, or rejected. More... | |
const context_t & | context () const |
Accessor to the context. More... | |
identities_t | identities () const |
Accessor to the identities set. More... | |
const labelset_ptr & | labelset () const |
Accessor to the labelset. More... | |
const weightset_ptr & | weightset () const |
Accessor to the weightset. More... | |
bool | is_letter (value_t) const |
When used as a LabelSet. More... | |
bool | is_zero (const value_t &v) const ATTRIBUTE_PURE |
Whether v is the \z . More... | |
bool | is_universal (const value_t &v) const ATTRIBUTE_PURE |
Whether v is the 0{c} . More... | |
template<typename GenSet > | |
auto | conv (const letterset< GenSet > &ls, typename letterset< GenSet >::value_t v) const -> value_t |
auto | conv (b, typename b::value_t v) const -> value_t |
auto | conv (const z &ws, typename z::value_t v) const -> value_t |
auto | conv (const q &ws, typename q::value_t v) const -> value_t |
auto | conv (const r &ws, typename r::value_t v) const -> value_t |
auto | conv (const nmin &ws, typename nmin::value_t v) const -> value_t |
auto | conv (const zmin &ws, typename zmin::value_t v) const -> value_t |
template<typename Ctx2 > | |
auto | conv (const expressionset< Ctx2 > &ws, typename expressionset< Ctx2 >::value_t v) const -> value_t |
auto | zero () const -> value_t |
auto | add (const value_t &l, const value_t &r) const -> value_t |
auto | mul (const value_t &l, const value_t &r) const -> value_t |
auto | concat (const value_t &l, const value_t &r) const -> value_t |
Similar to mul, but in the case of LAW, merge the labels. More... | |
auto | compose (const value_t &l, const value_t &r) const -> value_t |
Build a composition: l @ r . More... | |
auto | conjunction (const value_t &l, const value_t &r) const -> value_t |
Build an conjunction product: l & r . More... | |
auto | infiltrate (const value_t &l, const value_t &r) const -> value_t |
Build an infiltration product: l &: r . More... | |
auto | shuffle (const value_t &l, const value_t &r) const -> value_t |
Build a shuffle product: l : r . More... | |
template<typename... Value> | |
auto | tuple (Value &&...v) const -> value_t |
Build a tuple: e | f | ... . More... | |
auto | power (const value_t &e, unsigned n) const -> value_t |
Add a power operator: e{n} . More... | |
auto | ldivide (const value_t &l, const value_t &r) const -> value_t |
r`. More... | |
auto | rdivide (const value_t &l, const value_t &r) const -> value_t |
Build a right division: l {/} r . More... | |
auto | star (const value_t &e) const -> value_t |
Add a star operator: e* . More... | |
auto | complement (const value_t &e) const -> value_t |
Add a complement operator: e{c} . More... | |
auto | transposition (const value_t &e) const -> value_t |
Add a transposition operator. More... | |
auto | rweight (const value_t &e, const weight_t &w) const -> value_t |
Right-multiplication by a weight. More... | |
auto | lweight (const weight_t &w, const value_t &e) const -> value_t |
Left-multiplication by a weight. More... | |
auto | transpose (const value_t &e) const -> value_t |
The transposed of this rational expression. More... | |
auto | word (label_t l) const -> word_t |
Make a `word' out of an expression. More... | |
template<typename... Args> | |
auto | letter_class (Args &&...chars) const -> value_t |
An expression matching one character amongst chars. More... | |
auto | conv (std::istream &is, bool=true) const -> value_t |
The next expression in a stream. More... | |
auto | conv (const self_t &, const value_t &v) const -> value_t |
Convert from ourself: identity. More... | |
template<typename Fun > | |
void | convs (std::istream &, Fun) const |
Read a range of expressions. More... | |
auto | print (const value_t &v, std::ostream &o=std::cout, format fmt={}) const -> std::ostream & |
auto | print_set (std::ostream &o, format fmt={}) const -> std::ostream & |
Format the description of this expressionset. More... | |
template<unsigned Tape> | |
auto | project () const -> project_t< Tape > |
The expressionset for the Tape-th tape. More... | |
template<size_t Tape> | |
auto | project (const value_t &v) const -> decltype(::vcsn::rat::project< Tape >(this->self(), v)) |
Project a multitape expression. More... | |
template<typename Ctx = context_t> | |
auto | as_tupleset () const -> std::enable_if_t< Ctx::is_lat, as_tupleset_t< Ctx >> |
If we are multitape, ourself as a tupleset. More... | |
template<typename expressionset_impl< Context >::type_t Type> | |
auto | gather_ (values_t &res, const value_t &v) const -> void |
template<typename expressionset_impl< Context >::type_t Type> | |
auto | gather_ (const value_t &l, const value_t &r) const -> values_t |
template<typename LabelSet_ > | |
auto | letter_class_ (std::set< std::pair< typename LabelSet_::letter_t, typename LabelSet_::letter_t >> ccs, bool accept, std::false_type) const -> value_t |
template<typename LabelSet_ , typename... Args> | |
auto | letter_class_ (const Args &&..., std::true_type) const -> value_t |
Static Public Member Functions | |
static symbol | sname () |
Static description key. More... | |
static self_t | make (std::istream &is) |
Build from the description in is. More... | |
static value_t | special () |
When used as a LabelSet. More... | |
static bool | is_special (const value_t &v) |
When used as a LabelSet. More... | |
static bool | is_one (const value_t &v) ATTRIBUTE_PURE |
Whether v is the \e . More... | |
static constexpr bool | is_letterized () |
When used as a labelset. More... | |
static constexpr bool | is_commutative () |
When used as WeightSet. More... | |
static constexpr bool | is_idempotent () |
When used as WeightSet. More... | |
static constexpr bool | show_one () |
When used as WeightSet. More... | |
static constexpr bool | has_lightening_weights () |
When used as WeightSet. More... | |
static constexpr bool | has_one () |
When used as WeightSet. More... | |
static constexpr bool | is_expressionset () |
When used as WeightSet. More... | |
static constexpr bool | is_free () |
When used as WeightSet. More... | |
static constexpr star_status_t | star_status () |
When used as WeightSet. More... | |
static size_t | size (const value_t &v) |
The size of v. More... | |
static bool | less (const value_t &l, const value_t &r) |
Whether l < r. More... | |
static bool | less_linear (const value_t &l, const value_t &r) |
Whether l < r, ignoring lweight. More... | |
static bool | equal (const value_t &l, const value_t &r) |
Whether l == r. More... | |
static size_t | hash (const value_t &v) |
Hash v. More... | |
static auto | atom (const label_t &v) -> value_t |
Build a label. More... | |
static auto | one () -> value_t |
Private Member Functions | |
const self_t & | self () const |
Ourself, but after the application of weightset_mixin. More... | |
auto | add_ (values_t &&vs) const -> value_t |
From a list of values, build a sum, taking care of the empty and singleton cases. More... | |
auto | add_linear_ (const add_t &addends, const value_t &r) const -> value_t |
auto | add_linear_ (const add_t &s1, const add_t &s2) const -> value_t |
auto | add_linear_ (const value_t &l, const value_t &r) const -> value_t |
The sum of two non-zero series. More... | |
template<type_t Type> | |
void | gather_ (values_t &res, const value_t &v) const |
Push v in res, applying associativity if possible. More... | |
template<type_t Type> | |
values_t | gather_ (const value_t &l, const value_t &r) const |
A list denoting the gathering of l and r, applying associativity if possible. More... | |
auto | concat_ (const value_t &l, const value_t &r, std::true_type) const -> value_t |
If labelset is wordset. More... | |
auto | concat_ (const value_t &l, const value_t &r, std::false_type) const -> value_t |
If labelset is not wordset. More... | |
template<typename LabelSet_ , typename... Args> | |
auto | letter_class_ (const Args &&...chars, std::true_type) const -> value_t |
If labelset is oneset. More... | |
template<typename LabelSet_ > | |
value_t | letter_class_ (std::set< std::pair< typename LabelSet_::letter_t, typename LabelSet_::letter_t >> chars, bool accept, std::false_type) const |
If labelset is not oneset. More... | |
Static Private Member Functions | |
static auto | unwrap_possible_lweight_ (const value_t &e) -> value_t |
If e is an lweight, then its child, otherwise e. More... | |
static type_t | type_ignoring_lweight_ (const value_t &e) |
The type of e, or the type of its child if e is a lweight. More... | |
static weight_t | possibly_implicit_lweight_ (const value_t &e) |
The weight of e if it's an lweight, otherwise the weight one(). More... | |
Private Attributes | |
context_t | ctx_ |
The context of the expressions. More... | |
const identities_t | ids_ |
The set of rewriting rules to apply. More... | |
A typed expression set.
Context | the LabelSet and WeightSet types. |
Definition at line 31 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::add_t = vcsn::rat:: add <context_t> |
Definition at line 67 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::as_tupleset_t = typename as_tupleset_impl<typename labelset_t_of<Ctx>::indices_t::type>::type |
If we are multitape, our type as a tupleset.
Definition at line 377 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::atom_t = vcsn::rat:: atom <context_t> |
Definition at line 68 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::complement_t = vcsn::rat:: complement <context_t> |
Definition at line 69 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::compose_t = vcsn::rat:: compose <context_t> |
Definition at line 70 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::conjunction_t = vcsn::rat:: conjunction <context_t> |
Definition at line 71 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::const_visitor = rat::const_visitor<context_t> |
Definition at line 44 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::context_t = Context |
Definition at line 35 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::identities_t = rat::identities |
Definition at line 43 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::infiltrate_t = vcsn::rat:: infiltrate <context_t> |
Definition at line 72 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::inner_t = vcsn::rat:: inner <context_t> |
Definition at line 73 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::kind_t = labels_are_expressions |
Definition at line 38 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::label_t = label_t_of<context_t> |
Definition at line 41 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::labelset_ptr = typename context_t::labelset_ptr |
Definition at line 39 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::labelset_t = labelset_t_of<context_t> |
Definition at line 36 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::ldivide_t = vcsn::rat:: ldivide <context_t> |
Definition at line 74 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::leaf_t = vcsn::rat:: leaf <context_t> |
Definition at line 75 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::letter_t = value_t |
Definition at line 101 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::lweight_t = vcsn::rat:: lweight <context_t> |
Definition at line 76 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::mul_t = vcsn::rat:: mul <context_t> |
Definition at line 79 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::node_t = vcsn::rat:: node <context_t> |
Definition at line 77 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::one_t = vcsn::rat:: one <context_t> |
Definition at line 78 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::project_t = expressionset<detail::project_context<Tape, Ctx>> |
The type of the expressionset for the Tape-th tape.
Definition at line 341 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::rweight_t = vcsn::rat:: rweight <context_t> |
Definition at line 80 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::self_t = expressionset<Context> |
Definition at line 34 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::shuffle_t = vcsn::rat:: shuffle <context_t> |
Definition at line 81 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::star_t = vcsn::rat:: star <context_t> |
Definition at line 82 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::transposition_t = vcsn::rat:: transposition <context_t> |
Definition at line 83 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::tuple_t = vcsn::rat:: tuple <context_t> |
Definition at line 84 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::type_t = typename node_t::type_t |
Type tag for AST classes.
Definition at line 91 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::unary_t = unary<Type, context_t> |
Definition at line 96 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::value_t = typename node_t::value_t |
An expression (a shared pointer to a tree).
Definition at line 89 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::values_t = typename node_t::values_t |
A list (vector) of expressions.
Definition at line 93 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::variadic_t = variadic<Type, context_t> |
Definition at line 98 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::weight_t = typename weightset_t::value_t |
Definition at line 42 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::weightset_ptr = typename context_t::weightset_ptr |
Definition at line 40 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::weightset_t = weightset_t_of<context_t> |
Definition at line 37 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::word_t = value_t |
Definition at line 100 of file expressionset.hh.
using vcsn::rat::expressionset_impl< Context >::zero_t = vcsn::rat:: zero <context_t> |
Definition at line 85 of file expressionset.hh.
vcsn::rat::expressionset_impl< Context >::expressionset_impl | ( | const context_t & | ctx, |
identities_t | ids = {} |
||
) |
Constructor.
ctx | the generator set for the labels, and the weight set. |
ids | the identities to guarantee |
Definition at line 31 of file expressionset.hxx.
References vcsn::rat::expressionset_impl< Context >::ids_, vcsn::rat::identities::is_distributive(), vcsn::require(), and vcsn::rat::expressionset_impl< Context >::weightset().
auto vcsn::rat::expressionset_impl< Context >::add | ( | const value_t & | l, |
const value_t & | r | ||
) | const -> value_t |
Definition at line 193 of file expressionset.hxx.
|
private |
From a list of values, build a sum, taking care of the empty and singleton cases.
Definition at line 251 of file expressionset.hxx.
|
private |
Definition at line 218 of file expressionset.hxx.
|
private |
Definition at line 262 of file expressionset.hxx.
|
private |
The sum of two non-zero series.
Definition at line 304 of file expressionset.hxx.
|
inline |
If we are multitape, ourself as a tupleset.
This is used for instance when building a multitape expression: first we need the "sub" expressionsets.
Definition at line 384 of file expressionset.hh.
|
static |
Build a label.
Definition at line 139 of file expressionset.hxx.
Referenced by vcsn::rat::expressionset_impl< Context >::special().
auto vcsn::rat::expressionset_impl< Context >::complement | ( | const value_t & | e | ) | const -> value_t |
Add a complement operator: e{c}
.
Definition at line 774 of file expressionset.hxx.
auto vcsn::rat::expressionset_impl< Context >::compose | ( | const value_t & | l, |
const value_t & | r | ||
) | const -> value_t |
Build a composition: l @ r
.
Definition at line 418 of file expressionset.hxx.
auto vcsn::rat::expressionset_impl< Context >::concat | ( | const value_t & | l, |
const value_t & | r | ||
) | const -> value_t |
|
private |
If labelset is wordset.
Definition at line 708 of file expressionset.hxx.
|
private |
If labelset is not wordset.
Definition at line 701 of file expressionset.hxx.
auto vcsn::rat::expressionset_impl< Context >::conjunction | ( | const value_t & | l, |
const value_t & | r | ||
) | const -> value_t |
Build an conjunction product: l & r
.
Definition at line 447 of file expressionset.hxx.
auto vcsn::rat::expressionset_impl< Context >::context | ( | ) | const |
Accessor to the context.
Definition at line 119 of file expressionset.hxx.
Referenced by vcsn::rat::expressionset_impl< Context >::project().
auto vcsn::rat::expressionset_impl< Context >::conv | ( | const letterset< GenSet > & | ls, |
typename letterset< GenSet >::value_t | v | ||
) | const -> value_t |
Definition at line 979 of file expressionset.hxx.
References vcsn::conv(), and vcsn::v.
auto vcsn::rat::expressionset_impl< Context >::conv | ( | b | , |
typename b::value_t | v | ||
) | const -> value_t |
Definition at line 986 of file expressionset.hxx.
References vcsn::v.
auto vcsn::rat::expressionset_impl< Context >::conv | ( | const z & | ws, |
typename z::value_t | v | ||
) | const -> value_t |
Definition at line 992 of file expressionset.hxx.
References vcsn::conv(), and vcsn::v.
auto vcsn::rat::expressionset_impl< Context >::conv | ( | const q & | ws, |
typename q::value_t | v | ||
) | const -> value_t |
Definition at line 998 of file expressionset.hxx.
References vcsn::conv(), and vcsn::v.
auto vcsn::rat::expressionset_impl< Context >::conv | ( | const r & | ws, |
typename r::value_t | v | ||
) | const -> value_t |
Definition at line 1004 of file expressionset.hxx.
References vcsn::conv(), and vcsn::v.
auto vcsn::rat::expressionset_impl< Context >::conv | ( | const nmin & | ws, |
typename nmin::value_t | v | ||
) | const -> value_t |
auto vcsn::rat::expressionset_impl< Context >::conv | ( | const zmin & | ws, |
typename zmin::value_t | v | ||
) | const -> value_t |
Definition at line 1010 of file expressionset.hxx.
References vcsn::conv(), and vcsn::v.
auto vcsn::rat::expressionset_impl< Context >::conv | ( | const expressionset< Ctx2 > & | ws, |
typename expressionset< Ctx2 >::value_t | v | ||
) | const -> value_t |
Definition at line 1019 of file expressionset.hxx.
References vcsn::rat::copy(), and vcsn::detail::rs.
auto vcsn::rat::expressionset_impl< Context >::conv | ( | std::istream & | is, |
bool | = true |
||
) | const -> value_t |
The next expression in a stream.
Definition at line 1027 of file expressionset.hxx.
References vcsn::dyn::read_expression(), and vcsn::res.
auto vcsn::rat::expressionset_impl< Context >::conv | ( | const self_t & | rs, |
const value_t & | v | ||
) | const -> value_t |
Convert from ourself: identity.
Definition at line 967 of file expressionset.hxx.
References vcsn::rat::copy(), vcsn::detail::rs, and vcsn::v.
|
inline |
Read a range of expressions.
Definition at line 325 of file expressionset.hh.
|
static |
Whether l == r.
Definition at line 954 of file expressionset.hxx.
Referenced by vcsn::rat::expressionset_impl< Context >::is_special().
auto vcsn::rat::expressionset_impl< Context >::gather_ | ( | values_t & | res, |
const value_t & | v | ||
) | const -> void |
Definition at line 163 of file expressionset.hxx.
auto vcsn::rat::expressionset_impl< Context >::gather_ | ( | const value_t & | l, |
const value_t & | r | ||
) | const -> values_t |
Definition at line 176 of file expressionset.hxx.
|
private |
Push v in res, applying associativity if possible.
Type | the kind of expressions on which to apply associativity. Must be one of the variadic types. |
|
private |
A list denoting the gathering of l and r, applying associativity if possible.
Type | the kind of expressions on which to apply associativity. Must be one of the variadic types. |
|
inlinestatic |
When used as WeightSet.
Definition at line 187 of file expressionset.hh.
|
inlinestatic |
When used as WeightSet.
Definition at line 193 of file expressionset.hh.
|
static |
Hash v.
Definition at line 960 of file expressionset.hxx.
References vcsn::detail::hasher(), and vcsn::v.
auto vcsn::rat::expressionset_impl< Context >::identities | ( | ) | const |
Accessor to the identities set.
Definition at line 124 of file expressionset.hxx.
auto vcsn::rat::expressionset_impl< Context >::infiltrate | ( | const value_t & | l, |
const value_t & | r | ||
) | const -> value_t |
Build an infiltration product: l &: r
.
Definition at line 568 of file expressionset.hxx.
|
inlinestatic |
When used as WeightSet.
Definition at line 167 of file expressionset.hh.
|
inlinestatic |
When used as WeightSet.
Definition at line 199 of file expressionset.hh.
|
inlinestatic |
When used as WeightSet.
Definition at line 205 of file expressionset.hh.
|
inlinestatic |
When used as WeightSet.
Definition at line 173 of file expressionset.hh.
|
inline |
When used as a LabelSet.
Definition at line 142 of file expressionset.hh.
|
inlinestatic |
When used as a labelset.
Definition at line 161 of file expressionset.hh.
|
static |
Whether v is the \e
.
Used when used as WeightSet.
Definition at line 921 of file expressionset.hxx.
References vcsn::rat::one, and vcsn::v.
|
inlinestatic |
When used as a LabelSet.
Definition at line 136 of file expressionset.hh.
References vcsn::rat::expressionset_impl< Context >::equal(), and vcsn::rat::expressionset_impl< Context >::special().
auto vcsn::rat::expressionset_impl< Context >::is_universal | ( | const value_t & | v | ) | const |
Whether v is the 0{c}
.
Definition at line 927 of file expressionset.hxx.
References vcsn::rat::complement, and vcsn::v.
auto vcsn::rat::expressionset_impl< Context >::is_zero | ( | const value_t & | v | ) | const |
Whether v is the \z
.
Used when used as WeightSet.
Definition at line 915 of file expressionset.hxx.
References vcsn::v, and vcsn::rat::zero.
auto vcsn::rat::expressionset_impl< Context >::labelset | ( | ) | const |
Accessor to the labelset.
Definition at line 129 of file expressionset.hxx.
auto vcsn::rat::expressionset_impl< Context >::ldivide | ( | const value_t & | l, |
const value_t & | r | ||
) | const -> value_t |
r`.
Definition at line 505 of file expressionset.hxx.
|
static |
Whether l < r.
Definition at line 940 of file expressionset.hxx.
|
static |
Whether l < r, ignoring lweight.
Typically used for linear identities, where <2>a and <3>a are "equal" and should be merged into <5>a.
Definition at line 947 of file expressionset.hxx.
auto vcsn::rat::expressionset_impl< Context >::letter_class | ( | Args &&... | chars | ) | const -> value_t |
An expression matching one character amongst chars.
Definition at line 1055 of file expressionset.hxx.
|
private |
If labelset is oneset.
|
private |
If labelset is not oneset.
auto vcsn::rat::expressionset_impl< Context >::letter_class_ | ( | std::set< std::pair< typename LabelSet_::letter_t, typename LabelSet_::letter_t >> | ccs, |
bool | accept, | ||
std::false_type | |||
) | const -> value_t |
Definition at line 1066 of file expressionset.hxx.
References vcsn::has(), vcsn::require(), vcsn::res, vcsn::rat::to_string(), and VCSN_REQUIRE.
auto vcsn::rat::expressionset_impl< Context >::letter_class_ | ( | const Args && | ..., |
std::true_type | |||
) | const -> value_t |
Definition at line 1134 of file expressionset.hxx.
auto vcsn::rat::expressionset_impl< Context >::lweight | ( | const weight_t & | w, |
const value_t & | e | ||
) | const -> value_t |
Left-multiplication by a weight.
Definition at line 833 of file expressionset.hxx.
|
static |
Build from the description in is.
Definition at line 53 of file expressionset.hxx.
References vcsn::rat::ctx(), vcsn::eat(), and vcsn::rat::ids().
auto vcsn::rat::expressionset_impl< Context >::mul | ( | const value_t & | l, |
const value_t & | r | ||
) | const -> value_t |
Definition at line 356 of file expressionset.hxx.
|
static |
Definition at line 154 of file expressionset.hxx.
auto vcsn::rat::expressionset_impl< Context >::open | ( | bool | o | ) | const |
Whether unknown letters should be added, or rejected.
o | whether to accept unknown letters |
Definition at line 113 of file expressionset.hxx.
|
staticprivate |
The weight of e if it's an lweight, otherwise the weight one().
static because used by less.
Definition at line 338 of file expressionset.hxx.
auto vcsn::rat::expressionset_impl< Context >::power | ( | const value_t & | e, |
unsigned | n | ||
) | const -> value_t |
Add a power operator: e{n}
.
Definition at line 631 of file expressionset.hxx.
auto vcsn::rat::expressionset_impl< Context >::print | ( | const value_t & | v, |
std::ostream & | o = std::cout , |
||
format | fmt = {} |
||
) | const -> std::ostream& |
Definition at line 1037 of file expressionset.hxx.
References vcsn::rat::make_printer(), vcsn::print(), and vcsn::v.
auto vcsn::rat::expressionset_impl< Context >::print_set | ( | std::ostream & | o, |
format | fmt = {} |
||
) | const -> std::ostream& |
Format the description of this expressionset.
Definition at line 70 of file expressionset.hxx.
References vcsn::rat::identities::is_distributive(), vcsn::format::latex, vcsn::context< LabelSet, WeightSet >::print_set(), and vcsn::format::sname.
|
inline |
The expressionset for the Tape-th tape.
Definition at line 345 of file expressionset.hh.
References vcsn::rat::expressionset_impl< Context >::context().
|
inline |
Project a multitape expression.
Definition at line 353 of file expressionset.hh.
auto vcsn::rat::expressionset_impl< Context >::rdivide | ( | const value_t & | l, |
const value_t & | r | ||
) | const -> value_t |
Build a right division: l {/} r
.
Definition at line 530 of file expressionset.hxx.
auto vcsn::rat::expressionset_impl< Context >::rweight | ( | const value_t & | e, |
const weight_t & | w | ||
) | const -> value_t |
Right-multiplication by a weight.
Definition at line 872 of file expressionset.hxx.
References vcsn::res.
|
inlineprivate |
Ourself, but after the application of weightset_mixin.
FIXME: this is ugly. It is due to the fact that instead of the CRTP, we used a mixin approach to add features to expressionset as opposed to expressionset_impl. Except that here, we have an expression_impl, and we need the expression. So after all, maybe the CRTP is a better approach.
Cannot be a reference member, as we do support assignments, in which case the copied self would point to the original this.
Definition at line 57 of file expressionset.hh.
|
inlinestatic |
When used as WeightSet.
Definition at line 181 of file expressionset.hh.
auto vcsn::rat::expressionset_impl< Context >::shuffle | ( | const value_t & | l, |
const value_t & | r | ||
) | const -> value_t |
Build a shuffle product: l : r
.
Definition at line 598 of file expressionset.hxx.
|
static |
|
static |
Static description key.
Definition at line 45 of file expressionset.hxx.
References vcsn::res, and vcsn::sname().
|
inlinestatic |
When used as a LabelSet.
Definition at line 130 of file expressionset.hh.
References vcsn::rat::expressionset_impl< Context >::atom().
Referenced by vcsn::rat::expressionset_impl< Context >::is_special().
auto vcsn::rat::expressionset_impl< Context >::star | ( | const value_t & | e | ) | const -> value_t |
Add a star operator: e*
.
Definition at line 755 of file expressionset.hxx.
|
inlinestatic |
When used as WeightSet.
Definition at line 211 of file expressionset.hh.
References vcsn::STARRABLE.
auto vcsn::rat::expressionset_impl< Context >::transpose | ( | const value_t & | e | ) | const -> value_t |
The transposed of this rational expression.
Definition at line 1046 of file expressionset.hxx.
References vcsn::transpose(), and vcsn::v.
auto vcsn::rat::expressionset_impl< Context >::transposition | ( | const value_t & | e | ) | const -> value_t |
Add a transposition operator.
Definition at line 804 of file expressionset.hxx.
auto vcsn::rat::expressionset_impl< Context >::tuple | ( | Value &&... | v | ) | const -> value_t |
Build a tuple: e | f | ...
.
Definition at line 539 of file expressionset.hxx.
|
staticprivate |
The type of e, or the type of its child if e is a lweight.
static because used by less.
Definition at line 332 of file expressionset.hxx.
|
staticprivate |
If e is an lweight, then its child, otherwise e.
static because used by less.
Definition at line 347 of file expressionset.hxx.
auto vcsn::rat::expressionset_impl< Context >::weightset | ( | ) | const |
Accessor to the weightset.
Definition at line 134 of file expressionset.hxx.
Referenced by vcsn::rat::expressionset_impl< Context >::expressionset_impl().
|
inline |
Make a `word' out of an expression.
Definition at line 308 of file expressionset.hh.
auto vcsn::rat::expressionset_impl< Context >::zero | ( | ) | const -> value_t |
Definition at line 148 of file expressionset.hxx.
|
private |
The context of the expressions.
Definition at line 493 of file expressionset.hh.
|
private |
The set of rewriting rules to apply.
Definition at line 495 of file expressionset.hh.
Referenced by vcsn::rat::expressionset_impl< Context >::expressionset_impl().