Vcsn
2.4
Be Rational
|
Linear combination of labels: map labels to weights. More...
#include <fwd.hh>
Classes | |
struct | norm_ |
In the general case, normalize by the first (non null) weight. More... | |
struct | norm_< polynomialset< Ctx, Knd >, Dummy > |
Compute the left GCD of weights which are polynomials. More... | |
struct | norm_< z, Dummy > |
For Z, take the GCD, with the sign of the first value. More... | |
Public Types | |
using | self_t = polynomialset< Context, Kind > |
using | context_t = Context |
using | labelset_t = labelset_t_of< context_t > |
using | weightset_t = weightset_t_of< context_t > |
using | labelset_ptr = typename context_t::labelset_ptr |
using | weightset_ptr = typename context_t::weightset_ptr |
using | label_t = typename labelset_t::value_t |
Polynomials over labels. More... | |
using | weight_t = weight_t_of< context_t > |
using | value_t = wet_of< context_t, Kind > |
using | monomial_t = typename value_t::value_type |
A pair <label, weight>. More... | |
template<typename Ctx > | |
using | rweight_t = decltype(std::declval< labelset_t_of< Ctx >>().rweight(std::declval< label_t_of< Ctx >>(), std::declval< weight_t_of< Ctx >>())) |
Detect whether the labelset features rweight . More... | |
template<typename Ctx > | |
using | has_rweight_fn = detect< Ctx, rweight_t > |
Whether LabelSet features rweight . More... | |
template<typename Ctx > | |
using | compose_t = decltype(std::declval< labelset_t_of< Ctx >>().compose(std::declval< label_t_of< Ctx >>(), std::declval< label_t_of< Ctx >>())) |
Detect whether the labelset features compose . More... | |
template<typename Ctx > | |
using | has_compose_fn = detect< Ctx, compose_t > |
Whether LabelSet features compose . More... | |
Public Member Functions | |
polynomialset_impl ()=delete | |
polynomialset_impl (const polynomialset_impl &)=default | |
polynomialset_impl (polynomialset_impl &&)=default | |
polynomialset_impl (const context_t &ctx) | |
const self_t & | self () const |
Ourself, but after the application of weightset_mixin. More... | |
const context_t & | context () const |
const labelset_ptr & | labelset () const |
const weightset_ptr & | weightset () const |
value_t | value (const label_t &l, const weight_t w) const |
Create a polynomial with a single value. More... | |
value_t & | del_weight (value_t &v, const label_t &l) const |
Remove the monomial of l in v. More... | |
value_t & | new_weight (value_t &v, const label_t &l, const weight_t w) const |
Set the monomial of l in v to weight w. More... | |
value_t & | set_weight (value_t &v, const label_t &l, const weight_t w) const |
Set the monomial of l in v to weight w. More... | |
const weight_t | get_weight (const value_t &v, const label_t &l) const ATTRIBUTE_PURE |
void | clear (value_t &v) |
Set to zero. More... | |
value_t & | add_here (value_t &v, const label_t &l, const weight_t k) const |
v += <k>l . More... | |
value_t & | add_here (value_t &v, const monomial_t &m) const |
v += m . More... | |
template<wet_kind_t WetType, typename WS > | |
auto | add_here_impl_ (value_t &l, const value_t &r) const -> std::enable_if_t< WetType!=wet_kind_t::bitset, value_t & > |
v += p , default case. More... | |
template<wet_kind_t WetType, typename WS > | |
auto | add_here_impl_ (value_t &l, const value_t &r) const -> std::enable_if_t<(WetType==wet_kind_t::bitset &&std::is_same< WS, b >::value), value_t & > |
v += p , B and bitsets. More... | |
template<wet_kind_t WetType, typename WS > | |
auto | add_here_impl_ (value_t &l, const value_t &r) const -> std::enable_if_t<(WetType==wet_kind_t::bitset &&std::is_same< WS, f2 >::value), value_t & > |
v += p , F2 and bitsets. More... | |
value_t & | add_here (value_t &l, const value_t &r) const |
value_t | add (const value_t &l, const value_t &r) const |
The sum of polynomials l and r. More... | |
value_t & | sub_here (value_t &v, const monomial_t &m) const |
v -= m . More... | |
value_t | sub (const value_t &l, const value_t &r) const |
The subtraction of polynomials l and r. More... | |
monomial_t | mul (const monomial_t &l, const monomial_t &r) const |
The product of monomials l and r. More... | |
template<wet_kind_t WetType> | |
auto | mul_impl_ (const value_t &l, const value_t &r) const -> std::enable_if_t< WetType!=wet_kind_t::bitset, value_t > |
The product of polynomials l and r. More... | |
template<wet_kind_t WetType> | |
auto | mul_impl_ (const value_t &l, const value_t &r) const -> std::enable_if_t< WetType==wet_kind_t::bitset, value_t > |
The product of polynomials l and r. More... | |
auto | mul (const value_t &l, const value_t &r) const -> value_t |
The product of polynomials l and r. More... | |
auto | mul (const value_t &p, const label_t &l, const weight_t w) const -> value_t |
The product of polynomials l and r. More... | |
template<typename Ctx > | |
std::enable_if_t< Ctx::is_lar, value_t > | conjunction_impl_ (const value_t &l, const value_t &r) const |
The conjunction of polynomials l and r. More... | |
template<typename Ctx > | |
std::enable_if_t<!Ctx::is_lar, value_t > | conjunction_impl_ (const value_t &l, const value_t &r) const |
The conjunction of polynomials l and r. More... | |
value_t | conjunction (const value_t &l, const value_t &r) const |
value_t | infiltrate (const value_t &l, const value_t &r) const |
The infiltration of polynomials l and r. More... | |
template<wet_kind_t WetType = value_t::kind> | |
auto | scalar_product (const value_t &l, const value_t &r) const -> std::enable_if_t< WetType!=wet_kind_t::bitset, weight_t > |
The sum of the weights of the common labels. More... | |
template<wet_kind_t WetType = value_t::kind, typename WS = weightset_t> | |
auto | scalar_product (const value_t &l, const value_t &r) const -> std::enable_if_t<(WetType==wet_kind_t::bitset &&std::is_same< WS, b >::value), weight_t > |
The sum of the weights of the common labels. More... | |
template<wet_kind_t WetType = value_t::kind, typename WS = weightset_t> | |
auto | scalar_product (const value_t &l, const value_t &r) const -> std::enable_if_t<(WetType==wet_kind_t::bitset &&std::is_same< WS, f2 >::value), weight_t > |
The sum of the weights of the common labels. More... | |
value_t | abs (const value_t &v) const |
Map all weights to their absolute value. More... | |
value_t | star (const value_t &v) const |
The star of polynomial v. More... | |
value_t | lweight (const weight_t w, const value_t &v) const |
Left exterior product. More... | |
value_t | lmul_label (const label_t &lhs, const value_t &v) const |
Left product by a label. More... | |
value_t | mul (const monomial_t &lhs, const value_t &v) const |
Left product by a monomial. More... | |
auto | rweight (const value_t &v, const weight_t w) const -> value_t |
Right exterior product. More... | |
value_t | rmul_label (const value_t &v, const label_t &rhs) const |
Right product. More... | |
value_t | mul (const value_t &l, const monomial_t &rhs) const |
Right product by a monomial. More... | |
value_t | rdivide (const value_t &l, const value_t &r) const |
monomial_t | ldivide (const monomial_t &l, const monomial_t &r) const |
Left division between two mononials: l \ r . More... | |
value_t | ldivide (const monomial_t &l, const value_t &r) const |
Left division by a monomial: l \ r . More... | |
template<typename Ctx = context_t> | |
std::enable_if_t< Ctx::is_lar, value_t & > | add_ldivide_here (value_t &res, const value_t &l, const value_t &r) const |
The left-division of polynomials l and r: res += l \ r . More... | |
template<typename Ctx = context_t> | |
std::enable_if_t<!Ctx::is_lar, value_t & > | add_ldivide_here (value_t &res, const value_t &l, const value_t &r) const |
The left-division of polynomials l and r: res += l \ r . More... | |
value_t | ldivide (const value_t &l, const value_t &r) const |
Left division of two polynomials: l \ r . More... | |
value_t & | ldivide_here (const weight_t w, value_t &v) const |
Left exterior division. More... | |
value_t & | rdivide_here (value_t &v, const weight_t w) const |
Right exterior division. More... | |
value_t | lgcd (const value_t &lhs, const value_t &rhs) const |
LGCD between two polynomials. More... | |
auto | norm (const value_t &v) const -> weight_t |
The norm: the weight with which we should divide a polynomial to normalize it. More... | |
weight_t | normalize_here (value_t &v) const |
Normalize v in place: compute the LGCD of the weights, ldivide the monomials with that factor, and return the factor. More... | |
value_t | normalize (value_t res) const |
Normalized v. More... | |
template<typename... Polys> | |
auto | tuple (Polys &&...vs) const -> value_t |
Build a tuple of polynomials: (e.E+f.F)|(g.G+h.H) => eg. More... | |
template<size_t Tape> | |
auto | project () const |
The polynomialset for tape Tape. More... | |
template<size_t Tape> | |
auto | project (const value_t &v) const |
Extract a single tape. More... | |
template<typename Ctx = context_t> | |
auto | compose (const value_t &l, const value_t &r) const -> std::enable_if_t< are_composable< Ctx, Ctx > |
The composition of polynomials l and r when the context is a composable tupleset. More... | |
template<typename Ctx = context_t> | |
auto | compose (const value_t &l, const value_t &r) const -> std::enable_if_t< has_compose_fn< Ctx > |
The composition of polynomials l and r when the context features compose . More... | |
label_t | to_label (const value_t &v) const |
Convert into a label. More... | |
monomial_t | determinize (value_t v) const |
"Determinize" this polynomial: turn into a monomial. More... | |
value_t | complement (const value_t &v) const |
Complement this polynomial. More... | |
const value_t & | zero () const |
bool | is_zero (const value_t &v) const |
template<typename WS > | |
value_t | conv (const WS &ws, const typename WS::value_t &v) const |
FIXME: use enable_if to prevent this from being instantiated when WS is a polynomialset. More... | |
template<typename C , wet_kind_t K> | |
value_t | conv (const polynomialset< C, K > &sps, const typename polynomialset< C, K >::value_t &v) const |
Convert from another polynomialset to type_t. More... | |
value_t | transpose (const value_t &v) const |
Transpose the labels and the weights. More... | |
std::ostream & | print_set (std::ostream &o, format fmt={}) const |
boost::optional< label_t > | conv_label (std::istream &i, bool weighted, const char sep= '+') const |
Read a label, if there is one. More... | |
weight_t | conv_weight (std::istream &i) const |
Read a weight, if there is one, bracketed. More... | |
boost::optional< monomial_t > | conv_monomial (std::istream &i, const char sep= '+') const |
Read a monomial from a stream. More... | |
value_t | conv (std::istream &i, const char sep= '+') const |
Read a polynomial from a stream. More... | |
std::ostream & | print (const monomial_t &m, std::ostream &out, format fmt={}) const |
Print a monomial. More... | |
std::ostream & | print (const value_t &v, std::ostream &out, format fmt={}, const std::string &sep=" + ") const |
Print a value (a polynomial). More... | |
Static Public Member Functions | |
static symbol | sname () |
The static name. More... | |
static constexpr bool | is_commutative () |
static constexpr bool | has_lightening_weights () |
static ATTRIBUTE_PURE bool | monomial_equal (const monomial_t &lhs, const monomial_t &rhs) |
template<wet_kind_t WetType> | |
static ATTRIBUTE_PURE auto | equal_impl_ (const value_t &l, const value_t &r) -> std::enable_if_t< WetType!=wet_kind_t::bitset, bool > |
template<wet_kind_t WetType> | |
static ATTRIBUTE_PURE auto | equal_impl_ (const value_t &l, const value_t &r) -> std::enable_if_t< WetType==wet_kind_t::bitset, bool > |
static ATTRIBUTE_PURE bool | equal (const value_t &l, const value_t &r) |
static const value_t & | one () |
The unit polynomial. More... | |
static const monomial_t & | monomial_one () |
The unit monomial. More... | |
static bool | is_one (const value_t &v) ATTRIBUTE_PURE |
Whether is the unit polynomial. More... | |
static constexpr bool | show_one () |
static constexpr star_status_t | star_status () |
static value_t | conv (self_t, const value_t &v) |
Conversion from (this and) other weightsets. More... | |
static ATTRIBUTE_PURE bool | monomial_less (const monomial_t &lhs, const monomial_t &rhs) |
template<wet_kind_t WetType> | |
static ATTRIBUTE_PURE auto | less_impl_ (const value_t &l, const value_t &r) -> std::enable_if_t< WetType!=wet_kind_t::bitset, bool > |
template<wet_kind_t WetType> | |
static ATTRIBUTE_PURE auto | less_impl_ (const value_t &l, const value_t &r) -> std::enable_if_t< WetType==wet_kind_t::bitset, bool > |
static ATTRIBUTE_PURE bool | less (const value_t &l, const value_t &r) |
static ATTRIBUTE_PURE size_t | hash (const monomial_t &m, size_t res=0) |
template<wet_kind_t WetType> | |
static ATTRIBUTE_PURE auto | hash_impl_ (const value_t &p) -> std::enable_if_t< WetType!=wet_kind_t::bitset, size_t > |
template<wet_kind_t WetType> | |
static ATTRIBUTE_PURE auto | hash_impl_ (const value_t &p) -> std::enable_if_t< WetType==wet_kind_t::bitset, size_t > |
static ATTRIBUTE_PURE size_t | hash (const value_t &v) |
static self_t | make (std::istream &is) |
Build from the description in is. More... | |
Public Attributes | |
value_t | |
for(const auto &lm:l) for(const auto &rm return | res |
Private Member Functions | |
std::ostream & | print_weight_ (const weight_t w, std::ostream &out, format fmt) const |
Print a weight. More... | |
std::ostream & | print_without_classes_ (const value_t &v, std::ostream &out, format fmt, const std::string &sep) const |
Print a polynomial value without classes. More... | |
std::ostream & | print_with_classes_ (const value_t &v, std::ostream &out, format fmt, const std::string &sep) const |
Print a polynomial value with classes. More... | |
template<typename Ctx = context_t> | |
std::enable_if_t<!labelset_t_of< Ctx >::is_letterized(), std::ostream & > | print_ (const value_t &v, std::ostream &out, format fmt={}, const std::string &sep=" + ") const |
Print a non-null value for a non letterized labelset. More... | |
template<typename Ctx = context_t> | |
std::enable_if_t< labelset_t_of< Ctx >::is_letterized(), std::ostream & > | print_ (const value_t &v, std::ostream &out, format fmt={}, const std::string &sep=" + ") const |
Print a non-null value for a letterized labelset (e.g., letterset or nullableset. More... | |
Private Attributes | |
context_t | ctx_ |
Static Private Attributes | |
static constexpr char | langle = '<' |
Left marker for weight in concrete syntax. More... | |
static constexpr char | rangle = '>' |
Right marker for weight in concrete syntax. More... | |
Linear combination of labels: map labels to weights.
Context | the LabelSet and WeightSet types. |
using vcsn::detail::polynomialset_impl< Context, Kind >::compose_t = decltype(std::declval<labelset_t_of<Ctx>>() .compose(std::declval<label_t_of<Ctx>>(), std::declval<label_t_of<Ctx>>())) |
Detect whether the labelset features compose
.
Definition at line 853 of file polynomialset.hh.
using vcsn::detail::polynomialset_impl< Context, Kind >::context_t = Context |
Definition at line 83 of file polynomialset.hh.
using vcsn::detail::polynomialset_impl< Context, Kind >::has_compose_fn = detect<Ctx, compose_t> |
Whether LabelSet features compose
.
Definition at line 857 of file polynomialset.hh.
using vcsn::detail::polynomialset_impl< Context, Kind >::has_rweight_fn = detect<Ctx, rweight_t> |
Whether LabelSet features rweight
.
Definition at line 546 of file polynomialset.hh.
using vcsn::detail::polynomialset_impl< Context, Kind >::label_t = typename labelset_t::value_t |
Polynomials over labels.
Definition at line 90 of file polynomialset.hh.
using vcsn::detail::polynomialset_impl< Context, Kind >::labelset_ptr = typename context_t::labelset_ptr |
Definition at line 87 of file polynomialset.hh.
using vcsn::detail::polynomialset_impl< Context, Kind >::labelset_t = labelset_t_of<context_t> |
Definition at line 84 of file polynomialset.hh.
using vcsn::detail::polynomialset_impl< Context, Kind >::monomial_t = typename value_t::value_type |
A pair <label, weight>.
Definition at line 95 of file polynomialset.hh.
using vcsn::detail::polynomialset_impl< Context, Kind >::rweight_t = decltype(std::declval<labelset_t_of<Ctx>>() .rweight(std::declval<label_t_of<Ctx>>(), std::declval<weight_t_of<Ctx>>())) |
Detect whether the labelset features rweight
.
Definition at line 542 of file polynomialset.hh.
using vcsn::detail::polynomialset_impl< Context, Kind >::self_t = polynomialset<Context, Kind> |
Definition at line 82 of file polynomialset.hh.
using vcsn::detail::polynomialset_impl< Context, Kind >::value_t = wet_of<context_t, Kind> |
Definition at line 93 of file polynomialset.hh.
using vcsn::detail::polynomialset_impl< Context, Kind >::weight_t = weight_t_of<context_t> |
Definition at line 91 of file polynomialset.hh.
using vcsn::detail::polynomialset_impl< Context, Kind >::weightset_ptr = typename context_t::weightset_ptr |
Definition at line 88 of file polynomialset.hh.
using vcsn::detail::polynomialset_impl< Context, Kind >::weightset_t = weightset_t_of<context_t> |
Definition at line 85 of file polynomialset.hh.
|
delete |
|
default |
|
default |
|
inline |
Definition at line 100 of file polynomialset.hh.
|
inline |
Map all weights to their absolute value.
Definition at line 474 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::res, vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inline |
The sum of polynomials l and r.
Definition at line 268 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), and vcsn::detail::polynomialset_impl< Context, Kind >::res.
|
inline |
v += <k>l
.
Definition at line 195 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::is_zero(), vcsn::label_is_zero(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::set_weight(), vcsn::detail::v, vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::abs(), vcsn::detail::polynomialset_impl< Context, Kind >::add(), vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::detail::polynomialset_impl< Context, Kind >::add_here_impl_(), vcsn::detail::polynomialset_impl< Context, Kind >::add_ldivide_here(), vcsn::detail::polynomialset_impl< Context, Kind >::conjunction_impl_(), vcsn::detail::polynomialset_impl< Context, Kind >::conv(), vcsn::detail::polynomialset_impl< Context, Kind >::infiltrate(), vcsn::detail::polynomialset_impl< Context, Kind >::ldivide(), vcsn::detail::polynomialset_impl< Context, Kind >::lmul_label(), vcsn::detail::polynomialset_impl< Context, Kind >::lweight(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::mul_impl_(), vcsn::detail::polynomialset_impl< Context, Kind >::rmul_label(), vcsn::detail::polynomialset_impl< Context, Kind >::rweight(), and vcsn::detail::polynomialset_impl< Context, Kind >::tuple().
|
inline |
v += m
.
Definition at line 220 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::label_of(), and vcsn::weight_of().
|
inline |
Definition at line 262 of file polynomialset.hh.
|
inline |
v += p
, default case.
Definition at line 228 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here().
|
inline |
v += p
, B and bitsets.
Definition at line 240 of file polynomialset.hh.
|
inline |
v += p
, F2 and bitsets.
Definition at line 252 of file polynomialset.hh.
|
inline |
The left-division of polynomials l and r: res += l \ r
.
Valid only for expressionsets.
Definition at line 631 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::detail::polynomialset_impl< Context, Kind >::ldivide(), and vcsn::detail::polynomialset_impl< Context, Kind >::res.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::ldivide().
|
inline |
The left-division of polynomials l and r: res += l \ r
.
Valid only for every other labelsets.
Definition at line 643 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::factor(), vcsn::detail::front(), vcsn::detail::polynomialset_impl< Context, Kind >::is_zero(), vcsn::detail::polynomialset_impl< Context, Kind >::ldivide(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::res, vcsn::detail::polynomialset_impl< Context, Kind >::sub(), and vcsn::to_string().
|
inline |
Set to zero.
Definition at line 183 of file polynomialset.hh.
|
inline |
Complement this polynomial.
Requires a rather powerful labelset, typically expressionset.
Definition at line 923 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::normalize(), vcsn::detail::polynomialset_impl< Context, Kind >::to_label(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inline |
The composition of polynomials l and r when the context is a composable tupleset.
Definition at line 864 of file polynomialset.hh.
|
inline |
The composition of polynomials l and r when the context features compose
.
Definition at line 882 of file polynomialset.hh.
|
inline |
Definition at line 414 of file polynomialset.hh.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::conjunction_impl_().
|
inline |
The conjunction of polynomials l and r.
Valid only for expressionsets.
Definition at line 387 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::detail::polynomialset_impl< Context, Kind >::conjunction(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::res, vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inline |
The conjunction of polynomials l and r.
Valid only for every other labelsets.
Definition at line 402 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::res, vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inline |
Definition at line 123 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::ctx_.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::project().
|
inlinestatic |
Conversion from (this and) other weightsets.
Definition at line 1014 of file polynomialset.hh.
References vcsn::detail::v.
|
inline |
FIXME: use enable_if to prevent this from being instantiated when WS is a polynomialset.
Then use this same technique for expressions.
Definition at line 1024 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inline |
Convert from another polynomialset to type_t.
Definition at line 1032 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::res, vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inline |
Read a polynomial from a stream.
Somewhat more general than a mere reversal of "format", in particular "a+a" is properly understood as "<2>a" in char_z.
i | the stream to parse. |
sep | the separator between monomials. |
Definition at line 1310 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::detail::polynomialset_impl< Context, Kind >::conv_label(), vcsn::detail::polynomialset_impl< Context, Kind >::conv_weight(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::langle, vcsn::require(), vcsn::detail::polynomialset_impl< Context, Kind >::res, and SKIP_SPACES.
|
inline |
Read a label, if there is one.
Does not handle \\z
, nor letter classes.
Definition at line 1194 of file polynomialset.hh.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::conv(), and vcsn::detail::polynomialset_impl< Context, Kind >::conv_monomial().
|
inline |
Read a monomial from a stream.
i | the stream to parse |
sep | the separator between monomials. |
Definition at line 1278 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::conv_label(), vcsn::detail::polynomialset_impl< Context, Kind >::conv_weight(), vcsn::detail::polynomialset_impl< Context, Kind >::langle, vcsn::require(), and SKIP_SPACES.
|
inline |
Read a weight, if there is one, bracketed.
Definition at line 1255 of file polynomialset.hh.
References vcsn::bracketed(), vcsn::conv(), vcsn::detail::polynomialset_impl< Context, Kind >::langle, vcsn::detail::polynomialset_impl< Context, Kind >::rangle, and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::conv(), and vcsn::detail::polynomialset_impl< Context, Kind >::conv_monomial().
|
inline |
Remove the monomial of l in v.
Definition at line 141 of file polynomialset.hh.
References vcsn::detail::v.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::set_weight().
|
inline |
"Determinize" this polynomial: turn into a monomial.
Requires a rather powerful labelset, typically expressionset.
Definition at line 914 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::normalize_here(), and vcsn::detail::polynomialset_impl< Context, Kind >::to_label().
|
inlinestatic |
Definition at line 963 of file polynomialset.hh.
|
inlinestatic |
Definition at line 944 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::monomial_equal().
|
inlinestatic |
Definition at line 954 of file polynomialset.hh.
|
inline |
Definition at line 168 of file polynomialset.hh.
References vcsn::detail::v, vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inlinestatic |
Definition at line 128 of file polynomialset.hh.
|
inlinestatic |
Definition at line 1113 of file polynomialset.hh.
References vcsn::hash_combine(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::res, and vcsn::weight_of().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::hash_impl_().
|
inlinestatic |
Definition at line 1144 of file polynomialset.hh.
References vcsn::detail::v.
|
inlinestatic |
Definition at line 1123 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::hash(), and vcsn::detail::polynomialset_impl< Context, Kind >::res.
|
inlinestatic |
Definition at line 1136 of file polynomialset.hh.
References vcsn::detail::hash_value().
|
inline |
The infiltration of polynomials l and r.
Not valid for all the labelsets.
Definition at line 422 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::res, vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inlinestatic |
Definition at line 127 of file polynomialset.hh.
|
inlinestatic |
Whether is the unit polynomial.
Definition at line 983 of file polynomialset.hh.
References vcsn::detail::v.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::ldivide_here(), vcsn::detail::polynomialset_impl< Context, Kind >::lweight(), vcsn::detail::polynomialset_impl< Context, Kind >::print_weight_(), vcsn::detail::polynomialset_impl< Context, Kind >::print_with_classes_(), vcsn::detail::polynomialset_impl< Context, Kind >::rdivide_here(), and vcsn::detail::polynomialset_impl< Context, Kind >::rweight().
|
inline |
Definition at line 1001 of file polynomialset.hh.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::detail::polynomialset_impl< Context, Kind >::add_ldivide_here(), vcsn::detail::polynomialset_impl< Context, Kind >::lweight(), vcsn::detail::polynomialset_impl< Context, Kind >::new_weight(), vcsn::detail::polynomialset_impl< Context, Kind >::norm(), vcsn::detail::polynomialset_impl< Context, Kind >::normalize_here(), vcsn::detail::polynomialset_impl< Context, Kind >::rweight(), vcsn::detail::polynomialset_impl< Context, Kind >::set_weight(), and vcsn::detail::polynomialset_impl< Context, Kind >::sub_here().
|
inline |
Definition at line 124 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::ctx_.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::detail::polynomialset_impl< Context, Kind >::complement(), vcsn::detail::polynomialset_impl< Context, Kind >::conjunction_impl_(), vcsn::detail::polynomialset_impl< Context, Kind >::conv(), vcsn::detail::polynomialset_impl< Context, Kind >::infiltrate(), vcsn::detail::polynomialset_impl< Context, Kind >::ldivide(), vcsn::detail::polynomialset_impl< Context, Kind >::lgcd(), vcsn::detail::polynomialset_impl< Context, Kind >::lmul_label(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::mul_impl_(), vcsn::detail::polynomialset_impl< Context, Kind >::print_with_classes_(), vcsn::detail::polynomialset_impl< Context, Kind >::project(), vcsn::detail::polynomialset_impl< Context, Kind >::rmul_label(), vcsn::detail::polynomialset_impl< Context, Kind >::rweight(), vcsn::detail::polynomialset_impl< Context, Kind >::star(), vcsn::detail::polynomialset_impl< Context, Kind >::sub_here(), vcsn::detail::polynomialset_impl< Context, Kind >::to_label(), vcsn::detail::polynomialset_impl< Context, Kind >::transpose(), and vcsn::detail::polynomialset_impl< Context, Kind >::tuple().
|
inline |
Left division between two mononials: l \ r
.
Definition at line 611 of file polynomialset.hh.
References vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::add_ldivide_here(), vcsn::detail::polynomialset_impl< Context, Kind >::ldivide(), and vcsn::detail::polynomialset_impl< Context, Kind >::ldivide_here().
|
inline |
Left division by a monomial: l \ r
.
Definition at line 619 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::detail::polynomialset_impl< Context, Kind >::ldivide(), and vcsn::detail::polynomialset_impl< Context, Kind >::res.
|
inline |
Left division of two polynomials: l \ r
.
Definition at line 666 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_ldivide_here(), and vcsn::detail::polynomialset_impl< Context, Kind >::res.
|
inline |
Left exterior division.
Definition at line 675 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::is_one(), vcsn::detail::polynomialset_impl< Context, Kind >::ldivide(), vcsn::detail::v, vcsn::weight_of(), vcsn::weight_set(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::normalize_here().
|
inlinestatic |
Definition at line 1083 of file polynomialset.hh.
|
inlinestatic |
Definition at line 1064 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::monomial_less().
|
inlinestatic |
Definition at line 1074 of file polynomialset.hh.
|
inline |
LGCD between two polynomials.
Based only on weights. For instance <2>a+<4>b, <3>a+<6>b => <1>a+<2>b. And ab, a => 1. We could try to have ab, a => a in the future.
Definition at line 699 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::one(), vcsn::detail::polynomialset_impl< Context, Kind >::res, and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inline |
Left product by a label.
Definition at line 515 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::res, and vcsn::weight_of().
|
inline |
Left exterior product.
Definition at line 502 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::detail::polynomialset_impl< Context, Kind >::is_one(), vcsn::detail::polynomialset_impl< Context, Kind >::is_zero(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::res, vcsn::detail::v, vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::to_label().
|
inlinestatic |
Build from the description in is.
Definition at line 1151 of file polynomialset.hh.
References vcsn::detail::ctx, and vcsn::eat().
|
inlinestatic |
Definition at line 934 of file polynomialset.hh.
References vcsn::label_of(), and vcsn::weight_of().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::equal_impl_().
|
inlinestatic |
Definition at line 1051 of file polynomialset.hh.
References vcsn::label_of(), and vcsn::weight_of().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::less_impl_().
|
inlinestatic |
The unit monomial.
Definition at line 976 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::res.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::one().
|
inline |
The product of monomials l and r.
Definition at line 323 of file polynomialset.hh.
References vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::add_ldivide_here(), vcsn::detail::polynomialset_impl< Context, Kind >::conjunction_impl_(), vcsn::detail::polynomialset_impl< Context, Kind >::infiltrate(), vcsn::detail::polynomialset_impl< Context, Kind >::lmul_label(), vcsn::detail::polynomialset_impl< Context, Kind >::lweight(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::mul_impl_(), vcsn::detail::polynomialset_impl< Context, Kind >::rmul_label(), vcsn::detail::polynomialset_impl< Context, Kind >::rweight(), and vcsn::detail::polynomialset_impl< Context, Kind >::scalar_product().
|
inline |
The product of polynomials l and r.
Definition at line 359 of file polynomialset.hh.
|
inline |
The product of polynomials l and r.
Definition at line 367 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::res, vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inline |
Left product by a monomial.
Definition at line 527 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::res, vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inline |
Right product by a monomial.
Definition at line 592 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::res, vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inline |
The product of polynomials l and r.
General case.
Definition at line 333 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::res, vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inline |
The product of polynomials l and r.
Case of bitsets.
Definition at line 350 of file polynomialset.hh.
|
inline |
Set the monomial of l in v to weight w.
Definition at line 150 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::is_zero(), vcsn::detail::v, and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::set_weight().
|
inline |
The norm: the weight with which we should divide a polynomial to normalize it.
Definition at line 768 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::is_zero(), vcsn::detail::v, and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::normalize_here().
|
inline |
Normalized v.
Definition at line 794 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::normalize_here(), and vcsn::detail::polynomialset_impl< Context, Kind >::res.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::complement().
|
inline |
Normalize v in place: compute the LGCD of the weights, ldivide the monomials with that factor, and return the factor.
Definition at line 784 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::is_zero(), vcsn::detail::polynomialset_impl< Context, Kind >::ldivide_here(), vcsn::detail::polynomialset_impl< Context, Kind >::norm(), vcsn::detail::polynomialset_impl< Context, Kind >::res, and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::determinize(), and vcsn::detail::polynomialset_impl< Context, Kind >::normalize().
|
inlinestatic |
The unit polynomial.
Definition at line 969 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::monomial_one(), and vcsn::detail::polynomialset_impl< Context, Kind >::res.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::lgcd(), and vcsn::detail::polynomialset_impl< Context, Kind >::star().
|
inline |
Print a monomial.
Definition at line 1353 of file polynomialset.hh.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::print_with_classes_(), and vcsn::detail::polynomialset_impl< Context, Kind >::print_without_classes_().
|
inline |
Print a value (a polynomial).
v | the polynomial |
out | the output stream |
fmt | the format: "text" or "latex" |
sep | the separator between monomials |
Definition at line 1373 of file polynomialset.hh.
|
inlineprivate |
Print a non-null value for a non letterized labelset.
Definition at line 1499 of file polynomialset.hh.
|
inlineprivate |
Print a non-null value for a letterized labelset (e.g., letterset or nullableset.
Definition at line 1511 of file polynomialset.hh.
|
inline |
Definition at line 1161 of file polynomialset.hh.
|
inlineprivate |
Print a weight.
Definition at line 1397 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::is_one(), vcsn::format::latex, vcsn::detail::out(), vcsn::detail::polynomialset_impl< Context, Kind >::show_one(), vcsn::format::utf8, and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::print_with_classes_().
|
inlineprivate |
Print a polynomial value with classes.
Definition at line 1433 of file polynomialset.hh.
References vcsn::format::for_labels(), vcsn::detail::front(), vcsn::detail::polynomialset_impl< Context, Kind >::is_one(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::map, vcsn::detail::out(), vcsn::detail::polynomialset_impl< Context, Kind >::print(), vcsn::detail::print_label_class(), vcsn::detail::polynomialset_impl< Context, Kind >::print_weight_(), and vcsn::weight_of().
|
inlineprivate |
Print a polynomial value without classes.
Definition at line 1416 of file polynomialset.hh.
References vcsn::detail::out(), and vcsn::detail::polynomialset_impl< Context, Kind >::print().
|
inline |
The polynomialset for tape Tape.
Definition at line 826 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::context(), and vcsn::detail::make_polynomialset().
|
inline |
Extract a single tape.
Definition at line 833 of file polynomialset.hh.
References vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::res, and vcsn::weight_of().
|
inline |
Definition at line 603 of file polynomialset.hh.
References vcsn::to_string().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::rdivide_here().
|
inline |
Right exterior division.
Definition at line 685 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::is_one(), vcsn::detail::polynomialset_impl< Context, Kind >::rdivide(), vcsn::detail::v, vcsn::weight_of(), vcsn::weight_set(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inline |
Right product.
Definition at line 580 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::res, and vcsn::weight_of().
|
inline |
Right exterior product.
Definition at line 550 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::detail::polynomialset_impl< Context, Kind >::is_one(), vcsn::detail::polynomialset_impl< Context, Kind >::is_zero(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::res, vcsn::detail::v, vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inline |
The sum of the weights of the common labels.
Default case.
Definition at line 437 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::res, vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inline |
The sum of the weights of the common labels.
B and bitsets.
Definition at line 453 of file polynomialset.hh.
|
inline |
The sum of the weights of the common labels.
F2 and bitsets.
Definition at line 465 of file polynomialset.hh.
|
inline |
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 114 of file polynomialset.hh.
|
inline |
Set the monomial of l in v to weight w.
Definition at line 159 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::del_weight(), vcsn::detail::polynomialset_impl< Context, Kind >::is_zero(), vcsn::detail::polynomialset_impl< Context, Kind >::new_weight(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::add_here().
|
inlinestatic |
Definition at line 1006 of file polynomialset.hh.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::print_weight_().
|
inlinestatic |
The static name.
Definition at line 117 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::res, and vcsn::sname().
|
inline |
The star of polynomial v.
Definition at line 484 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::one(), vcsn::raise_not_starrable(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inlinestatic |
Definition at line 1007 of file polynomialset.hh.
|
inline |
The subtraction of polynomials l and r.
Definition at line 308 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::res, and vcsn::detail::polynomialset_impl< Context, Kind >::sub_here().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::add_ldivide_here().
|
inline |
v -= m
.
Definition at line 282 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::is_zero(), vcsn::label_is_zero(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::to_string(), vcsn::detail::v, vcsn::weight_of(), vcsn::weight_set(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::sub().
|
inline |
Convert into a label.
Requires a rather powerful labelset, typically expressionset. Typical usage is therefore to "project" a polynomial of expressions into an expression (say for complement for instance).
Definition at line 902 of file polynomialset.hh.
References vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::lweight(), vcsn::detail::polynomialset_impl< Context, Kind >::res, and vcsn::weight_of().
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::complement(), and vcsn::detail::polynomialset_impl< Context, Kind >::determinize().
|
inline |
Transpose the labels and the weights.
In the case of a polynomial of expressions, use transposition instead of transpose, i.e., add tranposition operators instead of creating deep transposed copies of the expressions.
Definition at line 1095 of file polynomialset.hh.
References vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::res, vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
inline |
Build a tuple of polynomials: (e.E+f.F)|(g.G+h.H) => eg.
(E|G) + eh.(E|H) + fg.(F|G) + fh.(F|H).
Definition at line 810 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::detail::cross(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), and vcsn::detail::polynomialset_impl< Context, Kind >::res.
|
inline |
Create a polynomial with a single value.
Definition at line 134 of file polynomialset.hh.
|
inline |
Definition at line 125 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::ctx_.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::abs(), vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::detail::polynomialset_impl< Context, Kind >::complement(), vcsn::detail::polynomialset_impl< Context, Kind >::conjunction_impl_(), vcsn::detail::polynomialset_impl< Context, Kind >::conv(), vcsn::detail::polynomialset_impl< Context, Kind >::conv_weight(), vcsn::detail::polynomialset_impl< Context, Kind >::get_weight(), vcsn::detail::polynomialset_impl< Context, Kind >::infiltrate(), vcsn::detail::polynomialset_impl< Context, Kind >::ldivide(), vcsn::detail::polynomialset_impl< Context, Kind >::ldivide_here(), vcsn::detail::polynomialset_impl< Context, Kind >::lgcd(), vcsn::detail::polynomialset_impl< Context, Kind >::lweight(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::mul_impl_(), vcsn::detail::polynomialset_impl< Context, Kind >::new_weight(), vcsn::detail::polynomialset_impl< Context, Kind >::norm(), vcsn::detail::polynomialset_impl< Context, Kind >::normalize_here(), vcsn::detail::polynomialset_impl< Context, Kind >::print_weight_(), vcsn::detail::polynomialset_impl< Context, Kind >::rdivide_here(), vcsn::detail::polynomialset_impl< Context, Kind >::rweight(), vcsn::detail::polynomialset_impl< Context, Kind >::scalar_product(), vcsn::detail::polynomialset_impl< Context, Kind >::set_weight(), vcsn::detail::polynomialset_impl< Context, Kind >::star(), vcsn::detail::polynomialset_impl< Context, Kind >::sub_here(), and vcsn::detail::polynomialset_impl< Context, Kind >::transpose().
|
inline |
Definition at line 994 of file polynomialset.hh.
References vcsn::detail::polynomialset_impl< Context, Kind >::res.
|
private |
Definition at line 1524 of file polynomialset.hh.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::context(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().
|
staticprivate |
Left marker for weight in concrete syntax.
Definition at line 1527 of file polynomialset.hh.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::conv(), vcsn::detail::polynomialset_impl< Context, Kind >::conv_monomial(), and vcsn::detail::polynomialset_impl< Context, Kind >::conv_weight().
|
staticprivate |
Right marker for weight in concrete syntax.
Definition at line 1529 of file polynomialset.hh.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::conv_weight().
for (const auto& lm: l) for ( const auto& rm return vcsn::detail::polynomialset_impl< Context, Kind >::res |
Definition at line 868 of file polynomialset.hh.
Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::abs(), vcsn::detail::polynomialset_impl< Context, Kind >::add(), vcsn::detail::polynomialset_impl< Context, Kind >::add_ldivide_here(), vcsn::detail::polynomialset_impl< Context, Kind >::conjunction_impl_(), vcsn::detail::polynomialset_impl< Context, Kind >::conv(), vcsn::detail::polynomialset_impl< Context, Kind >::hash(), vcsn::detail::polynomialset_impl< Context, Kind >::hash_impl_(), vcsn::detail::polynomialset_impl< Context, Kind >::infiltrate(), vcsn::detail::polynomialset_impl< Context, Kind >::ldivide(), vcsn::detail::polynomialset_impl< Context, Kind >::lgcd(), vcsn::detail::polynomialset_impl< Context, Kind >::lmul_label(), vcsn::detail::polynomialset_impl< Context, Kind >::lweight(), vcsn::detail::polynomialset_impl< Context, Kind >::monomial_one(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::mul_impl_(), vcsn::detail::polynomialset_impl< Context, Kind >::normalize(), vcsn::detail::polynomialset_impl< Context, Kind >::normalize_here(), vcsn::detail::polynomialset_impl< Context, Kind >::one(), vcsn::detail::polynomialset_impl< Context, Kind >::norm_< z, Dummy >::operator()(), vcsn::detail::polynomialset_impl< Context, Kind >::norm_< polynomialset< Ctx, Knd >, Dummy >::operator()(), vcsn::detail::polynomialset_impl< Context, Kind >::project(), vcsn::detail::polynomialset_impl< Context, Kind >::rmul_label(), vcsn::detail::polynomialset_impl< Context, Kind >::rweight(), vcsn::detail::polynomialset_impl< Context, Kind >::scalar_product(), vcsn::detail::polynomialset_impl< Context, Kind >::sname(), vcsn::detail::polynomialset_impl< Context, Kind >::sub(), vcsn::detail::polynomialset_impl< Context, Kind >::to_label(), vcsn::detail::polynomialset_impl< Context, Kind >::transpose(), vcsn::detail::polynomialset_impl< Context, Kind >::tuple(), and vcsn::detail::polynomialset_impl< Context, Kind >::zero().
vcsn::detail::polynomialset_impl< Context, Kind >::value_t |
Definition at line 866 of file polynomialset.hh.