Developer documentation

sparse_monomials.hpp File Reference
#include <list>
#include <vector>
#include <algorithm>
#include <realroot/binomials.hpp>
#include <realroot/Seq.hpp>
#include <realroot/monomial.hpp>
#include <realroot/monomial_ordering.hpp>

Go to the source code of this file.

Classes

struct  mmx::sparse::CLASS< C, O, MONOM, REP >
 
struct  mmx::use< A, B >
 
struct  mmx::use< operators_of, SparsePolynomial >
 

Namespaces

 mmx
 
 mmx::sparse
 namespace for representation of polynomials as sequence of monomials
 
 mmx::let
 Namespace for explicit type conversion.
 

Macros

#define TMPL   template<class C, class O, class MONOM, class REP>
 
#define TMPLX   template<class C, class O, class MONOM, class REP, class X>
 
#define Polynomial   monomial_seq<C,O,MONOM,REP>
 
#define CLASS   monomial_seq
 
#define sparse_monomials   sparse::monomial_seq
 
#define SparsePolynomial   sparse:: monomial_seq<C,O,MONOM,REP>
 

Functions

TMPL void mmx::sparse::add (Polynomial &result, const Polynomial &p1, const Polynomial &p2)
 
TMPL void mmx::sparse::add (Polynomial &p1, const Polynomial &p2)
 Inplace addition. More...
 
template<class C , class O , class MONOM , class REP , class I , class J , class M >
mmx::sparse::add (Polynomial &p1, I b1, J e1, const M &m2)
 
TMPL void mmx::sparse::add (Polynomial &p, const typename Polynomial::monom_t &m)
 
TMPL void mmx::sparse::add (Polynomial &p, const C &c)
 
TMPLX void mmx::sparse::add (Polynomial &r, const Polynomial &q, const X &c)
 
TMPL void mmx::sparse::add (Polynomial &r, const C &c, const Polynomial &q)
 
TMPL void mmx::sparse::sub (Polynomial &result, const Polynomial &p1, const Polynomial &p2)
 
TMPL void mmx::sparse::sub (Polynomial &p, const Polynomial &q)
 
TMPLX void mmx::sparse::sub (Polynomial &r, const Polynomial &q, const X &c)
 
TMPLX void mmx::sparse::sub (Polynomial &r, const X &c, const Polynomial &q)
 
TMPL void mmx::sparse::mul (Polynomial &r, const C &c)
 Multiplication of a polynomial by a monomial or a scalar. More...
 
TMPL void mmx::sparse::mul (Polynomial &r, const Polynomial &p, const C &c)
 
TMPLX void mmx::sparse::mul (Polynomial &r, const X &c, const Polynomial &p)
 
template<class C , class O , class MONOM , class REP , class M >
void mmx::sparse::mul_ext (Polynomial &r, const Polynomial &a, const M &m)
 Multiplication of a polynomial by a monomial or a scalar. More...
 
TMPL void mmx::sparse::mul (Polynomial &r, const Polynomial &a, const typename Polynomial::monom_t &m)
 Multiplication of a polynomial by a monomial or a scalar. More...
 
TMPL void mmx::sparse::mul (Polynomial &r, const typename Polynomial::monom_t &m)
 Multiplication of a polynomial by a monomial or a scalar. More...
 
template<class C , class O , class MONOM , class REP , class M >
void mmx::sparse::mul_ext_e (Polynomial &result, const Polynomial &a, const M &m)
 
TMPL void mmx::sparse::mul (Polynomial &r, const Polynomial &a, const Polynomial &b)
 Multiplication of two polynomials. More...
 
TMPLX void mmx::sparse::mul (Polynomial &r, const Polynomial &a, const Polynomial &b, const X &o)
 Specialisation for list. More...
 
TMPL void mmx::sparse::mul_iterator (Polynomial &r, typename Polynomial::const_iterator b, typename Polynomial::const_iterator e, const Polynomial &p)
 
TMPL void mmx::sparse::mul (Polynomial &r, const Polynomial &p)
 
TMPL void mmx::sparse::div (Polynomial &q, const Polynomial &a, const Polynomial &b)
 
TMPL void mmx::sparse::div (Polynomial &r, const Polynomial &b)
 
TMPL void mmx::sparse::div (Polynomial &f, const typename Polynomial::Scalar &c)
 
TMPL void mmx::sparse::div (Polynomial &r, const Polynomial &p, const C &c)
 
TMPL void mmx::sparse::rem (Polynomial &r, const Polynomial &a, const Polynomial &b)
 
template<class C , class O , class MONOM , class REP , class U >
void mmx::sparse::coefficients (Seq< U > &r, const Polynomial &f, int v)
 
TMPL void mmx::sparse::coefficients (Seq< C > &r, const Polynomial &f)
 
template<class R >
int mmx::sparse::lvar (const R &p)
 Index of the leading variable (of maximal index) of a polynomial. More...
 
template<class R >
unsigned mmx::sparse::nbvar (const R &p)
 Number of variables of a polynomial. More...
 
template<class R >
int mmx::sparse::degree (const R &p)
 Degree of a polynomial. More...
 
template<class R >
int mmx::sparse::degree (const R &p, int i)
 Degree of a polynomial with respect to the i th variable.. More...
 
template<class R >
R::coeff_t & mmx::sparse::leadingcoeff (R &a)
 
template<class R >
R::coeff_t mmx::sparse::leadingcoeff (const R &a)
 
template<class POL >
POL::coeff_t mmx::sparse::coeffof (const POL &p, const typename POL::monom_t &mono)
 
template<class POL >
POL::const_iterator mmx::sparse::last_term (const POL &p)
 
template<class R >
void mmx::sparse::div_rem (R &q, R &a, const R &b0)
 Divide a in place by b, concidering all the monomials. More...
 
TMPL void mmx::sparse::diff (Polynomial &r, const Polynomial &p, int i)
 Derivative of p with respect to i th variable put in r. More...
 
TMPL void mmx::sparse::shift (Polynomial &r, const Polynomial &p, const typename Polynomial::monom_t &m)
 Multiply p by a monomial m and put the result in r. More...
 
TMPL void mmx::sparse::copy (Polynomial &r, const Polynomial &a)
 Copy of a in r. More...
 
TMPL Polynomial::coeff_t mmx::sparse::eval (const Polynomial &p, const typename Polynomial::coeff_t &x, const typename Polynomial::coeff_t &y)
 Evaluate the polynomial p for x0=x, x1=y, and the other xi=1. More...
 
template<class C , class O , class MONOM , class REP , class R , class VCT >
void mmx::sparse::eval_at (R &r, const Polynomial &p, const VCT &x)
 
template<class R , class C , class O , class MONOM , class REP , class X >
void mmx::sparse::eval (R &r, const Polynomial &p, const X &x)
 Evaluate the polynomial p for x0=x, x1=y, and the other xi=1. **/. More...
 
TMPL void mmx::sparse::homogenize (Polynomial &r, const Polynomial &p, const Polynomial &v)
 
TMPL void mmx::sparse::homogenize (Polynomial &r, const Polynomial &p, int n, const Polynomial &v)
 
template<class MP >
MP mmx::sparse::convert (const MP &P, typename MP::coeff_t x, typename MP::coeff_t y, int ind)
 
template<class C , class O , class MONOM , class REP , class VARIABLES >
std::string mmx::sparse::to_string (const Polynomial &P, const VARIABLES &V)
 
template<class OS , class C , class O , class MONOM , class REP , class VARIABLES >
OS & mmx::sparse::print (OS &os, const Polynomial &P, const VARIABLES &V)
 
template<class OS , class C , class O , class MONOM , class REP , class VARIABLES >
OS & mmx::sparse::print_as_double (OS &os, const Polynomial &P, const VARIABLES &V)
 
template<class OS , class C , class O , class MONOM , class REP >
OS & mmx::sparse::print (OS &os, const Polynomial &P)
 
template<class OS , class C , class O , class MONOM , class REP >
OS & mmx::sparse::print_verbatim (OS &os, const Polynomial &P)
 
template<class POL , class C >
POL mmx::sparse::shift (typename POL::const_iterator monom, const C &a, int i)
 
template<class POL , class C >
POL mmx::sparse::scale (const POL &p, C a, int v)
 
template<class T , class MP , class V >
mmx::sparse::eval (const MP &p, const V &v)
 
template<class R , class MP , class V >
void mmx::sparse::eval (R &r, const MP &p, const V &v, unsigned n)
 
template<class MP , class X >
MP mmx::sparse::subs (unsigned var, const X &val, const MP &P)
 
template<class MP >
MP mmx::sparse::subs (const MP &P, int var, typename MP::coeff_t val)
 
template<class MP >
MP mmx::sparse::subs (const MP &P, char *x, typename MP::coeff_t val)
 
template<class T >
void mmx::sparse::print (const T &x)
 
template<class MP >
MP mmx::sparse::swap (const MP &P, int var_i, int var_j)
 
template<class MP >
MP mmx::sparse::swap (const MP &P, char *x_i, char *x_j)
 
template<class C , class O , class MONOM , class REP >
C mmx::sparse::content (const Polynomial &P)
 
TMPL void mmx::let::assign (sparse::monomial_seq< C, O, MONOM, REP > &p, const C &c)
 
template<class U , class V , class O , class UMONOM , class UREP , class VMONOM , class VREP >
void mmx::let::assign (sparse::monomial_seq< U, O, UMONOM, UREP > &p, const sparse::monomial_seq< V, O, VMONOM, VREP > &q)
 

Macro Definition Documentation

#define CLASS   monomial_seq
#define Polynomial   monomial_seq<C,O,MONOM,REP>
#define sparse_monomials   sparse::monomial_seq
#define SparsePolynomial   sparse:: monomial_seq<C,O,MONOM,REP>
#define TMPL   template<class C, class O, class MONOM, class REP>
#define TMPLX   template<class C, class O, class MONOM, class REP, class X>
Home