SLIP  1.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Attributes | Friends | List of all members
slip::MultivariatePolynomial< T, DIM > Class Template Reference

Numerical MultivariatePolynomial class. More...

#include <MultivariatePolynomial.hpp>

Inheritance diagram for slip::MultivariatePolynomial< T, DIM >:
Inheritance graph

Public Types

typedef std::map
< slip::Monomial< DIM >, T > 
base
 
typedef std::map
< slip::Monomial< DIM >, T >
::key_type 
key_type
 
typedef std::map
< slip::Monomial< DIM >, T >
::mapped_type 
mapped_type
 
typedef std::map
< slip::Monomial< DIM >, T >
::value_type 
value_type
 
typedef std::map
< slip::Monomial< DIM >, T >
::key_compare 
key_compare
 
typedef std::map
< slip::Monomial< DIM >, T >
::value_compare 
value_compare
 
typedef MultivariatePolynomial
< T, DIM > 
self
 
typedef const
MultivariatePolynomial< T, DIM > 
const_self
 
typedef std::map
< slip::Monomial< DIM >, T >
::pointer 
pointer
 
typedef const std::map
< slip::Monomial< DIM >, T >
::const_pointer 
const_pointer
 
typedef std::map
< slip::Monomial< DIM >, T >
::reference 
reference
 
typedef std::map
< slip::Monomial< DIM >, T >
::const_reference 
const_reference
 
typedef std::map
< slip::Monomial< DIM >, T >
::difference_type 
difference_type
 
typedef std::map
< slip::Monomial< DIM >, T >
::size_type 
size_type
 
typedef std::map
< slip::Monomial< DIM >, T >
::iterator 
iterator
 
typedef std::map
< slip::Monomial< DIM >, T >
::const_iterator 
const_iterator
 
typedef std::map
< slip::Monomial< DIM >, T >
::reverse_iterator 
reverse_iterator
 
typedef std::map
< slip::Monomial< DIM >, T >
::const_reverse_iterator 
const_reverse_iterator
 

Public Member Functions

Constructors & Destructors
 MultivariatePolynomial ()
 Constructs a MultivariatePolynomial. More...
 
 MultivariatePolynomial (const std::size_t degree)
 Constructs a MultivariatePolynomial of degree degree. That is to say the sum of the powers of the greteast monomial is less than degree. More...
 
template<typename InputIterator >
 MultivariatePolynomial (const std::size_t degree, InputIterator first, InputIterator last)
 Constructs a MultivariatePolynomial of degree degree. That is to say the sum of the powers of the greteast monomial is less than degree. The coefficient of the polynomial are set to those provided by the range [first,last). More...
 
template<class InputIterator >
 MultivariatePolynomial (InputIterator first, InputIterator last)
 Constructs a MultivariatePolynomial with a copy of range. More...
 
 MultivariatePolynomial (const self &rhs)
 Constructs a copy of the MultivariatePolynomial rhs. More...
 
 ~MultivariatePolynomial ()
 Destructor of the MultivariatePolynomial. More...
 
Basic operetors
void insert (const slip::Monomial< DIM > &monomial, const T &coefficient)
 Inserts the monomial monomial associated with the coefficient coefficient into the MultivariatePolynomial. More...
 
Arithmetic operators
selfoperator+= (const T &val)
 Add val to each element of the MultivariatePolynomial. More...
 
selfoperator-= (const T &val)
 
selfoperator*= (const T &val)
 
selfoperator/= (const T &val)
 
self operator- () const
 
selfoperator+= (const self &rhs)
 
selfoperator-= (const self &rhs)
 
selfoperator*= (const self &rhs)
 
Mathematic operators
self derivative (const std::size_t dim) const
 Returns the derivative the MultivariatePolynomial. More...
 
void derivative (const std::size_t dim)
 compute the in-place derivative of the MultivariatePolynomial More...
 
self derivative (const std::size_t dim, const std::size_t order) const
 Returns the derivative the MultivariatePolynomial. More...
 
void derivative (const std::size_t dim, const std::size_t order)
 Computes the in-place derivative of the MultivariatePolynomial. More...
 
self integral (const std::size_t dim, const T &K=T()) const
 Returns the integral of the MultivariatePolynomial. By default, the constant of integrationis K is set to zero. More...
 
void integral (const std::size_t dim, const T &K=T())
 Computes the in-place integral of the MultivariatePolynomial. By default, the constant of integrationis K is set to zero. More...
 
self integral (const std::size_t dim, const std::size_t order, const T &K=T()) const
 Returns the integral of the MultivariatePolynomial. By default, the constant of integrationis K is set to zero. More...
 
void integral (const std::size_t dim, const std::size_t order, const T &K=T())
 Computes the in-place integral of the MultivariatePolynomial. By default, the constant of integrationis K is set to zero. More...
 
template<typename Vector1 , typename Vector2 >
double fit (Vector1 X, Vector2 Y, const std::size_t order)
 Return a polynomial P(X) of degree order that minimizes sum_i (P(x1(i),...,xDIM(i)) - y(i))^2 to best fit the data in the least squares sense. More...
 
template<typename InputIterator >
std::iterator_traits
< InputIterator >::value_type 
evaluate (InputIterator first, InputIterator last) const
 Returns the evaluation of the MultivariatePolynomial at (x1,x2,...,xDIM) More...
 
MultivariatePolynomial< T, DIM > partial_evaluate (const std::size_t number, const T &val)
 Returns the evaluation of the MultivariatePolynomial at (x1,x2,...,val,...,xDIM) More...
 
self compose (const std::vector< self > &VP)
 Returns the composition of the MultivariatePolynomial with a vector of MultivariatePolynomial. More...
 
Accessors
std::string name () const
 Returns the name of the class. More...
 
size_type degree () const
 Returns the degree of the MultivariatePolynomial. More...
 
size_type order () const
 Returns the degree of the MultivariatePolynomial. More...
 
size_type total_nb_coeff () const
 Returns the total number of coefficients. More...
 
template<typename RandomAccessIterator >
void all_coeff (RandomAccessIterator first, RandomAccessIterator last) const
 Returns all the coefficients of the polynomial including zero ones. More...
 

Public Attributes

keys
 STL member. More...
 
elements
 STL member. More...
 

Friends

class boost::serialization::access
 
i/o operators
std::ostream & operator<< (std::ostream &out, const self &v)
 Write the MultivariatePolynomial to the ouput stream. More...
 

Related Functions

(Note that these are not member functions.)

External arithmetic methods
template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator+ (const MultivariatePolynomial< T, DIM > &P1, const MultivariatePolynomial< T, DIM > &P2)
 pointwise addition of two MultivariatePolynomial More...
 
template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator+ (const MultivariatePolynomial< T, DIM > &P, const T &val)
 addition of a scalar to each element of a MultivariatePolynomial More...
 
template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator+ (const T &val, const MultivariatePolynomial< T, DIM > &P)
 addition of a scalar to each element of a MultivariatePolynomial More...
 
template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator- (const MultivariatePolynomial< T, DIM > &P1, const MultivariatePolynomial< T, DIM > &P2)
 pointwise substraction of two MultivariatePolynomial More...
 
template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator- (const MultivariatePolynomial< T, DIM > &P, const T &val)
 substraction of a scalar to each element of a MultivariatePolynomial More...
 
template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator- (const T &val, const MultivariatePolynomial< T, DIM > &P)
 substraction of a scalar to each element of a MultivariatePolynomial More...
 
template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator* (const MultivariatePolynomial< T, DIM > &P1, const MultivariatePolynomial< T, DIM > &P2)
 pointwise multiplication of two MultivariatePolynomial More...
 
template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator* (const MultivariatePolynomial< T, DIM > &P, const T &val)
 multiplication of a scalar to each element of a MultivariatePolynomial More...
 
template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator* (const T &val, const MultivariatePolynomial< T, DIM > &P)
 multiplication of a scalar to each element of a MultivariatePolynomial More...
 
template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator/ (const MultivariatePolynomial< T, DIM > &P, const T &val)
 division of a scalar to each element of a MultivariatePolynomial More...
 

Detailed Description

template<typename T, std::size_t DIM>
class slip::MultivariatePolynomial< T, DIM >

Numerical MultivariatePolynomial class.

Author
Benoit Tremblais <tremblais_AT_sic.univ-poitiers.fr>
Version
0.0.2
Date
2008/05/05
Since
1.0.0
Parameters
TType of the coefficients of the MultivariatePolynomial
DIMDimension of the Polynomial.
Remarks
The monomials are ordered according to the lexicographical order of the powers x1,x2,...,xDIM. For example: 1 + x1 + x1^2 + x2 + x1x2 + x2^2 + x3 + x3x1 + x3x2 + x3^2.
The variables and the coefficients of the MultivariatePolynomial may be complex.

Definition at line 333 of file MultivariatePolynomial.hpp.

Member Typedef Documentation

template<typename T, std::size_t DIM>
typedef std::map<slip::Monomial<DIM>,T> slip::MultivariatePolynomial< T, DIM >::base

Definition at line 361 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef std::map<slip::Monomial<DIM>,T>::const_iterator slip::MultivariatePolynomial< T, DIM >::const_iterator

Definition at line 379 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef const std::map<slip::Monomial<DIM>,T>::const_pointer slip::MultivariatePolynomial< T, DIM >::const_pointer

Definition at line 371 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef std::map<slip::Monomial<DIM>,T>::const_reference slip::MultivariatePolynomial< T, DIM >::const_reference

Definition at line 373 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef std::map<slip::Monomial<DIM>,T>::const_reverse_iterator slip::MultivariatePolynomial< T, DIM >::const_reverse_iterator

Definition at line 382 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef const MultivariatePolynomial<T,DIM> slip::MultivariatePolynomial< T, DIM >::const_self

Definition at line 368 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef std::map<slip::Monomial<DIM>,T>::difference_type slip::MultivariatePolynomial< T, DIM >::difference_type

Definition at line 375 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef std::map<slip::Monomial<DIM>,T>::iterator slip::MultivariatePolynomial< T, DIM >::iterator

Definition at line 378 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef std::map<slip::Monomial<DIM>,T>::key_compare slip::MultivariatePolynomial< T, DIM >::key_compare

Definition at line 365 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef std::map<slip::Monomial<DIM>,T>::key_type slip::MultivariatePolynomial< T, DIM >::key_type

Definition at line 362 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef std::map<slip::Monomial<DIM>,T>::mapped_type slip::MultivariatePolynomial< T, DIM >::mapped_type

Definition at line 363 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef std::map<slip::Monomial<DIM>,T>::pointer slip::MultivariatePolynomial< T, DIM >::pointer

Definition at line 370 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef std::map<slip::Monomial<DIM>,T>::reference slip::MultivariatePolynomial< T, DIM >::reference

Definition at line 372 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef std::map<slip::Monomial<DIM>,T>::reverse_iterator slip::MultivariatePolynomial< T, DIM >::reverse_iterator

Definition at line 381 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef MultivariatePolynomial<T,DIM> slip::MultivariatePolynomial< T, DIM >::self

Definition at line 367 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef std::map<slip::Monomial<DIM>,T>::size_type slip::MultivariatePolynomial< T, DIM >::size_type

Definition at line 376 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef std::map<slip::Monomial<DIM>,T>::value_compare slip::MultivariatePolynomial< T, DIM >::value_compare

Definition at line 366 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
typedef std::map<slip::Monomial<DIM>,T>::value_type slip::MultivariatePolynomial< T, DIM >::value_type

Definition at line 364 of file MultivariatePolynomial.hpp.

Constructor & Destructor Documentation

template<typename T, std::size_t DIM>
slip::MultivariatePolynomial< T, DIM >::MultivariatePolynomial ( )
inline

Constructs a MultivariatePolynomial.

Definition at line 393 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
slip::MultivariatePolynomial< T, DIM >::MultivariatePolynomial ( const std::size_t  degree)
inline

Constructs a MultivariatePolynomial of degree degree. That is to say the sum of the powers of the greteast monomial is less than degree.

Parameters
degreeDegree of the MultivariatePolynomial.
//create 1 + x1 + x1^2 + x2 + x1x2 + x2^2 + x3 + x3x1 + x3x2 + x3^2

Definition at line 413 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
template<typename InputIterator >
slip::MultivariatePolynomial< T, DIM >::MultivariatePolynomial ( const std::size_t  degree,
InputIterator  first,
InputIterator  last 
)
inline

Constructs a MultivariatePolynomial of degree degree. That is to say the sum of the powers of the greteast monomial is less than degree. The coefficient of the polynomial are set to those provided by the range [first,last).

Parameters
degreeDegree of the MultivariatePolynomial.
firstInputIterator to the first coefficient.
lastInputIterator to one past-the-end coefficient.
Precondition
(last-first) == total_nb_coeff()
//create 1 + 2x1 + 3x1^2 + 4x2 + 5x1x2 + 6x2^2 + 7x3 + 8x3x1 + 9x3x2 + 10x3^2
slip::iota(A.begin(),A.end(),1.0,1.0);

Definition at line 438 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
template<class InputIterator >
slip::MultivariatePolynomial< T, DIM >::MultivariatePolynomial ( InputIterator  first,
InputIterator  last 
)
inline

Constructs a MultivariatePolynomial with a copy of range.

Parameters
firstAn input iterator.
lastAn output iterator.

Definition at line 459 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
slip::MultivariatePolynomial< T, DIM >::MultivariatePolynomial ( const self rhs)
inline

Constructs a copy of the MultivariatePolynomial rhs.

Definition at line 468 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
slip::MultivariatePolynomial< T, DIM >::~MultivariatePolynomial ( )
inline

Destructor of the MultivariatePolynomial.

Definition at line 475 of file MultivariatePolynomial.hpp.

Member Function Documentation

template<typename T, std::size_t DIM>
template<typename RandomAccessIterator >
void slip::MultivariatePolynomial< T, DIM >::all_coeff ( RandomAccessIterator  first,
RandomAccessIterator  last 
) const
inline

Returns all the coefficients of the polynomial including zero ones.

/pre (last - first) == total_nb_coeff() /pre DIM > 0

Definition at line 839 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > slip::MultivariatePolynomial< T, DIM >::compose ( const std::vector< self > &  VP)
inline

Returns the composition of the MultivariatePolynomial with a vector of MultivariatePolynomial.

Parameters
VPa std::vector of slip::MultivariatePolynomial<T,DIM>
Returns
P(Q1,Q2,...QDIM) where P is the slip::MultivariatePolynomial<T,DIM> of the slip::MultivariatePolynomial<T,DIM> Q1,Q2...,QDIM
Precondition
VP.size() == DIM

Definition at line 1440 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM >::size_type slip::MultivariatePolynomial< T, DIM >::degree ( ) const
inline

Returns the degree of the MultivariatePolynomial.

Definition at line 1473 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > slip::MultivariatePolynomial< T, DIM >::derivative ( const std::size_t  dim) const
inline

Returns the derivative the MultivariatePolynomial.

Parameters
dimDimension to derivate.
Precondition
0 < dim <= DIM Was an in-place derivative before version 1.4.0 !

Definition at line 1271 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
void slip::MultivariatePolynomial< T, DIM >::derivative ( const std::size_t  dim)
inline

compute the in-place derivative of the MultivariatePolynomial

Parameters
dimDimension to derivate.
Since
1.4.0
Precondition
0 < dim <= DIM

Definition at line 1236 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > slip::MultivariatePolynomial< T, DIM >::derivative ( const std::size_t  dim,
const std::size_t  order 
) const
inline

Returns the derivative the MultivariatePolynomial.

Parameters
dimDimension to derivate.
orderOrder of derivation.
Precondition
0 < dim <= DIM Was an in-place derivative before version 1.4.0 !

Definition at line 1295 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
void slip::MultivariatePolynomial< T, DIM >::derivative ( const std::size_t  dim,
const std::size_t  order 
)
inline

Computes the in-place derivative of the MultivariatePolynomial.

Parameters
dimDimension to derivate.
orderOrder of derivation.
Precondition
0 < dim <= DIM

Definition at line 1284 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
template<typename InputIterator >
std::iterator_traits<InputIterator>::value_type slip::MultivariatePolynomial< T, DIM >::evaluate ( InputIterator  first,
InputIterator  last 
) const
inline

Returns the evaluation of the MultivariatePolynomial at (x1,x2,...,xDIM)

Parameters
firstAn InputIterator on the coordinates
lastAn InputIterator
Precondition
(last-first) == DIM
Todo:

accelerate computation for simple values (0.0, 1.0, -1.0, i, -i...)

test with complex variables

specialize for float, double, long double and complex<float>...

Definition at line 738 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
template<typename Vector1 , typename Vector2 >
double slip::MultivariatePolynomial< T, DIM >::fit ( Vector1  X,
Vector2  Y,
const std::size_t  order 
)
inline

Return a polynomial P(X) of degree order that minimizes sum_i (P(x1(i),...,xDIM(i)) - y(i))^2 to best fit the data in the least squares sense.

Parameters
XVector of the data (each data must be of dimension DIM).
YVector of the Y data.
orderOrder or degree of the polynomial that fit the data.
std::size_t n = 32;
slip::iota(x3.begin(),x3.end(),-1.0,1.0/double(n));
slip::Vector<slip::Vector<double> > datax3(x3.size()*x3.size()*x3.size());
std::size_t k = 0;
forr(std::size_t i = 0; i < y3.size(); ++i)
{
for(std::size_t j = 0; j < x3.size(); ++j)
{
for(std::size_t l = 0; l < z3.size(); ++l)
{
datax3[k].resize(3);
datax3[k][0] = x3[i];
datax3[k][1] = y3[j];
datax3[k][2] = z3[l];
k++;
}
}
}
slip::Vector<double> datay3(datax3.size(),0.0);
for(std::size_t k = 0; k < datax3.size(); ++k)
{
double x = datax3[k][0];
double y = datax3[k][1];
double z = datax3[k][2];
datay3[k] = 1.2 + 2.0 * x + 0.5* x*x - 1.0 * y + 0.8 * x *
y + 0.3 * y * y + 1.1*z*y + 1.32 * z * z;
}
std::size_t coeff_size3 = 10;
slip::Vector<double> coeff3(coeff_size3,1.0);
double err = P3d.fit(datax3,datay3,2);
std::cout<<P3d<<std::endl;
std::cout<<"erreur = "<<err<<std::endl;

Definition at line 693 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
void slip::MultivariatePolynomial< T, DIM >::insert ( const slip::Monomial< DIM > &  monomial,
const T &  coefficient 
)
inline

Inserts the monomial monomial associated with the coefficient coefficient into the MultivariatePolynomial.

Parameters
monomialMonomial to insert
coefficientCoefficient associated to the Monomial monomial

Definition at line 1043 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
MultivariatePolynomial< T, DIM > slip::MultivariatePolynomial< T, DIM >::integral ( const std::size_t  dim,
const T &  K = T() 
) const
inline

Returns the integral of the MultivariatePolynomial. By default, the constant of integrationis K is set to zero.

Parameters
dimDimension to integrate.
KConstant of integration.
Precondition
0 < dim <= DIM Was an in-place derivative before version 1.4.0 !

Definition at line 1381 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
void slip::MultivariatePolynomial< T, DIM >::integral ( const std::size_t  dim,
const T &  K = T() 
)
inline

Computes the in-place integral of the MultivariatePolynomial. By default, the constant of integrationis K is set to zero.

Parameters
dimDimension to integrate.
KConstant of integration.
Precondition
0 < dim <= DIM

Definition at line 1352 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
MultivariatePolynomial< T, DIM > slip::MultivariatePolynomial< T, DIM >::integral ( const std::size_t  dim,
const std::size_t  order,
const T &  K = T() 
) const
inline

Returns the integral of the MultivariatePolynomial. By default, the constant of integrationis K is set to zero.

Parameters
dimDimension to integrate.
orderOrder of integration.
KConstant of integration.
Precondition
0 < dim <= DIM Was an in-place derivative before version 1.4.0 !

Definition at line 1405 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
void slip::MultivariatePolynomial< T, DIM >::integral ( const std::size_t  dim,
const std::size_t  order,
const T &  K = T() 
)
inline

Computes the in-place integral of the MultivariatePolynomial. By default, the constant of integrationis K is set to zero.

Parameters
dimDimension to integrate.
orderOrder of integration.
KConstant of integration.
Precondition
0 < dim <= DIM

Definition at line 1392 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
std::string slip::MultivariatePolynomial< T, DIM >::name ( ) const
inline

Returns the name of the class.

Definition at line 1466 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
MultivariatePolynomial< T, DIM > & slip::MultivariatePolynomial< T, DIM >::operator*= ( const T &  val)
inline

Definition at line 1553 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
MultivariatePolynomial< T, DIM > & slip::MultivariatePolynomial< T, DIM >::operator*= ( const self rhs)
inline

Definition at line 1656 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
MultivariatePolynomial< T, DIM > & slip::MultivariatePolynomial< T, DIM >::operator+= ( const T &  val)
inline

Add val to each element of the MultivariatePolynomial.

Parameters
valvalue
Returns
reference to the resulting MultivariatePolynomial

Definition at line 1513 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
MultivariatePolynomial< T, DIM > & slip::MultivariatePolynomial< T, DIM >::operator+= ( const self rhs)
inline

Definition at line 1598 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > slip::MultivariatePolynomial< T, DIM >::operator- ( ) const
inline

Definition at line 1581 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
MultivariatePolynomial< T, DIM > & slip::MultivariatePolynomial< T, DIM >::operator-= ( const T &  val)
inline

Definition at line 1533 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
MultivariatePolynomial< T, DIM > & slip::MultivariatePolynomial< T, DIM >::operator-= ( const self rhs)
inline

Definition at line 1625 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
MultivariatePolynomial< T, DIM > & slip::MultivariatePolynomial< T, DIM >::operator/= ( const T &  val)
inline

Definition at line 1567 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM >::size_type slip::MultivariatePolynomial< T, DIM >::order ( ) const
inline

Returns the degree of the MultivariatePolynomial.

Remarks
Same value as degree

Definition at line 1487 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
MultivariatePolynomial< T, DIM > slip::MultivariatePolynomial< T, DIM >::partial_evaluate ( const std::size_t  number,
const T &  val 
)
inline

Returns the evaluation of the MultivariatePolynomial at (x1,x2,...,val,...,xDIM)

Parameters
numberVariable number
valValue of this variable
Returns
The evaluated MultivariatePolynomial
Precondition
number <= DIM
Attention
Normally the dimension DIM should be decreased, but here its value is hold. The power of the variable corresponding to the number is set to zero and the coefficients of monomials are uptated.
Todo:

accelerate computation for simple values (0.0, 1.0, -1.0, i, -i...)

test with complex variables

specialize for float, double, long double and complex<float>...

Definition at line 1419 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM >::size_type slip::MultivariatePolynomial< T, DIM >::total_nb_coeff ( ) const
inline

Returns the total number of coefficients.

Definition at line 1494 of file MultivariatePolynomial.hpp.

Friends And Related Function Documentation

template<typename T, std::size_t DIM>
friend class boost::serialization::access
friend

Definition at line 901 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator* ( const MultivariatePolynomial< T, DIM > &  P1,
const MultivariatePolynomial< T, DIM > &  P2 
)
related

pointwise multiplication of two MultivariatePolynomial

Parameters
P1The first MultivariatePolynomial
P2The second MultivariatePolynomial
Returns
resulting MultivariatePolynomial

Definition at line 1778 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator* ( const MultivariatePolynomial< T, DIM > &  P,
const T &  val 
)
related

multiplication of a scalar to each element of a MultivariatePolynomial

Parameters
PThe MultivariatePolynomial
valThe scalar
Returns
resulting MultivariatePolynomial

Definition at line 1788 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator* ( const T &  val,
const MultivariatePolynomial< T, DIM > &  P 
)
related

multiplication of a scalar to each element of a MultivariatePolynomial

Parameters
valThe scalar
PThe MultivariatePolynomial
Returns
resulting MultivariatePolynomial

Definition at line 1798 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator+ ( const MultivariatePolynomial< T, DIM > &  P1,
const MultivariatePolynomial< T, DIM > &  P2 
)
related

pointwise addition of two MultivariatePolynomial

Parameters
P1The first MultivariatePolynomial
P2The second MultivariatePolynomial
Returns
resulting MultivariatePolynomial

Definition at line 1720 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator+ ( const MultivariatePolynomial< T, DIM > &  P,
const T &  val 
)
related

addition of a scalar to each element of a MultivariatePolynomial

Parameters
PThe MultivariatePolynomial
valThe scalar
Returns
resulting MultivariatePolynomial

Definition at line 1730 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator+ ( const T &  val,
const MultivariatePolynomial< T, DIM > &  P 
)
related

addition of a scalar to each element of a MultivariatePolynomial

Parameters
valThe scalar
PThe MultivariatePolynomial
Returns
resulting MultivariatePolynomial

Definition at line 1740 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator- ( const MultivariatePolynomial< T, DIM > &  P1,
const MultivariatePolynomial< T, DIM > &  P2 
)
related

pointwise substraction of two MultivariatePolynomial

Parameters
P1The first MultivariatePolynomial
P2The second MultivariatePolynomial
Returns
resulting MultivariatePolynomial

Definition at line 1749 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator- ( const MultivariatePolynomial< T, DIM > &  P,
const T &  val 
)
related

substraction of a scalar to each element of a MultivariatePolynomial

Parameters
PThe MultivariatePolynomial
valThe scalar
Returns
resulting MultivariatePolynomial

Definition at line 1759 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator- ( const T &  val,
const MultivariatePolynomial< T, DIM > &  P 
)
related

substraction of a scalar to each element of a MultivariatePolynomial

Parameters
valThe scalar
PThe MultivariatePolynomial
Returns
resulting MultivariatePolynomial

Definition at line 1769 of file MultivariatePolynomial.hpp.

template<typename T , std::size_t DIM>
MultivariatePolynomial< T, DIM > operator/ ( const MultivariatePolynomial< T, DIM > &  P,
const T &  val 
)
related

division of a scalar to each element of a MultivariatePolynomial

Parameters
PThe MultivariatePolynomial
valThe scalar
Returns
resulting MultivariatePolynomial

Definition at line 1807 of file MultivariatePolynomial.hpp.

template<typename T, std::size_t DIM>
std::ostream& operator<< ( std::ostream &  out,
const self v 
)
friend

Write the MultivariatePolynomial to the ouput stream.

Parameters
outoutput std:ostream
vMultivariatePolynomial to write to the output stream

Definition at line 1063 of file MultivariatePolynomial.hpp.

Member Data Documentation

T std::map< K, T >::elements
inherited

STL member.

K std::map< K, T >::keys
inherited

STL member.


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