OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
FVps< T, N > Class Template Reference

Vector truncated power series in n variables. More...

#include <FVps.h>

Inheritance diagram for FVps< T, N >:
Collaboration diagram for FVps< T, N >:

Public Member Functions

 FVps (int minOrder, int maxOrder, int trcOrder)
 Constructor.
 FVps (const FMatrix< T, N, N > &M)
 Convert from matrix.
 FVps (const FVector< T, N > &V)
 Convert from vector.
 FVps (const LinearMap< T, N > &rhs)
 Convert from linear map.
 FVps (const TransportMap< T, N > &rhs)
 Convert from second-order map.
 FVps ()
 FVps (const FVps &)
 ~FVps ()
const FVpsoperator= (const FVps &)
void identity ()
 Set to identity.
void zero ()
 Set to zero.
const FTps< T, N > & getComponent (int n) const
 Get component.
void setComponent (int, const FTps< T, N > &)
 Set component.
const FTps< T, N > & operator[] (int) const
 Get Component.
FTps< T, N > & operator[] (int)
 Get (Set) component.
int getDimension () const
 Get dimension.
int getVariables () const
 Get number of variables.
int getMinOrder () const
 Get lowest order contained in any component.
void setMinOrder (int order)
 Set minimum order.
int getMaxOrder () const
 Get highest order contained in any component.
void setMaxOrder (int order)
 Set maximum order.
int getTopOrder () const
 Get highest order contained in any component.
int getTruncOrder () const
 Get lowest truncation order in any component.
void setTruncOrder (int order)
 Set truncation order for all components.
FVps filter (int minOrder, int maxOrder, int trcOrder=(FTps< T, N >::EXACT)) const
 Extract given range of orders, with truncation.
FVps truncate (int trunc)
 Truncate.
FVps operator+ () const
 Unary plus.
FVps operator- () const
 Unary minus.
FVpsoperator+= (const FVps &rhs)
 Add and assign.
FVpsoperator-= (const FVps &rhs)
 Subtract and assign.
FVpsoperator+= (const FVector< T, N > &)
 Add and assign.
FVpsoperator-= (const FVector< T, N > &)
 Subtract and assign.
FVpsoperator*= (const FTps< T, N > &rhs)
 Multiply and assign.
FVps operator* (const FVps< T, N > &rhs) const
 Multiply.
FVpsoperator/= (const FTps< T, N > &rhs)
 Divide and assign.
FVpsoperator*= (const T &rhs)
 Multiply and assign.
FVpsoperator/= (const T &rhs)
 Divide and assign.
FVps inverse (int trunc=(FTps< T, N >::EXACT)) const
 Inverse.
FVps myInverse (int trunc=(FTps< T, N >::EXACT)) const
 Inverse.
FVps derivative (int var) const
 Partial derivative.
FVps integral (int var) const
 Partial integral.
FVector< T, N > constantTerm () const
 Extract the constant part of the map.
FVector< T, N > constantTerm (const FVector< T, N > &P) const
 Extract the constant part of the map expanded about point [b]P[/b].
FMatrix< T, N, N > linearTerms () const
 Extract the linear part of the map.
FMatrix< T, N, N > linearTerms (const FVector< T, N > &P) const
 Extract the linear part of the map expanded about point [b]P[/b].
Array1D< int > getSubstOrders (const FVps< T, N > &rhs, int trunc=(FTps< T, N >::EXACT)) const
 Return orders {min, max, trc} of f(rhs(z)).
FVps substitute (const FMatrix< T, N, N > &M, int n) const
 Substitute.
FVps substitute (const FMatrix< T, N, N > &M, int nl, int nh) const
 Substitute.
FVps substitute (const FMatrix< T, N, N > &M) const
 Substitute.
FVps substitute (const FVps< T, N > &m, int trunc=(FTps< T, N >::EXACT)) const
 Substitute.
FVps substituteInto (const FMatrix< T, N, N > &lhs) const
 Substitute map into matrix.
FTps< T, N > getFTps (const FArray1D< int, N > &power) const
 Get a FTps that is a combination of the polynomials of FVps.
std::istream & get (std::istream &is)
 Get a FVps from stream [b]is[/b].
std::ostream & put (std::ostream &os) const
 Put a FVps to stream [b]os[/b].

Protected Attributes

FTps< T, N > data [N]

Detailed Description

template<class T, int N>
class FVps< T, N >

Vector truncated power series in n variables.

Definition at line 39 of file FVps.h.

Constructor & Destructor Documentation

◆ FVps() [1/7]

template<class T, int N>
FVps< T, N >::FVps ( int minOrder,
int maxOrder,
int trcOrder )
explicit

◆ FVps() [2/7]

template<class T, int N>
FVps< T, N >::FVps ( const FMatrix< T, N, N > & M)
explicit

Convert from matrix.

Definition at line 85 of file FVps.hpp.

References data, and identity().

Here is the call graph for this function:

◆ FVps() [3/7]

template<class T, int N>
FVps< T, N >::FVps ( const FVector< T, N > & V)
explicit

Convert from vector.

Definition at line 93 of file FVps.hpp.

◆ FVps() [4/7]

template<class T, int N>
FVps< T, N >::FVps ( const LinearMap< T, N > & rhs)
explicit

Convert from linear map.

Definition at line 58 of file FVps.hpp.

References data, and identity().

Here is the call graph for this function:

◆ FVps() [5/7]

template<class T, int N>
FVps< T, N >::FVps ( const TransportMap< T, N > & rhs)
explicit

Convert from second-order map.

Definition at line 68 of file FVps.hpp.

References data, FTpsData< N >::getSize(), and SIZE.

Here is the call graph for this function:

◆ FVps() [6/7]

template<class T, int N>
FVps< T, N >::FVps ( )

Definition at line 46 of file FVps.hpp.

References identity().

Here is the call graph for this function:

◆ FVps() [7/7]

template<class T, int N>
FVps< T, N >::FVps ( const FVps< T, N > & rhs)

Definition at line 52 of file FVps.hpp.

References data, and FVps().

Here is the call graph for this function:

◆ ~FVps()

template<class T, int N>
FVps< T, N >::~FVps ( )

Definition at line 99 of file FVps.hpp.

Member Function Documentation

◆ constantTerm() [1/2]

template<class T, int N>
FVector< T, N > FVps< T, N >::constantTerm ( ) const

Extract the constant part of the map.

Definition at line 540 of file FVps.hpp.

References data, and getMinOrder().

Referenced by inverse(), and myInverse().

Here is the call graph for this function:

◆ constantTerm() [2/2]

template<class T, int N>
FVector< T, N > FVps< T, N >::constantTerm ( const FVector< T, N > & P) const

Extract the constant part of the map expanded about point [b]P[/b].

Definition at line 551 of file FVps.hpp.

◆ derivative()

template<class T, int N>
FVps< T, N > FVps< T, N >::derivative ( int var) const

Partial derivative.

Definition at line 524 of file FVps.hpp.

References data, derivative(), and FVps().

Referenced by derivative(), and FTps< T, N >::gradient().

Here is the call graph for this function:

◆ filter()

template<class T, int N>
FVps< T, N > FVps< T, N >::filter ( int minOrder,
int maxOrder,
int trcOrder = (FTps<T, N>::EXACT) ) const

Extract given range of orders, with truncation.

Definition at line 223 of file FVps.hpp.

References data, filter(), and FVps().

Referenced by filter(), inverse(), myInverse(), FTps< T, N >::truncate(), and truncate().

Here is the call graph for this function:

◆ get()

template<class T, int N>
std::istream & FVps< T, N >::get ( std::istream & is)

Get a FVps from stream [b]is[/b].

Definition at line 1057 of file FVps.hpp.

References data, FVps(), and get().

Referenced by get(), and operator>>().

Here is the call graph for this function:

◆ getComponent()

template<class T, int N>
const FTps< T, N > & FVps< T, N >::getComponent ( int n) const

Get component.

Definition at line 123 of file FVps.hpp.

References data.

Referenced by getFTps(), operator*(), and operator*().

◆ getDimension()

template<class T, int N>
int FVps< T, N >::getDimension ( ) const
inline

Get dimension.

Definition at line 153 of file FVps.hpp.

◆ getFTps()

template<class T, int N>
FTps< T, N > FVps< T, N >::getFTps ( const FArray1D< int, N > & power) const

Get a FTps that is a combination of the polynomials of FVps.

Definition at line 1034 of file FVps.hpp.

References FArray1D< T, N >::begin(), FArray1D< T, N >::end(), getComponent(), FTps< T, N >::getGlobalTruncOrder(), and FTps< T, N >::multiply().

Here is the call graph for this function:

◆ getMaxOrder()

◆ getMinOrder()

◆ getSubstOrders()

template<class T, int N>
Array1D< int > FVps< T, N >::getSubstOrders ( const FVps< T, N > & rhs,
int trunc = (FTps<T, N>::EXACT) ) const

Return orders {min, max, trc} of f(rhs(z)).

Definition at line 594 of file FVps.hpp.

References FVps(), getMaxOrder(), getMinOrder(), FTps< T, N >::getSubstOrders(), and getTruncOrder().

Referenced by FTps< T, N >::getSubstOrders(), FTps< T, N >::substitute(), and substitute().

Here is the call graph for this function:

◆ getTopOrder()

template<class T, int N>
int FVps< T, N >::getTopOrder ( ) const

Get highest order contained in any component.

Definition at line 197 of file FVps.hpp.

References data, FTpsData< N >::topOrder, and FTps< T, N >::getMaxOrder().

Here is the call graph for this function:

◆ getTruncOrder()

template<class T, int N>
int FVps< T, N >::getTruncOrder ( ) const

Get lowest truncation order in any component.

Definition at line 207 of file FVps.hpp.

References data, and FTps< T, N >::getTruncOrder().

Referenced by FTps< T, N >::derivative(), FTps< T, N >::divide(), ExpMap(), FTps< T, N >::getSubstOrders(), getSubstOrders(), FTps< T, N >::integral(), inverse(), FTps< T, N >::multiplyVariable(), myInverse(), FTps< T, N >::operator-(), FTps< T, N >::operator==(), FTps< T, N >::scaleMonomials(), FTps< T, N >::substitute(), FTps< T, N >::substitute(), substitute(), substitute(), and substitute().

Here is the call graph for this function:

◆ getVariables()

template<class T, int N>
int FVps< T, N >::getVariables ( ) const
inline

Get number of variables.

Definition at line 159 of file FVps.hpp.

◆ identity()

template<class T, int N>
void FVps< T, N >::identity ( )

Set to identity.

Definition at line 111 of file FVps.hpp.

Referenced by FVps(), FVps(), and FVps().

◆ integral()

template<class T, int N>
FVps< T, N > FVps< T, N >::integral ( int var) const

Partial integral.

Definition at line 532 of file FVps.hpp.

References data, FVps(), and integral().

Referenced by integral().

Here is the call graph for this function:

◆ inverse()

template<class T, int N>
FVps< T, N > FVps< T, N >::inverse ( int trunc = (FTps<T, N>::EXACT)) const

Inverse.

Definition at line 360 of file FVps.hpp.

References constantTerm(), FTps< T, N >::EXACT, filter(), FVps(), getMaxOrder(), getMinOrder(), getTruncOrder(), FLUMatrix< T, N >::inverse(), linearTerms(), setTruncOrder(), and substitute().

Here is the call graph for this function:

◆ linearTerms() [1/2]

template<class T, int N>
FMatrix< T, N, N > FVps< T, N >::linearTerms ( ) const

Extract the linear part of the map.

Definition at line 561 of file FVps.hpp.

References data.

Referenced by inverse(), myInverse(), and ThickTracker::track_m().

◆ linearTerms() [2/2]

template<class T, int N>
FMatrix< T, N, N > FVps< T, N >::linearTerms ( const FVector< T, N > & P) const

Extract the linear part of the map expanded about point [b]P[/b].

Definition at line 570 of file FVps.hpp.

References Array1D< T >::begin(), FTps< T, N >::begin(), data, FTps< T, N >::evalMonoms(), FTps< T, N >::getMaxOrder(), getMaxOrder(), FTps< T, N >::getMinOrder(), FTps< T, N >::orderEnd(), and FTps< T, N >::orderStart().

Here is the call graph for this function:

◆ myInverse()

template<class T, int N>
FVps< T, N > FVps< T, N >::myInverse ( int trunc = (FTps<T, N>::EXACT)) const

Inverse.

Definition at line 441 of file FVps.hpp.

References constantTerm(), FTps< T, N >::EXACT, filter(), FVps(), getMaxOrder(), getMinOrder(), getTruncOrder(), FLUMatrix< T, N >::inverse(), linearTerms(), setTruncOrder(), and substitute().

Here is the call graph for this function:

◆ operator*()

template<class T, int N>
FVps< T, N > FVps< T, N >::operator* ( const FVps< T, N > & rhs) const

Multiply.

Definition at line 288 of file FVps.hpp.

References FTps< T, N >::extractExponents(), FVps(), FTps< T, N >::getCoefficient(), getComponent(), FTps< T, N >::getGlobalTruncOrder(), FTps< T, N >::getListOfNonzeroCoefficients(), FTps< T, N >::getMinOrder(), FTps< T, N >::makePower(), FTps< T, N >::multiply(), setComponent(), and FTps< T, N >::setMinOrder().

Here is the call graph for this function:

◆ operator*=() [1/2]

template<class T, int N>
FVps< T, N > & FVps< T, N >::operator*= ( const FTps< T, N > & rhs)

Multiply and assign.

Definition at line 282 of file FVps.hpp.

References data, and FVps().

Here is the call graph for this function:

◆ operator*=() [2/2]

template<class T, int N>
FVps< T, N > & FVps< T, N >::operator*= ( const T & rhs)

Multiply and assign.

Definition at line 346 of file FVps.hpp.

References data, and FVps().

Here is the call graph for this function:

◆ operator+()

template<class T, int N>
FVps< T, N > FVps< T, N >::operator+ ( ) const

Unary plus.

Definition at line 240 of file FVps.hpp.

References FVps().

Here is the call graph for this function:

◆ operator+=() [1/2]

template<class T, int N>
FVps< T, N > & FVps< T, N >::operator+= ( const FVector< T, N > & rhs)

Add and assign.

Definition at line 268 of file FVps.hpp.

References data, and FVps().

Here is the call graph for this function:

◆ operator+=() [2/2]

template<class T, int N>
FVps< T, N > & FVps< T, N >::operator+= ( const FVps< T, N > & rhs)

Add and assign.

Definition at line 254 of file FVps.hpp.

References data, and FVps().

Here is the call graph for this function:

◆ operator-()

template<class T, int N>
FVps< T, N > FVps< T, N >::operator- ( ) const

Unary minus.

Definition at line 246 of file FVps.hpp.

References data, and FVps().

Here is the call graph for this function:

◆ operator-=() [1/2]

template<class T, int N>
FVps< T, N > & FVps< T, N >::operator-= ( const FVector< T, N > & rhs)

Subtract and assign.

Definition at line 275 of file FVps.hpp.

References data, and FVps().

Here is the call graph for this function:

◆ operator-=() [2/2]

template<class T, int N>
FVps< T, N > & FVps< T, N >::operator-= ( const FVps< T, N > & rhs)

Subtract and assign.

Definition at line 261 of file FVps.hpp.

References data, and FVps().

Here is the call graph for this function:

◆ operator/=() [1/2]

template<class T, int N>
FVps< T, N > & FVps< T, N >::operator/= ( const FTps< T, N > & rhs)

Divide and assign.

Definition at line 338 of file FVps.hpp.

References data, FVps(), and FTps< T, N >::inverse().

Here is the call graph for this function:

◆ operator/=() [2/2]

template<class T, int N>
FVps< T, N > & FVps< T, N >::operator/= ( const T & rhs)

Divide and assign.

Definition at line 353 of file FVps.hpp.

References data, and FVps().

Here is the call graph for this function:

◆ operator=()

template<class T, int N>
const FVps< T, N > & FVps< T, N >::operator= ( const FVps< T, N > & rhs)

Definition at line 104 of file FVps.hpp.

References data, and FVps().

Here is the call graph for this function:

◆ operator[]() [1/2]

template<class T, int N>
FTps< T, N > & FVps< T, N >::operator[] ( int index)
inline

Get (Set) component.

Definition at line 147 of file FVps.hpp.

References data.

◆ operator[]() [2/2]

template<class T, int N>
const FTps< T, N > & FVps< T, N >::operator[] ( int index) const
inline

Get Component.

Definition at line 141 of file FVps.hpp.

References data.

◆ put()

template<class T, int N>
std::ostream & FVps< T, N >::put ( std::ostream & os) const

Put a FVps to stream [b]os[/b].

Definition at line 1078 of file FVps.hpp.

References data.

Referenced by operator<<().

◆ setComponent()

template<class T, int N>
void FVps< T, N >::setComponent ( int index,
const FTps< T, N > & value )

Set component.

Definition at line 132 of file FVps.hpp.

References data.

Referenced by operator*().

◆ setMaxOrder()

template<class T, int N>
void FVps< T, N >::setMaxOrder ( int order)

Set maximum order.

Definition at line 191 of file FVps.hpp.

References data, and setMaxOrder().

Referenced by FTps< T, N >::setCoefficient(), setMaxOrder(), substitute(), substitute(), and substitute().

Here is the call graph for this function:

◆ setMinOrder()

template<class T, int N>
void FVps< T, N >::setMinOrder ( int order)

Set minimum order.

Definition at line 175 of file FVps.hpp.

References data, and setMinOrder().

Referenced by FTps< T, N >::operator+=(), FTps< T, N >::operator-=(), FTps< T, N >::setCoefficient(), setMinOrder(), substitute(), substitute(), and substitute().

Here is the call graph for this function:

◆ setTruncOrder()

template<class T, int N>
void FVps< T, N >::setTruncOrder ( int order)

Set truncation order for all components.

Definition at line 217 of file FVps.hpp.

References data, and setTruncOrder().

Referenced by inverse(), myInverse(), setTruncOrder(), substitute(), substitute(), and substitute().

Here is the call graph for this function:

◆ substitute() [1/4]

template<class T, int N>
FVps< T, N > FVps< T, N >::substitute ( const FMatrix< T, N, N > & M) const

Substitute.

Definition at line 889 of file FVps.hpp.

References FVps(), getMaxOrder(), getMinOrder(), and substitute().

Here is the call graph for this function:

◆ substitute() [2/4]

template<class T, int N>
FVps< T, N > FVps< T, N >::substitute ( const FMatrix< T, N, N > & M,
int n ) const

Substitute.

Definition at line 608 of file FVps.hpp.

References begin(), end(), FVps(), FTps< T, N >::getGlobalTruncOrder(), getMaxOrder(), getMinOrder(), FTpsData< N >::getProductArray(), FTps< T, N >::getSize(), getTruncOrder(), FTpsData< N >::getVariableList(), FTps< T, N >::orderEnd(), FTps< T, N >::orderStart(), prod(), setMaxOrder(), setMinOrder(), and setTruncOrder().

Referenced by inverse(), myInverse(), FTps< T, N >::substitute(), and substitute().

Here is the call graph for this function:

◆ substitute() [3/4]

template<class T, int N>
FVps< T, N > FVps< T, N >::substitute ( const FMatrix< T, N, N > & M,
int nl,
int nh ) const

Substitute.

Definition at line 728 of file FVps.hpp.

References begin(), end(), FVps(), FTps< T, N >::getGlobalTruncOrder(), getMaxOrder(), getMinOrder(), FTpsData< N >::getProductArray(), FTps< T, N >::getSize(), getTruncOrder(), FTpsData< N >::getVariableList(), FTps< T, N >::orderEnd(), FTps< T, N >::orderStart(), prod(), setMaxOrder(), setMinOrder(), and setTruncOrder().

Here is the call graph for this function:

◆ substitute() [4/4]

template<class T, int N>
FVps< T, N > FVps< T, N >::substitute ( const FVps< T, N > & m,
int trunc = (FTps<T, N>::EXACT) ) const

Substitute.

Definition at line 895 of file FVps.hpp.

References begin(), FTps< T, N >::EXACT, FVps(), FTps< T, N >::getGlobalTruncOrder(), getMaxOrder(), getMinOrder(), getSubstOrders(), getTruncOrder(), FTpsData< N >::getVariableList(), FTps< T, N >::orderEnd(), FTps< T, N >::orderStart(), setMaxOrder(), setMinOrder(), and setTruncOrder().

Here is the call graph for this function:

◆ substituteInto()

template<class T, int N>
FVps< T, N > FVps< T, N >::substituteInto ( const FMatrix< T, N, N > & lhs) const

Substitute map into matrix.

Definition at line 1021 of file FVps.hpp.

References data, FVps(), and sum().

Referenced by operator*().

Here is the call graph for this function:

◆ truncate()

template<class T, int N>
FVps< T, N > FVps< T, N >::truncate ( int trunc)

Truncate.

Definition at line 234 of file FVps.hpp.

References filter(), and FVps().

Referenced by ThickTracker::concatenateMaps_m(), and ThickTracker::track_m().

Here is the call graph for this function:

◆ zero()

template<class T, int N>
void FVps< T, N >::zero ( )

Set to zero.

Definition at line 117 of file FVps.hpp.

References data.

Member Data Documentation

◆ data


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