MathTL
 All Classes Functions Variables Typedefs Enumerations
Public Types | Public Member Functions
MathTL::MultivariateLaurentPolynomial< R, DIMENSION > Class Template Reference

#include <multi_laurent_polynomial.h>

Inheritance diagram for MathTL::MultivariateLaurentPolynomial< R, DIMENSION >:
MathTL::InfiniteVector< R, MultiIndex< int, DIMENSION > > MathTL::Function< DIMENSION, R > map MathTL::FunctionTime

List of all members.

Public Types

typedef InfiniteVector< R,
MultiIndex< int, DIMENSION >
>::const_iterator 
const_iterator
typedef InfiniteVector< R,
MultiIndex< int, DIMENSION >
>::const_reverse_iterator 
const_reverse_iterator

Public Member Functions

 MultivariateLaurentPolynomial ()
 MultivariateLaurentPolynomial (const MultivariateLaurentPolynomial< R, DIMENSION > &p)
 MultivariateLaurentPolynomial (const R c)
 MultivariateLaurentPolynomial (const LaurentPolynomial< R > &p, const unsigned int n=0)
virtual ~MultivariateLaurentPolynomial ()
MultivariateLaurentPolynomial
< R, DIMENSION > & 
operator= (const MultivariateLaurentPolynomial< R, DIMENSION > &p)
MultivariateLaurentPolynomial
< R, DIMENSION > & 
operator= (const R c)
get_coefficient (const MultiIndex< int, DIMENSION > &k) const
void set_coefficient (const MultiIndex< int, DIMENSION > &k, const R coeff)
const_iterator begin () const
const_iterator end () const
const_reverse_iterator rbegin () const
const_reverse_iterator rend () const
value (const Point< DIMENSION > &p, const unsigned int component=0) const
void vector_value (const Point< DIMENSION > &p, Vector< R > &values) const
void add (const MultivariateLaurentPolynomial< R, DIMENSION > &p)
void add (const R s, const MultivariateLaurentPolynomial< R, DIMENSION > &p)
void sadd (const R s, const MultivariateLaurentPolynomial< R, DIMENSION > &p)
MultivariateLaurentPolynomial
< R, DIMENSION > & 
operator+= (const MultivariateLaurentPolynomial< R, DIMENSION > &p)
MultivariateLaurentPolynomial
< R, DIMENSION > 
operator+ (const MultivariateLaurentPolynomial< R, DIMENSION > &p) const
void subtract (const MultivariateLaurentPolynomial< R, DIMENSION > &p)
MultivariateLaurentPolynomial
< R, DIMENSION > & 
operator-= (const MultivariateLaurentPolynomial< R, DIMENSION > &p)
MultivariateLaurentPolynomial
< R, DIMENSION > 
operator- () const
MultivariateLaurentPolynomial
< R, DIMENSION > 
operator- (const MultivariateLaurentPolynomial< R, DIMENSION > &p) const
MultivariateLaurentPolynomial
< R, DIMENSION > & 
operator*= (const R c)
void multiply (const MultivariateLaurentPolynomial< R, DIMENSION > &p)
MultivariateLaurentPolynomial
< R, DIMENSION > & 
operator*= (const MultivariateLaurentPolynomial< R, DIMENSION > &p)
void dump () const

Detailed Description

template<class R, unsigned int DIMENSION>
class MathTL::MultivariateLaurentPolynomial< R, DIMENSION >

A template class for general multivariate Laurent polynomials, i.e., expressions of the form a(z)={k Z^d} a_k z^k The a_k are elements of a (number) ring R, z is from R^d.

Examples: R= R or C


Member Typedef Documentation

template<class R, unsigned int DIMENSION>
typedef InfiniteVector<R, MultiIndex<int, DIMENSION> >::const_iterator MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::const_iterator

const_iterator scanning the nontrivial coefficients

template<class R, unsigned int DIMENSION>
typedef InfiniteVector<R, MultiIndex<int, DIMENSION> >::const_reverse_iterator MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::const_reverse_iterator

const_reverse_iterator scanning the nontrivial coefficients


Constructor & Destructor Documentation

template<class R , unsigned int DIMENSION>
MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::MultivariateLaurentPolynomial ( )

default constructor, yields zero (Laurent) polynomial

template<class R, unsigned int DIMENSION>
MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::MultivariateLaurentPolynomial ( const MultivariateLaurentPolynomial< R, DIMENSION > &  p)

copy constructor

template<class R, unsigned int DIMENSION>
MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::MultivariateLaurentPolynomial ( const R  c) [explicit]

constructor from a constant

template<class R, unsigned int DIMENSION>
MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::MultivariateLaurentPolynomial ( const LaurentPolynomial< R > &  p,
const unsigned int  n = 0 
)

constructor from a univariate Laurent polynomial, embedding via z -> z_{n+1}

template<class R , unsigned int DIMENSION>
MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::~MultivariateLaurentPolynomial ( ) [virtual]

virtual destructor


Member Function Documentation

template<class R, unsigned int DIMENSION>
void MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::add ( const MultivariateLaurentPolynomial< R, DIMENSION > &  p) [inline]

pointwise sum of two Laurent polynomials *this += p

template<class R, unsigned int DIMENSION>
void MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::add ( const R  s,
const MultivariateLaurentPolynomial< R, DIMENSION > &  p 
) [inline]

pointwise weighted sum of two Laurent polynomials *this += s*p

template<class R , unsigned int DIMENSION>
MultivariateLaurentPolynomial< R, DIMENSION >::const_iterator MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::begin ( ) const [inline]

const_iterator pointing to the first nontrivial coefficient

Reimplemented from MathTL::InfiniteVector< R, MultiIndex< int, DIMENSION > >.

template<class R , unsigned int DIMENSION>
void MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::dump ( ) const

just for testing

template<class R , unsigned int DIMENSION>
MultivariateLaurentPolynomial< R, DIMENSION >::const_iterator MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::end ( ) const [inline]

const_iterator pointing to one behind the last nontrivial coefficient

Reimplemented from MathTL::InfiniteVector< R, MultiIndex< int, DIMENSION > >.

template<class R , unsigned int DIMENSION>
R MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::get_coefficient ( const MultiIndex< int, DIMENSION > &  k) const [inline]

(Polynomial-like) read-only access to single coefficients

Reimplemented from MathTL::InfiniteVector< R, MultiIndex< int, DIMENSION > >.

template<class R, unsigned int DIMENSION>
void MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::multiply ( const MultivariateLaurentPolynomial< R, DIMENSION > &  p)

pointwise multiplication with another Laurent polynomial

template<class R, unsigned int DIMENSION>
MultivariateLaurentPolynomial< R, DIMENSION > & MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::operator*= ( const R  c) [inline]

multiplication with a real number

Reimplemented from MathTL::InfiniteVector< R, MultiIndex< int, DIMENSION > >.

template<class R, unsigned int DIMENSION>
MultivariateLaurentPolynomial< R, DIMENSION > & MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::operator*= ( const MultivariateLaurentPolynomial< R, DIMENSION > &  p) [inline]

pointwise multiplication with another Laurent polynomial

template<class R, unsigned int DIMENSION>
MultivariateLaurentPolynomial< R, DIMENSION > MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::operator+ ( const MultivariateLaurentPolynomial< R, DIMENSION > &  p) const [inline]

pointwise sum of two Laurent polynomials (don't use this extensively, since one copy has to be made!)

template<class R, unsigned int DIMENSION>
MultivariateLaurentPolynomial< R, DIMENSION > & MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::operator+= ( const MultivariateLaurentPolynomial< R, DIMENSION > &  p) [inline]

pointwise sum of two Laurent polynomials

template<class R , unsigned int DIMENSION>
MultivariateLaurentPolynomial< R, DIMENSION > MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::operator- ( ) const [inline]

sign (makes a copy of *this)

template<class R, unsigned int DIMENSION>
MultivariateLaurentPolynomial< R, DIMENSION > MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::operator- ( const MultivariateLaurentPolynomial< R, DIMENSION > &  p) const [inline]

pointwise difference of two Laurent polynomials (don't use this extensively, since one copy has to be made!)

template<class R, unsigned int DIMENSION>
MultivariateLaurentPolynomial< R, DIMENSION > & MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::operator-= ( const MultivariateLaurentPolynomial< R, DIMENSION > &  p) [inline]

pointwise difference of two Laurent polynomials

template<class R, unsigned int DIMENSION>
MultivariateLaurentPolynomial< R, DIMENSION > & MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::operator= ( const MultivariateLaurentPolynomial< R, DIMENSION > &  p)

assignment of another Laurent polynomial

template<class R, unsigned int DIMENSION>
MultivariateLaurentPolynomial< R, DIMENSION > & MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::operator= ( const R  c)

assignment of a constant

template<class R , unsigned int DIMENSION>
MultivariateLaurentPolynomial< R, DIMENSION >::const_reverse_iterator MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::rbegin ( ) const [inline]

const_reverse_iterator pointing to the last nontrivial coefficient

Reimplemented from MathTL::InfiniteVector< R, MultiIndex< int, DIMENSION > >.

template<class R , unsigned int DIMENSION>
MultivariateLaurentPolynomial< R, DIMENSION >::const_reverse_iterator MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::rend ( ) const [inline]

const_reverse_iterator pointing to one before the first nontrivial coefficient

Reimplemented from MathTL::InfiniteVector< R, MultiIndex< int, DIMENSION > >.

template<class R, unsigned int DIMENSION>
void MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::sadd ( const R  s,
const MultivariateLaurentPolynomial< R, DIMENSION > &  p 
) [inline]

pointwise weighted sum of two Laurent polynomials *this = s*(*this) + p

template<class R, unsigned int DIMENSION>
void MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::set_coefficient ( const MultiIndex< int, DIMENSION > &  k,
const R  coeff 
) [inline]

(Polynomial-like) write access to single coefficients

Reimplemented from MathTL::InfiniteVector< R, MultiIndex< int, DIMENSION > >.

template<class R, unsigned int DIMENSION>
void MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::subtract ( const MultivariateLaurentPolynomial< R, DIMENSION > &  p) [inline]

pointwise difference of two Laurent polynomials *this -= p

template<class R , unsigned int DIMENSION>
R MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::value ( const Point< DIMENSION > &  p,
const unsigned int  component = 0 
) const

evaluate the Laurent polynomial

template<class R, unsigned int DIMENSION>
void MathTL::MultivariateLaurentPolynomial< R, DIMENSION >::vector_value ( const Point< DIMENSION > &  p,
Vector< R > &  values 
) const [inline]

evaluate the Laurent polynomial


The documentation for this class was generated from the following files:
 All Classes Functions Variables Typedefs Enumerations