OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
Public Member Functions | Protected Attributes | List of all members
FVps< T, N > Class Template Reference

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

#include <FVps.h>

Public Member Functions

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

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

Constructor.

Definition at line 78 of file FVps.hpp.

◆ 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.

◆ 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 Attrib::Legacy::Distribution::T.

◆ 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 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.

◆ 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 FVps< T, N >::data.

◆ ~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

Extract the constant part of the map.

Definition at line 540 of file FVps.hpp.

References Attrib::Legacy::Distribution::T.

◆ 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.

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

◆ 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.

Referenced by FTps< T, N >::truncate().

◆ 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.

Referenced by operator>>().

◆ 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.

Referenced by operator*(), and FVps< T, N >::operator*().

◆ getDimension()

template<class T , int N>
int FVps< T, N >::getDimension
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.

◆ getMaxOrder()

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

◆ getMinOrder()

template<class T , int N>
int FVps< T, N >::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< T, N >::getMaxOrder(), FVps< T, N >::getMinOrder(), FTps< T, N >::getSubstOrders(), and FVps< T, N >::getTruncOrder().

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

Here is the call graph for this function:

◆ getTopOrder()

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

Get highest order contained in any component.

Definition at line 197 of file FVps.hpp.

References FTps< T, N >::getMaxOrder(), and max().

Here is the call graph for this function:

◆ getTruncOrder()

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

◆ getVariables()

template<class T , int N>
int FVps< T, N >::getVariables
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.

◆ 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.

◆ 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 endl(), FLUMatrix< T, N >::inverse(), min(), FVps< T, N >::setTruncOrder(), and FVps< T, N >::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

Extract the linear part of the map.

Definition at line 561 of file FVps.hpp.

Referenced by 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(), FTps< T, N >::derivative(), FTps< T, N >::evalMonoms(), FTps< T, N >::getMaxOrder(), FTps< T, N >::getMinOrder(), ke, FTps< T, N >::orderEnd(), FTps< T, N >::orderStart(), and Attrib::Legacy::Distribution::T.

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 endl(), FLUMatrix< T, N >::inverse(), min(), FVps< T, N >::setTruncOrder(), and FVps< T, N >::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

◆ 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.

◆ 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.

◆ operator+()

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

Unary plus.

Definition at line 240 of file FVps.hpp.

◆ 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.

◆ 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.

◆ operator-()

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

Unary minus.

Definition at line 246 of file FVps.hpp.

◆ 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.

◆ 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.

◆ 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 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.

◆ 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 FVps< T, N >::data.

◆ 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.

◆ 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.

◆ 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 endl().

Referenced by operator<<().

Here is the call graph for this function:

◆ 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.

Referenced by FVps< T, N >::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.

Referenced by FVps< T, N >::substitute().

◆ setMinOrder()

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

Set minimum order.

Definition at line 175 of file FVps.hpp.

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

◆ 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.

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

◆ 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.

◆ 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() [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(), endl(), FTps< T, N >::getSize(), max(), min(), FVps< T, N >::setMaxOrder(), FVps< T, N >::setMinOrder(), FVps< T, N >::setTruncOrder(), and Attrib::Legacy::Distribution::T.

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

◆ 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 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.

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

◆ zero()

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

Set to zero.

Definition at line 117 of file FVps.hpp.

References Attrib::Legacy::Distribution::T.

Member Data Documentation

◆ data

template<class T , int N>
FTps<T, N> FVps< T, N >::data[N]
protected

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