Vcsn  2.1
Be Rational
vcsn::detail::polynomialset_impl< Context, Kind > Class Template Reference

Linear combination of labels: map labels to weights. More...

#include <fwd.hh>

Collaboration diagram for vcsn::detail::polynomialset_impl< Context, Kind >:

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...
 

Public Member Functions

 polynomialset_impl ()=delete
 
 polynomialset_impl (const polynomialset_impl &)=default
 
 polynomialset_impl (const context_t &ctx)
 
const self_tself () const
 Ourself, but after the application of weightset_mixin. More...
 
const context_tcontext () const
 
const labelset_ptrlabelset () const
 
const weightset_ptrweightset () const
 
value_tdel_weight (value_t &v, const label_t &l) const
 Remove the monomial of l in v. More...
 
value_tnew_weight (value_t &v, const label_t &l, const weight_t w) const
 Set the monomial of l in v to weight k. More...
 
value_tset_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_tadd_here (value_t &v, const label_t &l, const weight_t k) const
 v += <k>l. More...
 
value_tadd_here (value_t &v, const monomial_t &m) const
 v += m. More...
 
template<wet_kind_t WetType>
auto add_here_impl (value_t &l, const value_t &r) const -> enable_if_t<!(WetType==wet_kind_t::bitset &&std::is_same< weightset_t, b >::value), value_t & >
 v += p, default case. More...
 
template<wet_kind_t WetType>
auto add_here_impl (value_t &l, const value_t &r) const -> enable_if_t< WetType==wet_kind_t::bitset &&std::is_same< weightset_t, b >::value, value_t & >
 v += p, B and bitsets. More...
 
value_tadd_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_tsub_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 -> 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 -> 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...
 
value_t conjunction (const value_t &l, const value_t &r) const
 The conjunction of polynomials l and r. More...
 
value_t infiltration (const value_t &l, const value_t &r) const
 The infiltration of polynomials l and r. More...
 
weight_t scalar_product (const value_t &l, const value_t &r) const
 The sum of the weights of the common labels. More...
 
value_t star (const value_t &v) const
 The star of polynomial v. More...
 
value_t lmul (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...
 
value_t rmul (const value_t &v, const weight_t w) const
 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 rdiv (const value_t &l, const value_t &r) const
 
monomial_t ldiv (const monomial_t &l, const monomial_t &r) const
 
value_t ldiv (const monomial_t &l, const value_t &r) const
 Left division by a monomial. More...
 
value_t ldiv (const value_t &l, const value_t &r) const
 
value_tldiv_here (const weight_t w, value_t &v) const
 Left exterior division. More...
 
value_trdiv_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, ldiv 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...
 
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_tzero () 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
 
std::ostream & print_set (std::ostream &o, format fmt={}) const
 
boost::optional< label_tconv_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_tconv_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 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) -> 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) -> 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_tone ()
 The unit polynomial. More...
 
static const monomial_tmonomial_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) -> 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) -> 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) -> 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) -> 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...
 

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 >
vcsn::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 >
vcsn::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...
 

Detailed Description

template<typename Context, wet_kind_t Kind>
class vcsn::detail::polynomialset_impl< Context, Kind >

Linear combination of labels: map labels to weights.

Template Parameters
Contextthe LabelSet and WeightSet types.

Definition at line 41 of file fwd.hh.

Member Typedef Documentation

template<typename Context , wet_kind_t Kind>
using vcsn::detail::polynomialset_impl< Context, Kind >::context_t = Context

Definition at line 80 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
using vcsn::detail::polynomialset_impl< Context, Kind >::label_t = typename labelset_t::value_t

Polynomials over labels.

Definition at line 87 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
using vcsn::detail::polynomialset_impl< Context, Kind >::labelset_ptr = typename context_t::labelset_ptr

Definition at line 84 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
using vcsn::detail::polynomialset_impl< Context, Kind >::labelset_t = labelset_t_of<context_t>

Definition at line 81 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
using vcsn::detail::polynomialset_impl< Context, Kind >::monomial_t = typename value_t::value_type

A pair <label, weight>.

Definition at line 92 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
using vcsn::detail::polynomialset_impl< Context, Kind >::self_t = polynomialset<Context, Kind>

Definition at line 79 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
using vcsn::detail::polynomialset_impl< Context, Kind >::value_t = wet_of<context_t, Kind>

Definition at line 90 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
using vcsn::detail::polynomialset_impl< Context, Kind >::weight_t = weight_t_of<context_t>

Definition at line 88 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
using vcsn::detail::polynomialset_impl< Context, Kind >::weightset_ptr = typename context_t::weightset_ptr

Definition at line 85 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
using vcsn::detail::polynomialset_impl< Context, Kind >::weightset_t = weightset_t_of<context_t>

Definition at line 82 of file polynomialset.hh.

Constructor & Destructor Documentation

template<typename Context , wet_kind_t Kind>
vcsn::detail::polynomialset_impl< Context, Kind >::polynomialset_impl ( )
delete
template<typename Context , wet_kind_t Kind>
vcsn::detail::polynomialset_impl< Context, Kind >::polynomialset_impl ( const polynomialset_impl< Context, Kind > &  )
default
template<typename Context , wet_kind_t Kind>
vcsn::detail::polynomialset_impl< Context, Kind >::polynomialset_impl ( const context_t ctx)
inline

Definition at line 96 of file polynomialset.hh.

Member Function Documentation

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::add ( const value_t l,
const value_t r 
) const
inline

The sum of polynomials l and r.

Definition at line 243 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::add_here().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t& vcsn::detail::polynomialset_impl< Context, Kind >::add_here ( value_t v,
const label_t l,
const weight_t  k 
) const
inline
template<typename Context , wet_kind_t Kind>
value_t& vcsn::detail::polynomialset_impl< Context, Kind >::add_here ( value_t v,
const monomial_t m 
) const
inline

v += m.

Definition at line 206 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::label_of(), and vcsn::weight_of().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t& vcsn::detail::polynomialset_impl< Context, Kind >::add_here ( value_t l,
const value_t r 
) const
inline

Definition at line 237 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
template<wet_kind_t WetType>
auto vcsn::detail::polynomialset_impl< Context, Kind >::add_here_impl ( value_t l,
const value_t r 
) const -> enable_if_t<!(WetType == wet_kind_t::bitset && std::is_same<weightset_t, b>::value), value_t&>
inline

v += p, default case.

Definition at line 214 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::add_here().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
template<wet_kind_t WetType>
auto vcsn::detail::polynomialset_impl< Context, Kind >::add_here_impl ( value_t l,
const value_t r 
) const -> enable_if_t<WetType == wet_kind_t::bitset && std::is_same<weightset_t, b>::value, value_t&>
inline

v += p, B and bitsets.

Definition at line 227 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
void vcsn::detail::polynomialset_impl< Context, Kind >::clear ( value_t v)
inline

Set to zero.

Definition at line 169 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::complement ( const value_t v) const
inline

Complement this polynomial.

Requires a rather powerful labelset, typically expressionset.

Definition at line 741 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().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::conjunction ( const value_t l,
const value_t r 
) const
inline

The conjunction of polynomials l and r.

Not valid for all the labelsets.

Definition at line 361 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::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
const context_t& vcsn::detail::polynomialset_impl< Context, Kind >::context ( ) const
inline
template<typename Context , wet_kind_t Kind>
static value_t vcsn::detail::polynomialset_impl< Context, Kind >::conv ( self_t  ,
const value_t v 
)
inlinestatic

Conversion from (this and) other weightsets.

Definition at line 832 of file polynomialset.hh.

References vcsn::v.

template<typename Context , wet_kind_t Kind>
template<typename WS >
value_t vcsn::detail::polynomialset_impl< Context, Kind >::conv ( const WS &  ws,
const typename WS::value_t &  v 
) const
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 842 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
template<typename C , wet_kind_t K>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::conv ( const polynomialset< C, K > &  sps,
const typename polynomialset< C, K >::value_t v 
) const
inline

Convert from another polynomialset to type_t.

Definition at line 850 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::conv ( std::istream &  i,
const char  sep = '+' 
) const
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.

Parameters
ithe stream to parse.
septhe separator between monomials.

Definition at line 1099 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, and SKIP_SPACES.

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
boost::optional<label_t> vcsn::detail::polynomialset_impl< Context, Kind >::conv_label ( std::istream &  i,
bool  weighted,
const char  sep = '+' 
) const
inline

Read a label, if there is one.

Does not handle \z, nor letter classes.

Returns
none if there is no label.

Definition at line 997 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::require(), vcsn::detail::polynomialset_impl< Context, Kind >::sname(), and vcsn::str_escape().

Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::conv(), and vcsn::detail::polynomialset_impl< Context, Kind >::conv_monomial().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
boost::optional<monomial_t> vcsn::detail::polynomialset_impl< Context, Kind >::conv_monomial ( std::istream &  i,
const char  sep = '+' 
) const
inline

Read a monomial from a stream.

Parameters
ithe stream to parse
septhe separator between monomials.
Returns
boost::none on EOF

Definition at line 1067 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.

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
weight_t vcsn::detail::polynomialset_impl< Context, Kind >::conv_weight ( std::istream &  i) const
inline

Read a weight, if there is one, bracketed.

Definition at line 1044 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().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t& vcsn::detail::polynomialset_impl< Context, Kind >::del_weight ( value_t v,
const label_t l 
) const
inline

Remove the monomial of l in v.

Definition at line 127 of file polynomialset.hh.

References vcsn::v.

Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::set_weight().

template<typename Context , wet_kind_t Kind>
monomial_t vcsn::detail::polynomialset_impl< Context, Kind >::determinize ( value_t  v) const
inline

"Determinize" this polynomial: turn into a monomial.

Requires a rather powerful labelset, typically expressionset.

Definition at line 732 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::normalize_here(), and vcsn::detail::polynomialset_impl< Context, Kind >::to_label().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
static ATTRIBUTE_PURE bool vcsn::detail::polynomialset_impl< Context, Kind >::equal ( const value_t l,
const value_t r 
)
inlinestatic

Definition at line 781 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
template<wet_kind_t WetType>
static ATTRIBUTE_PURE auto vcsn::detail::polynomialset_impl< Context, Kind >::equal_impl ( const value_t l,
const value_t r 
) -> enable_if_t<WetType != wet_kind_t::bitset, bool>
inlinestatic

Definition at line 762 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::monomial_equal().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
template<wet_kind_t WetType>
static ATTRIBUTE_PURE auto vcsn::detail::polynomialset_impl< Context, Kind >::equal_impl ( const value_t l,
const value_t r 
) -> enable_if_t<WetType == wet_kind_t::bitset, bool>
inlinestatic

Definition at line 772 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
const weight_t vcsn::detail::polynomialset_impl< Context, Kind >::get_weight ( const value_t v,
const label_t l 
) const
inline

Definition at line 154 of file polynomialset.hh.

References vcsn::v, vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
static ATTRIBUTE_PURE size_t vcsn::detail::polynomialset_impl< Context, Kind >::hash ( const monomial_t m,
size_t  res = 0 
)
inlinestatic

Definition at line 922 of file polynomialset.hh.

References vcsn::hash_combine(), vcsn::label_of(), and vcsn::weight_of().

Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::hash_impl().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
static ATTRIBUTE_PURE size_t vcsn::detail::polynomialset_impl< Context, Kind >::hash ( const value_t v)
inlinestatic

Definition at line 953 of file polynomialset.hh.

References vcsn::v.

template<typename Context , wet_kind_t Kind>
template<wet_kind_t WetType>
static ATTRIBUTE_PURE auto vcsn::detail::polynomialset_impl< Context, Kind >::hash_impl ( const value_t p) -> enable_if_t<WetType != wet_kind_t::bitset, size_t>
inlinestatic

Definition at line 932 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::hash().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
template<wet_kind_t WetType>
static ATTRIBUTE_PURE auto vcsn::detail::polynomialset_impl< Context, Kind >::hash_impl ( const value_t p) -> enable_if_t<WetType == wet_kind_t::bitset, size_t>
inlinestatic

Definition at line 945 of file polynomialset.hh.

References vcsn::hash_value().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::infiltration ( const value_t l,
const value_t r 
) const
inline

The infiltration of polynomials l and r.

Not valid for all the labelsets.

Definition at line 375 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::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
static constexpr bool vcsn::detail::polynomialset_impl< Context, Kind >::is_commutative ( )
inlinestatic

Definition at line 123 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
monomial_t vcsn::detail::polynomialset_impl< Context, Kind >::ldiv ( const monomial_t l,
const monomial_t r 
) const
inline

Definition at line 504 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 >::ldiv(), and vcsn::detail::polynomialset_impl< Context, Kind >::ldiv_here().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::ldiv ( const monomial_t l,
const value_t r 
) const
inline

Left division by a monomial.

Definition at line 512 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), and vcsn::detail::polynomialset_impl< Context, Kind >::ldiv().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t& vcsn::detail::polynomialset_impl< Context, Kind >::ldiv_here ( const weight_t  w,
value_t v 
) const
inline

Left exterior division.

Definition at line 566 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::is_one(), vcsn::detail::polynomialset_impl< Context, Kind >::ldiv(), vcsn::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().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
static ATTRIBUTE_PURE bool vcsn::detail::polynomialset_impl< Context, Kind >::less ( const value_t l,
const value_t r 
)
inlinestatic

Definition at line 901 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
template<wet_kind_t WetType>
static ATTRIBUTE_PURE auto vcsn::detail::polynomialset_impl< Context, Kind >::less_impl ( const value_t l,
const value_t r 
) -> enable_if_t<WetType != wet_kind_t::bitset, bool>
inlinestatic

Definition at line 882 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::monomial_less().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
template<wet_kind_t WetType>
static ATTRIBUTE_PURE auto vcsn::detail::polynomialset_impl< Context, Kind >::less_impl ( const value_t l,
const value_t r 
) -> enable_if_t<WetType == wet_kind_t::bitset, bool>
inlinestatic

Definition at line 892 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::lgcd ( const value_t lhs,
const value_t rhs 
) const
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 590 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::one(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::lmul ( const weight_t  w,
const value_t v 
) const
inline
template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::lmul_label ( const label_t lhs,
const value_t v 
) const
inline

Left product by a label.

Definition at line 432 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(), and vcsn::weight_of().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
static self_t vcsn::detail::polynomialset_impl< Context, Kind >::make ( std::istream &  is)
inlinestatic

Build from the description in is.

Definition at line 960 of file polynomialset.hh.

References vcsn::rat::ctx(), and vcsn::eat().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
static ATTRIBUTE_PURE bool vcsn::detail::polynomialset_impl< Context, Kind >::monomial_equal ( const monomial_t lhs,
const monomial_t rhs 
)
inlinestatic

Definition at line 752 of file polynomialset.hh.

References vcsn::label_of(), and vcsn::weight_of().

Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::equal_impl().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
static ATTRIBUTE_PURE bool vcsn::detail::polynomialset_impl< Context, Kind >::monomial_less ( const monomial_t lhs,
const monomial_t rhs 
)
inlinestatic

Definition at line 869 of file polynomialset.hh.

References vcsn::label_of(), and vcsn::weight_of().

Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::less_impl().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
static const monomial_t& vcsn::detail::polynomialset_impl< Context, Kind >::monomial_one ( )
inlinestatic

The unit monomial.

Definition at line 794 of file polynomialset.hh.

Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::one().

template<typename Context , wet_kind_t Kind>
auto vcsn::detail::polynomialset_impl< Context, Kind >::mul ( const value_t l,
const value_t r 
) const -> value_t
inline

The product of polynomials l and r.

Definition at line 334 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
auto vcsn::detail::polynomialset_impl< Context, Kind >::mul ( const value_t p,
const label_t l,
const weight_t  w 
) const -> value_t
inline

The product of polynomials l and r.

Definition at line 342 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::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::mul ( const monomial_t lhs,
const value_t v 
) const
inline

Left product by a monomial.

Definition at line 444 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::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::mul ( const value_t l,
const monomial_t rhs 
) const
inline

Right product by a monomial.

Definition at line 486 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::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
template<wet_kind_t WetType>
auto vcsn::detail::polynomialset_impl< Context, Kind >::mul_impl ( const value_t l,
const value_t r 
) const -> enable_if_t<WetType != wet_kind_t::bitset, value_t>
inline

The product of polynomials l and r.

General case.

Definition at line 308 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::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
template<wet_kind_t WetType>
auto vcsn::detail::polynomialset_impl< Context, Kind >::mul_impl ( const value_t l,
const value_t r 
) const -> enable_if_t<WetType == wet_kind_t::bitset, value_t>
inline

The product of polynomials l and r.

Case of bitsets.

Definition at line 325 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
value_t& vcsn::detail::polynomialset_impl< Context, Kind >::new_weight ( value_t v,
const label_t l,
const weight_t  w 
) const
inline

Set the monomial of l in v to weight k.

Precondition
w is not null

Definition at line 136 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::is_zero(), vcsn::v, and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().

Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::set_weight().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
auto vcsn::detail::polynomialset_impl< Context, Kind >::norm ( const value_t v) const -> weight_t
inline

The norm: the weight with which we should divide a polynomial to normalize it.

Definition at line 659 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::is_zero(), vcsn::v, and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().

Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::normalize_here().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::normalize ( value_t  res) const
inline

Normalized v.

Definition at line 685 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::normalize_here().

Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::complement().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
weight_t vcsn::detail::polynomialset_impl< Context, Kind >::normalize_here ( value_t v) const
inline

Normalize v in place: compute the LGCD of the weights, ldiv the monomials with that factor, and return the factor.

Definition at line 675 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::is_zero(), vcsn::detail::polynomialset_impl< Context, Kind >::ldiv_here(), vcsn::detail::polynomialset_impl< Context, Kind >::norm(), 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().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
static const value_t& vcsn::detail::polynomialset_impl< Context, Kind >::one ( )
inlinestatic

The unit polynomial.

Definition at line 787 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::monomial_one().

Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::lgcd(), and vcsn::detail::polynomialset_impl< Context, Kind >::star().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
std::ostream& vcsn::detail::polynomialset_impl< Context, Kind >::print ( const monomial_t m,
std::ostream &  out,
format  fmt = {} 
) const
inline
template<typename Context , wet_kind_t Kind>
std::ostream& vcsn::detail::polynomialset_impl< Context, Kind >::print ( const value_t v,
std::ostream &  out,
format  fmt = {},
const std::string &  sep = " + " 
) const
inline

Print a value (a polynomial).

Parameters
vthe polynomial
outthe output stream
fmtthe format: "text" or "latex"
septhe separator between monomials

Definition at line 1159 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
template<typename Ctx >
vcsn::enable_if_t<!labelset_t_of<Ctx>::is_letterized(), std::ostream&> vcsn::detail::polynomialset_impl< Context, Kind >::print_ ( const value_t v,
std::ostream &  out,
format  fmt = {},
const std::string &  sep = " + " 
) const
inlineprivate

Print a non-null value for a non letterized labelset.

Definition at line 1262 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
template<typename Ctx >
vcsn::enable_if_t<labelset_t_of<Ctx>::is_letterized(), std::ostream&> vcsn::detail::polynomialset_impl< Context, Kind >::print_ ( const value_t v,
std::ostream &  out,
format  fmt = {},
const std::string &  sep = " + " 
) const
inlineprivate

Print a non-null value for a letterized labelset (e.g., letterset or nullableset.

Definition at line 1274 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
std::ostream& vcsn::detail::polynomialset_impl< Context, Kind >::print_set ( std::ostream &  o,
format  fmt = {} 
) const
inline

Definition at line 970 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
std::ostream& vcsn::detail::polynomialset_impl< Context, Kind >::print_weight_ ( const weight_t  w,
std::ostream &  out,
format  fmt 
) const
inlineprivate
template<typename Context , wet_kind_t Kind>
std::ostream& vcsn::detail::polynomialset_impl< Context, Kind >::print_with_classes_ ( const value_t v,
std::ostream &  out,
format  fmt,
const std::string &  sep 
) const
inlineprivate
template<typename Context , wet_kind_t Kind>
std::ostream& vcsn::detail::polynomialset_impl< Context, Kind >::print_without_classes_ ( const value_t v,
std::ostream &  out,
format  fmt,
const std::string &  sep 
) const
inlineprivate

Print a polynomial value without classes.

Definition at line 1190 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::print().

Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::print_with_classes_().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::rdiv ( const value_t l,
const value_t r 
) const
inline

Definition at line 497 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::sname(), and vcsn::to_string().

Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::rdiv_here().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t& vcsn::detail::polynomialset_impl< Context, Kind >::rdiv_here ( value_t v,
const weight_t  w 
) const
inline

Right exterior division.

Definition at line 576 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::is_one(), vcsn::detail::polynomialset_impl< Context, Kind >::rdiv(), vcsn::v, vcsn::weight_of(), vcsn::weight_set(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::rmul ( const value_t v,
const weight_t  w 
) const
inline

Right exterior product.

Beware that we do not multiply the weight here, but the label. It seems that this routine is used only when calling "split", which is done only on polynomials of expressions, so it is valid to rmul a label by a weight. If some day we need an rmul between weights, we will need additional properties to allow it.

Definition at line 463 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::detail::polynomialset_impl< Context, Kind >::is_zero(), vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::rmul_label ( const value_t v,
const label_t rhs 
) const
inline

Right product.

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 >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), and vcsn::weight_of().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
weight_t vcsn::detail::polynomialset_impl< Context, Kind >::scalar_product ( const value_t l,
const value_t r 
) const
inline

The sum of the weights of the common labels.

FIXME: Should probably be a special case of conjunction.

Definition at line 389 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::weight_of(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
const self_t& vcsn::detail::polynomialset_impl< Context, Kind >::self ( ) const
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 110 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
value_t& vcsn::detail::polynomialset_impl< Context, Kind >::set_weight ( value_t v,
const label_t l,
const weight_t  w 
) const
inline

Set the monomial of l in v to weight w.

Definition at line 145 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().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
static constexpr bool vcsn::detail::polynomialset_impl< Context, Kind >::show_one ( )
inlinestatic
template<typename Context , wet_kind_t Kind>
static symbol vcsn::detail::polynomialset_impl< Context, Kind >::sname ( )
inlinestatic

The static name.

Definition at line 113 of file polynomialset.hh.

References vcsn::sname().

Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::conv_label(), vcsn::detail::polynomialset_impl< Context, Kind >::ldiv(), vcsn::detail::polynomialset_impl< Context, Kind >::rdiv(), vcsn::detail::polynomialset_impl< Context, Kind >::star(), and vcsn::detail::polynomialset_impl< Context, Kind >::sub_here().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::star ( const value_t v) const
inline

The star of polynomial v.

Definition at line 401 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 >::sname(), vcsn::to_string(), and vcsn::detail::polynomialset_impl< Context, Kind >::weightset().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
static constexpr star_status_t vcsn::detail::polynomialset_impl< Context, Kind >::star_status ( )
inlinestatic

Definition at line 825 of file polynomialset.hh.

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::sub ( const value_t l,
const value_t r 
) const
inline

The subtraction of polynomials l and r.

Definition at line 283 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::sub_here().

Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::ldiv().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t& vcsn::detail::polynomialset_impl< Context, Kind >::sub_here ( value_t v,
const monomial_t m 
) const
inline
template<typename Context , wet_kind_t Kind>
label_t vcsn::detail::polynomialset_impl< Context, Kind >::to_label ( const value_t v) const
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 721 of file polynomialset.hh.

References vcsn::label_of(), vcsn::detail::polynomialset_impl< Context, Kind >::labelset(), vcsn::detail::polynomialset_impl< Context, Kind >::lmul(), and vcsn::weight_of().

Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::complement(), and vcsn::detail::polynomialset_impl< Context, Kind >::determinize().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
value_t vcsn::detail::polynomialset_impl< Context, Kind >::transpose ( const value_t v) const
inline

Definition at line 908 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().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
template<typename... Polys>
auto vcsn::detail::polynomialset_impl< Context, Kind >::tuple ( Polys &&...  vs) const -> value_t
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 701 of file polynomialset.hh.

References vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::detail::cross(), and vcsn::detail::polynomialset_impl< Context, Kind >::labelset().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind>
const weightset_ptr& vcsn::detail::polynomialset_impl< Context, Kind >::weightset ( ) const
inline

Definition at line 121 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(), 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 >::infiltration(), vcsn::detail::polynomialset_impl< Context, Kind >::ldiv(), vcsn::detail::polynomialset_impl< Context, Kind >::ldiv_here(), vcsn::detail::polynomialset_impl< Context, Kind >::lgcd(), vcsn::detail::polynomialset_impl< Context, Kind >::lmul(), 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 >::print_with_classes_(), vcsn::detail::polynomialset_impl< Context, Kind >::rdiv_here(), vcsn::detail::polynomialset_impl< Context, Kind >::rmul(), 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().

template<typename Context , wet_kind_t Kind>
const value_t& vcsn::detail::polynomialset_impl< Context, Kind >::zero ( ) const
inline

Definition at line 812 of file polynomialset.hh.

Member Data Documentation

template<typename Context , wet_kind_t Kind>
constexpr char vcsn::detail::polynomialset_impl< Context, Kind >::rangle = '>'
staticprivate

The documentation for this class was generated from the following files: