SLIP
1.4
|
Numerical MultivariatePolynomial class. More...
#include <MultivariatePolynomial.hpp>
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 | |
self & | operator+= (const T &val) |
Add val to each element of the MultivariatePolynomial. More... | |
self & | operator-= (const T &val) |
self & | operator*= (const T &val) |
self & | operator/= (const T &val) |
self | operator- () const |
self & | operator+= (const self &rhs) |
self & | operator-= (const self &rhs) |
self & | operator*= (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 | |
K | keys |
STL member. More... | |
T | 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... | |
Numerical MultivariatePolynomial class.
T | Type of the coefficients of the MultivariatePolynomial |
DIM | Dimension of the Polynomial. |
Definition at line 333 of file MultivariatePolynomial.hpp.
typedef std::map<slip::Monomial<DIM>,T> slip::MultivariatePolynomial< T, DIM >::base |
Definition at line 361 of file MultivariatePolynomial.hpp.
typedef std::map<slip::Monomial<DIM>,T>::const_iterator slip::MultivariatePolynomial< T, DIM >::const_iterator |
Definition at line 379 of file MultivariatePolynomial.hpp.
typedef const std::map<slip::Monomial<DIM>,T>::const_pointer slip::MultivariatePolynomial< T, DIM >::const_pointer |
Definition at line 371 of file MultivariatePolynomial.hpp.
typedef std::map<slip::Monomial<DIM>,T>::const_reference slip::MultivariatePolynomial< T, DIM >::const_reference |
Definition at line 373 of file MultivariatePolynomial.hpp.
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.
typedef const MultivariatePolynomial<T,DIM> slip::MultivariatePolynomial< T, DIM >::const_self |
Definition at line 368 of file MultivariatePolynomial.hpp.
typedef std::map<slip::Monomial<DIM>,T>::difference_type slip::MultivariatePolynomial< T, DIM >::difference_type |
Definition at line 375 of file MultivariatePolynomial.hpp.
typedef std::map<slip::Monomial<DIM>,T>::iterator slip::MultivariatePolynomial< T, DIM >::iterator |
Definition at line 378 of file MultivariatePolynomial.hpp.
typedef std::map<slip::Monomial<DIM>,T>::key_compare slip::MultivariatePolynomial< T, DIM >::key_compare |
Definition at line 365 of file MultivariatePolynomial.hpp.
typedef std::map<slip::Monomial<DIM>,T>::key_type slip::MultivariatePolynomial< T, DIM >::key_type |
Definition at line 362 of file MultivariatePolynomial.hpp.
typedef std::map<slip::Monomial<DIM>,T>::mapped_type slip::MultivariatePolynomial< T, DIM >::mapped_type |
Definition at line 363 of file MultivariatePolynomial.hpp.
typedef std::map<slip::Monomial<DIM>,T>::pointer slip::MultivariatePolynomial< T, DIM >::pointer |
Definition at line 370 of file MultivariatePolynomial.hpp.
typedef std::map<slip::Monomial<DIM>,T>::reference slip::MultivariatePolynomial< T, DIM >::reference |
Definition at line 372 of file MultivariatePolynomial.hpp.
typedef std::map<slip::Monomial<DIM>,T>::reverse_iterator slip::MultivariatePolynomial< T, DIM >::reverse_iterator |
Definition at line 381 of file MultivariatePolynomial.hpp.
typedef MultivariatePolynomial<T,DIM> slip::MultivariatePolynomial< T, DIM >::self |
Definition at line 367 of file MultivariatePolynomial.hpp.
typedef std::map<slip::Monomial<DIM>,T>::size_type slip::MultivariatePolynomial< T, DIM >::size_type |
Definition at line 376 of file MultivariatePolynomial.hpp.
typedef std::map<slip::Monomial<DIM>,T>::value_compare slip::MultivariatePolynomial< T, DIM >::value_compare |
Definition at line 366 of file MultivariatePolynomial.hpp.
typedef std::map<slip::Monomial<DIM>,T>::value_type slip::MultivariatePolynomial< T, DIM >::value_type |
Definition at line 364 of file MultivariatePolynomial.hpp.
|
inline |
Constructs a MultivariatePolynomial.
Definition at line 393 of file MultivariatePolynomial.hpp.
|
inline |
Constructs a MultivariatePolynomial of degree degree. That is to say the sum of the powers of the greteast monomial is less than degree.
degree | Degree of the MultivariatePolynomial. |
Definition at line 413 of file MultivariatePolynomial.hpp.
|
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).
degree | Degree of the MultivariatePolynomial. |
first | InputIterator to the first coefficient. |
last | InputIterator to one past-the-end coefficient. |
Definition at line 438 of file MultivariatePolynomial.hpp.
|
inline |
Constructs a MultivariatePolynomial with a copy of range.
first | An input iterator. |
last | An output iterator. |
Definition at line 459 of file MultivariatePolynomial.hpp.
|
inline |
Constructs a copy of the MultivariatePolynomial rhs.
Definition at line 468 of file MultivariatePolynomial.hpp.
|
inline |
Destructor of the MultivariatePolynomial.
Definition at line 475 of file MultivariatePolynomial.hpp.
|
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.
|
inline |
Returns the composition of the MultivariatePolynomial with a vector of MultivariatePolynomial.
VP | a std::vector of slip::MultivariatePolynomial<T,DIM> |
Definition at line 1440 of file MultivariatePolynomial.hpp.
|
inline |
Returns the degree of the MultivariatePolynomial.
Definition at line 1473 of file MultivariatePolynomial.hpp.
|
inline |
Returns the derivative the MultivariatePolynomial.
dim | Dimension to derivate. |
Definition at line 1271 of file MultivariatePolynomial.hpp.
|
inline |
compute the in-place derivative of the MultivariatePolynomial
dim | Dimension to derivate. |
Definition at line 1236 of file MultivariatePolynomial.hpp.
|
inline |
Returns the derivative the MultivariatePolynomial.
dim | Dimension to derivate. |
order | Order of derivation. |
Definition at line 1295 of file MultivariatePolynomial.hpp.
|
inline |
Computes the in-place derivative of the MultivariatePolynomial.
dim | Dimension to derivate. |
order | Order of derivation. |
Definition at line 1284 of file MultivariatePolynomial.hpp.
|
inline |
Returns the evaluation of the MultivariatePolynomial at (x1,x2,...,xDIM)
first | An InputIterator on the coordinates |
last | An InputIterator |
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.
|
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.
X | Vector of the data (each data must be of dimension DIM). |
Y | Vector of the Y data. |
order | Order or degree of the polynomial that fit the data. std::size_t n = 32;
slip::Vector<double> x3(n+1);
slip::iota(x3.begin(),x3.end(),-1.0,1.0/double(n));
slip::Vector<double> y3(x3);
slip::Vector<double> z3(x3);
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.
|
inline |
Inserts the monomial monomial associated with the coefficient coefficient into the MultivariatePolynomial.
monomial | Monomial to insert |
coefficient | Coefficient associated to the Monomial monomial |
Definition at line 1043 of file MultivariatePolynomial.hpp.
|
inline |
Returns the integral of the MultivariatePolynomial. By default, the constant of integrationis K is set to zero.
dim | Dimension to integrate. |
K | Constant of integration. |
Definition at line 1381 of file MultivariatePolynomial.hpp.
|
inline |
Computes the in-place integral of the MultivariatePolynomial. By default, the constant of integrationis K is set to zero.
dim | Dimension to integrate. |
K | Constant of integration. |
Definition at line 1352 of file MultivariatePolynomial.hpp.
|
inline |
Returns the integral of the MultivariatePolynomial. By default, the constant of integrationis K is set to zero.
dim | Dimension to integrate. |
order | Order of integration. |
K | Constant of integration. |
Definition at line 1405 of file MultivariatePolynomial.hpp.
|
inline |
Computes the in-place integral of the MultivariatePolynomial. By default, the constant of integrationis K is set to zero.
dim | Dimension to integrate. |
order | Order of integration. |
K | Constant of integration. |
Definition at line 1392 of file MultivariatePolynomial.hpp.
|
inline |
Returns the name of the class.
Definition at line 1466 of file MultivariatePolynomial.hpp.
|
inline |
Definition at line 1553 of file MultivariatePolynomial.hpp.
|
inline |
Definition at line 1656 of file MultivariatePolynomial.hpp.
|
inline |
Add val to each element of the MultivariatePolynomial.
val | value |
Definition at line 1513 of file MultivariatePolynomial.hpp.
|
inline |
Definition at line 1598 of file MultivariatePolynomial.hpp.
|
inline |
Definition at line 1581 of file MultivariatePolynomial.hpp.
|
inline |
Definition at line 1533 of file MultivariatePolynomial.hpp.
|
inline |
Definition at line 1625 of file MultivariatePolynomial.hpp.
|
inline |
Definition at line 1567 of file MultivariatePolynomial.hpp.
|
inline |
Returns the degree of the MultivariatePolynomial.
Definition at line 1487 of file MultivariatePolynomial.hpp.
|
inline |
Returns the evaluation of the MultivariatePolynomial at (x1,x2,...,val,...,xDIM)
number | Variable number |
val | Value of this variable |
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.
|
inline |
Returns the total number of coefficients.
Definition at line 1494 of file MultivariatePolynomial.hpp.
|
friend |
Definition at line 901 of file MultivariatePolynomial.hpp.
|
related |
pointwise multiplication of two MultivariatePolynomial
P1 | The first MultivariatePolynomial |
P2 | The second MultivariatePolynomial |
Definition at line 1778 of file MultivariatePolynomial.hpp.
|
related |
multiplication of a scalar to each element of a MultivariatePolynomial
P | The MultivariatePolynomial |
val | The scalar |
Definition at line 1788 of file MultivariatePolynomial.hpp.
|
related |
multiplication of a scalar to each element of a MultivariatePolynomial
val | The scalar |
P | The MultivariatePolynomial |
Definition at line 1798 of file MultivariatePolynomial.hpp.
|
related |
pointwise addition of two MultivariatePolynomial
P1 | The first MultivariatePolynomial |
P2 | The second MultivariatePolynomial |
Definition at line 1720 of file MultivariatePolynomial.hpp.
|
related |
addition of a scalar to each element of a MultivariatePolynomial
P | The MultivariatePolynomial |
val | The scalar |
Definition at line 1730 of file MultivariatePolynomial.hpp.
|
related |
addition of a scalar to each element of a MultivariatePolynomial
val | The scalar |
P | The MultivariatePolynomial |
Definition at line 1740 of file MultivariatePolynomial.hpp.
|
related |
pointwise substraction of two MultivariatePolynomial
P1 | The first MultivariatePolynomial |
P2 | The second MultivariatePolynomial |
Definition at line 1749 of file MultivariatePolynomial.hpp.
|
related |
substraction of a scalar to each element of a MultivariatePolynomial
P | The MultivariatePolynomial |
val | The scalar |
Definition at line 1759 of file MultivariatePolynomial.hpp.
|
related |
substraction of a scalar to each element of a MultivariatePolynomial
val | The scalar |
P | The MultivariatePolynomial |
Definition at line 1769 of file MultivariatePolynomial.hpp.
|
related |
division of a scalar to each element of a MultivariatePolynomial
P | The MultivariatePolynomial |
val | The scalar |
Definition at line 1807 of file MultivariatePolynomial.hpp.
|
friend |
Write the MultivariatePolynomial to the ouput stream.
out | output std:ostream |
v | MultivariatePolynomial to write to the output stream |
Definition at line 1063 of file MultivariatePolynomial.hpp.
|
inherited |
STL member.
|
inherited |
STL member.