OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
Tps< T > Class Template Reference

Truncated power series. More...

#include <Tps.h>

Collaboration diagram for Tps< T >:

Public Member Functions

 Tps (int maxOrder, int nVar)
 Constructor.
 Tps (const T &y)
 Conversion.
 Tps (int y)
 Conversion.
 Tps ()
 Tps (const Tps< T > &x)
 ~Tps ()
Tps< T > & operator= (const Tps< T > &y)
Tps< T > & operator= (const T &y)
 Convert and assign.
Tps< T > filter (int lowOrder, int highOrder) const
 Extract orders.
Tps< T > truncate (int trunc)
 Truncate.
const T getCoefficient (int index) const
 Get coefficient.
void setCoefficient (int index, const T &value)
 Set coefficient.
const T getCoefficient (const TpsMonomial &monomial) const
 Get coefficient.
void setCoefficient (const TpsMonomial &monomial, const T &value)
 Set coefficient.
const T operator[] (int index) const
 Get coefficient.
T & operator[] (int index)
 Get coefficient.
const T operator[] (const TpsMonomial &monomial) const
 Get coefficient.
T & operator[] (const TpsMonomial &monomial)
 Get coefficient.
Tps< T > operator+ () const
 Unary plus.
Tps< T > operator- () const
 Unary minus.
Tps< T > & operator+= (const Tps< T > &y)
 Add and assign.
Tps< T > & operator-= (const Tps< T > &y)
 Subtract and assign.
Tps< T > & operator*= (const Tps< T > &y)
 Multiply and assign.
Tps< T > & operator/= (const Tps< T > &y)
 Divide and assign.
Tps< T > & operator+= (const T &y)
 Add constant and assign.
Tps< T > & operator-= (const T &y)
 Subtract constant and assign.
Tps< T > & operator*= (const T &y)
 Multiply by constant and assign.
Tps< T > & operator/= (const T &y)
 Divide by constant and assign.
bool operator== (const Tps< T > &y) const
 Equality operator.
bool operator== (const T &y) const
 Equlatity with constant.
bool operator!= (const Tps< T > &y) const
 Inequality operator.
bool operator!= (const T &y) const
 Inequality with constant.
Tps< T > substitute (const Matrix< T > &M) const
 Substitute.
Tps< T > substitute (const VpsMap< T > &m) const
 Substitute.
evaluate (const Vector< T > &v) const
 Substitute.
void clear ()
 Set to zero.
Tps< T > inverse (int order=truncOrder) const
 Reciprocal value.
Tps< T > multiply (const Tps< T > &y, int trunc) const
 Truncated multiplication.
Tps< T > derivative (int var) const
 Partial derivative.
Tps< T > integral (int var) const
 Partial integral.
Tps< T > multiplyVariable (int var) const
 Multiply by variable [b]var[/b].
Tps< T > scaleMonomials (const Tps< T > &y) const
 Multiply monomial-wise.
Tps< T > Taylor (const T series[], int n) const
 Taylor series.
int getMaxOrder () const
 Get maximal order.
int getTruncOrder () const
 Get truncation order.
int getVariables () const
 Get number of variables.
int getSize () const
 Get number of coefficients.
std::istream & get (std::istream &is)
 Get Tps from the stream is.
std::ostream & put (std::ostream &os) const
 Put Tps to the stream is.
const TpsMonomialgetExponents (int index) const
 Get exponents.
int getOrder (int index) const
 Get order.
int getSize (int order) const
 Size.
bool isConstant () const
 Test for constant.

Static Public Member Functions

static Tps< T > makeVariable (int nVar, int var)
 Make variable.
static Tps< T > makeVarPower (int nVar, int var, int power)
 Make power.
static Tps< T > makeMonomial (const TpsMonomial &m, const T &t)
 Make monomial.
static int getGlobalTruncOrder ()
 Get global truncation order.
static void setGlobalTruncOrder (int order)
 Set global truncation order.

Static Public Attributes

static const int EXACT = INT_MAX
 Representation of infinite precision.

Private Member Functions

 Tps (TpsRep< T > *)
void setMaxOrder (int)
void unique ()

Private Attributes

TpsRep< T > * rep

Static Private Attributes

static int truncOrder

Detailed Description

template<class T>
class Tps< T >

Truncated power series.

Definition at line 46 of file Tps.h.

Constructor & Destructor Documentation

◆ Tps() [1/6]

◆ Tps() [2/6]

template<class T>
Tps< T >::Tps ( const T & y)

Conversion.

Definition at line 239 of file Tps.hpp.

References rep.

◆ Tps() [3/6]

template<class T>
Tps< T >::Tps ( int y)

Conversion.

Definition at line 246 of file Tps.hpp.

References rep.

◆ Tps() [4/6]

template<class T>
Tps< T >::Tps ( )

Definition at line 221 of file Tps.hpp.

References rep.

◆ Tps() [5/6]

template<class T>
Tps< T >::Tps ( const Tps< T > & x)

Definition at line 233 of file Tps.hpp.

References rep, and Tps().

Here is the call graph for this function:

◆ ~Tps()

template<class T>
Tps< T >::~Tps ( )

Definition at line 253 of file Tps.hpp.

References TpsRep< T >::release(), and rep.

Here is the call graph for this function:

◆ Tps() [6/6]

template<class T>
Tps< T >::Tps ( TpsRep< T > * d)
inlineprivate

Definition at line 1096 of file Tps.hpp.

References rep.

Member Function Documentation

◆ clear()

template<class T>
void Tps< T >::clear ( )

Set to zero.

Definition at line 714 of file Tps.hpp.

References TpsRep< T >::release(), rep, and TpsRep< T >::zero().

Here is the call graph for this function:

◆ derivative()

template<class T>
Tps< T > Tps< T >::derivative ( int var) const

Partial derivative.

Definition at line 920 of file Tps.hpp.

References TpsRep< T >::create(), TpsRep< T >::data(), getExponents(), getMaxOrder(), getSize(), getTruncOrder(), getVariables(), rep, Tps(), and TpsRep< T >::zero().

Here is the call graph for this function:

◆ evaluate()

template<class T>
T Tps< T >::evaluate ( const Vector< T > & v) const

Substitute.

Definition at line 686 of file Tps.hpp.

References getMaxOrder(), getVariables(), TpsSubstitution::index, TpsSubstitution::order, rep, Array1D< T >::size(), TpsSubstitution::skip, and TpsSubstitution::variable.

Here is the call graph for this function:

◆ filter()

template<class T>
Tps< T > Tps< T >::filter ( int lowOrder,
int highOrder ) const

Extract orders.

Definition at line 279 of file Tps.hpp.

References TpsRep< T >::create(), TpsRep< T >::data(), getMaxOrder(), getSize(), getTruncOrder(), getVariables(), rep, and Tps().

Referenced by truncate().

Here is the call graph for this function:

◆ get()

template<class T>
std::istream & Tps< T >::get ( std::istream & is)

Get Tps from the stream is.

Definition at line 721 of file Tps.hpp.

References TpsRep< T >::create(), TpsMonomial::getIndex(), setMaxOrder(), Tps(), and truncOrder.

Referenced by operator>>().

Here is the call graph for this function:

◆ getCoefficient() [1/2]

template<class T>
const T Tps< T >::getCoefficient ( const TpsMonomial & monomial) const

Get coefficient.

Definition at line 355 of file Tps.hpp.

References getCoefficient(), TpsMonomial::getIndex(), getVariables(), and TpsMonomial::getVariables().

Here is the call graph for this function:

◆ getCoefficient() [2/2]

template<class T>
const T Tps< T >::getCoefficient ( int index) const

Get coefficient.

Definition at line 327 of file Tps.hpp.

References rep.

Referenced by getCoefficient().

◆ getExponents()

template<class T>
const TpsMonomial & Tps< T >::getExponents ( int index) const

Get exponents.

Definition at line 1073 of file Tps.hpp.

References rep.

Referenced by derivative(), integral(), and put().

◆ getGlobalTruncOrder()

template<class T>
int Tps< T >::getGlobalTruncOrder ( )
static

Get global truncation order.

Definition at line 1061 of file Tps.hpp.

References truncOrder.

Referenced by operator/(), and Vps< T >::operator/=().

◆ getMaxOrder()

template<class T>
int Tps< T >::getMaxOrder ( ) const

◆ getOrder()

template<class T>
int Tps< T >::getOrder ( int index) const

Get order.

Definition at line 1084 of file Tps.hpp.

References rep.

Referenced by setCoefficient().

◆ getSize() [1/2]

template<class T>
int Tps< T >::getSize ( ) const

Get number of coefficients.

Definition at line 1049 of file Tps.hpp.

References rep.

Referenced by derivative(), filter(), integral(), multiply(), multiplyVariable(), operator+=(), operator-=(), operator==(), operator==(), and put().

◆ getSize() [2/2]

template<class T>
int Tps< T >::getSize ( int order) const

Size.

Definition at line 1090 of file Tps.hpp.

References rep.

◆ getTruncOrder()

template<class T>
int Tps< T >::getTruncOrder ( ) const

◆ getVariables()

template<class T>
int Tps< T >::getVariables ( ) const

◆ integral()

template<class T>
Tps< T > Tps< T >::integral ( int var) const

Partial integral.

Definition at line 946 of file Tps.hpp.

References TpsRep< T >::create(), TpsRep< T >::data(), getExponents(), getSize(), getVariables(), rep, Tps(), and truncOrder.

Here is the call graph for this function:

◆ inverse()

template<class T>
Tps< T > Tps< T >::inverse ( int order = truncOrder) const

Reciprocal value.

Definition at line 897 of file Tps.hpp.

References getTruncOrder(), isConstant(), rep, Taylor(), and Tps().

Referenced by csc(), operator/(), operator/=(), Vps< T >::operator/=(), pow(), and sec().

Here is the call graph for this function:

◆ isConstant()

template<class T>
bool Tps< T >::isConstant ( ) const

Test for constant.

Definition at line 1055 of file Tps.hpp.

References rep.

Referenced by inverse(), and Taylor().

◆ makeMonomial()

template<class T>
Tps< T > Tps< T >::makeMonomial ( const TpsMonomial & m,
const T & t )
static

Make monomial.

Definition at line 401 of file Tps.hpp.

References TpsRep< T >::create(), EXACT, TpsMonomial::getOrder(), TpsMonomial::getVariables(), and Tps().

Here is the call graph for this function:

◆ makeVariable()

template<class T>
Tps< T > Tps< T >::makeVariable ( int nVar,
int var )
static

Make variable.

Definition at line 383 of file Tps.hpp.

References TpsRep< T >::create(), TpsRep< T >::data(), EXACT, and Tps().

Here is the call graph for this function:

◆ makeVarPower()

template<class T>
Tps< T > Tps< T >::makeVarPower ( int nVar,
int var,
int power )
static

Make power.

Definition at line 391 of file Tps.hpp.

References TpsRep< T >::create(), EXACT, and Tps().

Here is the call graph for this function:

◆ multiply()

template<class T>
Tps< T > Tps< T >::multiply ( const Tps< T > & y,
int trunc ) const

Truncated multiplication.

Definition at line 823 of file Tps.hpp.

References TpsRep< T >::create(), TpsRep< T >::data(), EXACT, getMaxOrder(), getSize(), getTruncOrder(), getVariables(), prod(), rep, and Tps().

Referenced by operator*=(), operator/=(), and Taylor().

Here is the call graph for this function:

◆ multiplyVariable()

template<class T>
Tps< T > Tps< T >::multiplyVariable ( int var) const

Multiply by variable [b]var[/b].

Definition at line 969 of file Tps.hpp.

References TpsRep< T >::create(), TpsRep< T >::data(), getSize(), getVariables(), rep, Tps(), and truncOrder.

Here is the call graph for this function:

◆ operator!=() [1/2]

template<class T>
bool Tps< T >::operator!= ( const T & y) const

Inequality with constant.

Definition at line 608 of file Tps.hpp.

◆ operator!=() [2/2]

template<class T>
bool Tps< T >::operator!= ( const Tps< T > & y) const

Inequality operator.

Definition at line 602 of file Tps.hpp.

References Tps().

Here is the call graph for this function:

◆ operator*=() [1/2]

template<class T>
Tps< T > & Tps< T >::operator*= ( const T & y)

Multiply by constant and assign.

Definition at line 527 of file Tps.hpp.

References rep, Tps(), and unique().

Here is the call graph for this function:

◆ operator*=() [2/2]

template<class T>
Tps< T > & Tps< T >::operator*= ( const Tps< T > & y)

Multiply and assign.

Definition at line 499 of file Tps.hpp.

References multiply(), Tps(), and truncOrder.

Here is the call graph for this function:

◆ operator+()

template<class T>
Tps< T > Tps< T >::operator+ ( ) const

Unary plus.

Definition at line 411 of file Tps.hpp.

References Tps().

Here is the call graph for this function:

◆ operator+=() [1/2]

template<class T>
Tps< T > & Tps< T >::operator+= ( const T & y)

Add constant and assign.

Definition at line 511 of file Tps.hpp.

References rep, Tps(), and unique().

Here is the call graph for this function:

◆ operator+=() [2/2]

template<class T>
Tps< T > & Tps< T >::operator+= ( const Tps< T > & y)

Add and assign.

Definition at line 427 of file Tps.hpp.

References TpsRep< T >::create(), TpsRep< T >::data(), getMaxOrder(), getSize(), getTruncOrder(), getVariables(), TpsRep< T >::release(), rep, Tps(), and unique().

Here is the call graph for this function:

◆ operator-()

template<class T>
Tps< T > Tps< T >::operator- ( ) const

Unary minus.

Definition at line 417 of file Tps.hpp.

References TpsRep< T >::create(), TpsRep< T >::data(), getMaxOrder(), getTruncOrder(), getVariables(), rep, and Tps().

Here is the call graph for this function:

◆ operator-=() [1/2]

template<class T>
Tps< T > & Tps< T >::operator-= ( const T & y)

Subtract constant and assign.

Definition at line 519 of file Tps.hpp.

References rep, Tps(), and unique().

Here is the call graph for this function:

◆ operator-=() [2/2]

template<class T>
Tps< T > & Tps< T >::operator-= ( const Tps< T > & y)

Subtract and assign.

Definition at line 462 of file Tps.hpp.

References TpsRep< T >::create(), TpsRep< T >::data(), getMaxOrder(), getSize(), getTruncOrder(), getVariables(), TpsRep< T >::release(), rep, Tps(), and unique().

Here is the call graph for this function:

◆ operator/=() [1/2]

template<class T>
Tps< T > & Tps< T >::operator/= ( const T & y)

Divide by constant and assign.

Definition at line 536 of file Tps.hpp.

References rep, and Tps().

Here is the call graph for this function:

◆ operator/=() [2/2]

template<class T>
Tps< T > & Tps< T >::operator/= ( const Tps< T > & y)

Divide and assign.

Definition at line 505 of file Tps.hpp.

References inverse(), multiply(), Tps(), and truncOrder.

Here is the call graph for this function:

◆ operator=() [1/2]

template<class T>
Tps< T > & Tps< T >::operator= ( const T & y)

Convert and assign.

Definition at line 270 of file Tps.hpp.

References TpsRep< T >::release(), rep, Tps(), and TpsRep< T >::zero().

Here is the call graph for this function:

◆ operator=() [2/2]

template<class T>
Tps< T > & Tps< T >::operator= ( const Tps< T > & y)

Definition at line 259 of file Tps.hpp.

References TpsRep< T >::release(), rep, and Tps().

Here is the call graph for this function:

◆ operator==() [1/2]

template<class T>
bool Tps< T >::operator== ( const T & y) const

Equlatity with constant.

Definition at line 588 of file Tps.hpp.

References getSize(), and rep.

Here is the call graph for this function:

◆ operator==() [2/2]

template<class T>
bool Tps< T >::operator== ( const Tps< T > & y) const

Equality operator.

Definition at line 545 of file Tps.hpp.

References getMaxOrder(), getSize(), getTruncOrder(), getVariables(), rep, and Tps().

Here is the call graph for this function:

◆ operator[]() [1/4]

template<class T>
T & Tps< T >::operator[] ( const TpsMonomial & monomial)

Get coefficient.

Definition at line 320 of file Tps.hpp.

References TpsMonomial::getIndex(), rep, and unique().

Here is the call graph for this function:

◆ operator[]() [2/4]

template<class T>
const T Tps< T >::operator[] ( const TpsMonomial & monomial) const

Get coefficient.

Definition at line 314 of file Tps.hpp.

References TpsMonomial::getIndex(), and rep.

Here is the call graph for this function:

◆ operator[]() [3/4]

template<class T>
T & Tps< T >::operator[] ( int index)

Get coefficient.

Definition at line 307 of file Tps.hpp.

References rep, and unique().

Here is the call graph for this function:

◆ operator[]() [4/4]

template<class T>
const T Tps< T >::operator[] ( int index) const

Get coefficient.

Definition at line 301 of file Tps.hpp.

References rep.

◆ put()

template<class T>
std::ostream & Tps< T >::put ( std::ostream & os) const

Put Tps to the stream is.

Definition at line 784 of file Tps.hpp.

References getExponents(), getMaxOrder(), getSize(), getTruncOrder(), getVariables(), and rep.

Referenced by operator<<().

Here is the call graph for this function:

◆ scaleMonomials()

template<class T>
Tps< T > Tps< T >::scaleMonomials ( const Tps< T > & y) const

Multiply monomial-wise.

Definition at line 992 of file Tps.hpp.

References TpsRep< T >::create(), TpsRep< T >::data(), getMaxOrder(), getTruncOrder(), getVariables(), TpsRep< T >::len, rep, and Tps().

Here is the call graph for this function:

◆ setCoefficient() [1/2]

template<class T>
void Tps< T >::setCoefficient ( const TpsMonomial & monomial,
const T & value )

Set coefficient.

Definition at line 369 of file Tps.hpp.

References TpsMonomial::getIndex(), getVariables(), TpsMonomial::getVariables(), and setCoefficient().

Here is the call graph for this function:

◆ setCoefficient() [2/2]

template<class T>
void Tps< T >::setCoefficient ( int index,
const T & value )

Set coefficient.

Definition at line 337 of file Tps.hpp.

References TpsRep< T >::create(), TpsRep< T >::data(), getOrder(), getVariables(), TpsRep< T >::release(), rep, and unique().

Referenced by setCoefficient().

Here is the call graph for this function:

◆ setGlobalTruncOrder()

template<class T>
void Tps< T >::setGlobalTruncOrder ( int order)
static

Set global truncation order.

Definition at line 1067 of file Tps.hpp.

References truncOrder.

◆ setMaxOrder()

template<class T>
void Tps< T >::setMaxOrder ( int order)
inlineprivate

Definition at line 49 of file Tps.hpp.

References rep.

Referenced by get().

◆ substitute() [1/2]

template<class T>
Tps< T > Tps< T >::substitute ( const Matrix< T > & M) const

Substitute.

Definition at line 614 of file Tps.hpp.

References getMaxOrder(), getVariables(), TpsSubstitution::index, Array2D< T >::ncols(), Array2D< T >::nrows(), TpsSubstitution::order, rep, Array1D< T >::size(), TpsSubstitution::skip, Tps(), and TpsSubstitution::variable.

Here is the call graph for this function:

◆ substitute() [2/2]

template<class T>
Tps< T > Tps< T >::substitute ( const VpsMap< T > & m) const

Substitute.

Definition at line 657 of file Tps.hpp.

References Vps< T >::getDimension(), getMaxOrder(), getTruncOrder(), getVariables(), TpsSubstitution::index, TpsSubstitution::order, rep, Array1D< T >::size(), TpsSubstitution::skip, Tps(), and TpsSubstitution::variable.

Here is the call graph for this function:

◆ Taylor()

template<class T>
Tps< T > Tps< T >::Taylor ( const T series[],
int n ) const

Taylor series.

Definition at line 1014 of file Tps.hpp.

References isConstant(), multiply(), and Tps().

Referenced by cos(), cosh(), exp(), inverse(), log(), sin(), sinh(), and sqrt().

Here is the call graph for this function:

◆ truncate()

template<class T>
Tps< T > Tps< T >::truncate ( int trunc)

Truncate.

Definition at line 295 of file Tps.hpp.

References filter(), and Tps().

Here is the call graph for this function:

◆ unique()

template<class T>
void Tps< T >::unique ( )
inlineprivate

Definition at line 55 of file Tps.hpp.

References rep.

Referenced by operator*=(), operator+=(), operator+=(), operator-=(), operator-=(), operator[](), operator[](), and setCoefficient().

Member Data Documentation

◆ EXACT

template<class T>
const int Tps< T >::EXACT = INT_MAX
static

Representation of infinite precision.

Definition at line 260 of file Tps.h.

Referenced by makeMonomial(), makeVariable(), makeVarPower(), multiply(), Tps(), and TpsRep< T >::zero().

◆ rep

◆ truncOrder

template<class T>
int Tps< T >::truncOrder
staticprivate

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