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

A representation for a homogeneous polynomial, used as a Lie generator. More...

#include <FLieGenerator.h>

Collaboration diagram for FLieGenerator< T, N >:

Public Member Functions

 FLieGenerator (int)
 Construct a zero generator of given order.
 FLieGenerator (const FTps< T, 2 *N > &, int)
 Construct a zero generator of given order by extraction.
 FLieGenerator ()
 FLieGenerator (const FLieGenerator &)
 ~FLieGenerator ()
const FLieGeneratoroperator= (const FLieGenerator &)
bool operator== (const FLieGenerator &) const
T * begin ()
 Get pointer to beginning of generator.
T * end ()
 Get pointer past end of generator.
const T * begin () const
 Get pointer to beginning of generator.
const T * end () const
 Get pointer past end of generator.
T & operator[] (int n)
 Get element.
const T & operator[] (int n) const
 Get element.
FLieGenerator operator- () const
 Change sign of generator.
FLieGeneratoroperator*= (const T &)
 Multiply by scalar and assign.
FLieGeneratoroperator/= (const T &)
 Divide by scalar and assign.
FLieGeneratoroperator+= (const FLieGenerator &)
 Add vector and assign.
FLieGeneratoroperator-= (const FLieGenerator &)
 Subtract vector and assign.
void clear ()
 Clear all coefficients.
FLieGenerator derivative (int var) const
 Partial derivative.
bool isZero () const
 Test for zero.
FLieGenerator scale (const FLieGenerator &) const
 Scale monomial-wise.
template<class U>
FLieGenerator< U, N > transform (const FMatrix< U, 2 *N, 2 *N > &) const
 Substitute matrix in Lie generator.
int getOrder () const
 Return order of this generator.
int getBottomIndex () const
 Return bottom index of this generator.
int getTopIndex () const
 Return top index of this generator.

Static Private Member Functions

static int getSize (int order)
static int getBottomIndex (int order)
static int getTopIndex (int order)

Private Attributes

int itsOrder
int bottomIndex
int topIndex
Array1D< T > itsCoeffs

Detailed Description

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

A representation for a homogeneous polynomial, used as a Lie generator.

Definition at line 40 of file FLieGenerator.h.

Constructor & Destructor Documentation

◆ FLieGenerator() [1/4]

template<class T, int N>
FLieGenerator< T, N >::FLieGenerator ( int order)
explicit

Construct a zero generator of given order.

Definition at line 37 of file FLieGenerator.hpp.

References bottomIndex, getBottomIndex(), getSize(), getTopIndex(), itsCoeffs, itsOrder, and topIndex.

Referenced by derivative(), FLieGenerator(), operator*=(), operator+=(), operator-(), operator-=(), operator/=(), operator=(), operator==(), scale(), and transform().

Here is the call graph for this function:

◆ FLieGenerator() [2/4]

template<class T, int N>
FLieGenerator< T, N >::FLieGenerator ( const FTps< T, 2 *N > & tps,
int order )

Construct a zero generator of given order by extraction.

Definition at line 48 of file FLieGenerator.hpp.

References bottomIndex, getBottomIndex(), FTps< T, N >::getMaxOrder(), getSize(), getTopIndex(), itsCoeffs, itsOrder, and topIndex.

Here is the call graph for this function:

◆ FLieGenerator() [3/4]

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

Definition at line 63 of file FLieGenerator.hpp.

References bottomIndex, itsCoeffs, itsOrder, and topIndex.

◆ FLieGenerator() [4/4]

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

Definition at line 74 of file FLieGenerator.hpp.

References bottomIndex, FLieGenerator(), itsCoeffs, itsOrder, and topIndex.

Here is the call graph for this function:

◆ ~FLieGenerator()

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

Definition at line 84 of file FLieGenerator.hpp.

Member Function Documentation

◆ begin() [1/2]

template<class T, int N>
T * FLieGenerator< T, N >::begin ( )
inline

Get pointer to beginning of generator.

Definition at line 101 of file FLieGenerator.hpp.

References itsCoeffs.

Referenced by imag(), PoissonBracket(), real(), and toComplex().

◆ begin() [2/2]

template<class T, int N>
const T * FLieGenerator< T, N >::begin ( ) const
inline

Get pointer to beginning of generator.

Definition at line 108 of file FLieGenerator.hpp.

References itsCoeffs.

◆ clear()

template<class T, int N>
void FLieGenerator< T, N >::clear ( )

Clear all coefficients.

Definition at line 208 of file FLieGenerator.hpp.

References itsCoeffs.

◆ derivative()

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

Partial derivative.

Definition at line 215 of file FLieGenerator.hpp.

References FLieGenerator(), getBottomIndex(), FTpsData< N >::getExponents(), getOrder(), FTpsData< N >::getProductArray(), and getTopIndex().

Here is the call graph for this function:

◆ end() [1/2]

template<class T, int N>
T * FLieGenerator< T, N >::end ( )
inline

Get pointer past end of generator.

Definition at line 115 of file FLieGenerator.hpp.

References itsCoeffs.

Referenced by imag(), real(), and toComplex().

◆ end() [2/2]

template<class T, int N>
const T * FLieGenerator< T, N >::end ( ) const
inline

Get pointer past end of generator.

Definition at line 121 of file FLieGenerator.hpp.

References itsCoeffs.

◆ getBottomIndex() [1/2]

template<class T, int N>
int FLieGenerator< T, N >::getBottomIndex ( ) const
inline

Return bottom index of this generator.

Definition at line 313 of file FLieGenerator.hpp.

References bottomIndex.

Referenced by derivative(), FLieGenerator(), FLieGenerator(), operator*(), operator<<(), PoissonBracket(), and transform().

◆ getBottomIndex() [2/2]

template<class T, int N>
int FLieGenerator< T, N >::getBottomIndex ( int order)
inlinestaticprivate

Definition at line 334 of file FLieGenerator.hpp.

References FTpsData< N >::getSize().

Here is the call graph for this function:

◆ getOrder()

template<class T, int N>
int FLieGenerator< T, N >::getOrder ( ) const
inline

Return order of this generator.

Definition at line 306 of file FLieGenerator.hpp.

References itsOrder.

Referenced by derivative(), operator*(), operator<<(), PoissonBracket(), toComplex(), and transform().

◆ getSize()

template<class T, int N>
int FLieGenerator< T, N >::getSize ( int order)
inlinestaticprivate

Definition at line 327 of file FLieGenerator.hpp.

References FTpsData< N >::getSize().

Referenced by FLieGenerator(), and FLieGenerator().

Here is the call graph for this function:

◆ getTopIndex() [1/2]

template<class T, int N>
int FLieGenerator< T, N >::getTopIndex ( ) const
inline

Return top index of this generator.

Definition at line 320 of file FLieGenerator.hpp.

References topIndex.

Referenced by derivative(), FLieGenerator(), FLieGenerator(), operator*(), operator<<(), and transform().

◆ getTopIndex() [2/2]

template<class T, int N>
int FLieGenerator< T, N >::getTopIndex ( int order)
inlinestaticprivate

Definition at line 341 of file FLieGenerator.hpp.

References FTpsData< N >::getSize().

Here is the call graph for this function:

◆ isZero()

template<class T, int N>
bool FLieGenerator< T, N >::isZero ( ) const

Test for zero.

Definition at line 233 of file FLieGenerator.hpp.

References itsCoeffs, and itsOrder.

Referenced by operator*(), operator+=(), operator-=(), and PoissonBracket().

◆ operator*=()

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

Multiply by scalar and assign.

Definition at line 152 of file FLieGenerator.hpp.

References FLieGenerator(), itsCoeffs, and itsOrder.

Here is the call graph for this function:

◆ operator+=()

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

Add vector and assign.

Definition at line 176 of file FLieGenerator.hpp.

References FLieGenerator(), isZero(), itsCoeffs, and itsOrder.

Here is the call graph for this function:

◆ operator-()

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

Change sign of generator.

Definition at line 140 of file FLieGenerator.hpp.

References FLieGenerator(), itsCoeffs, and itsOrder.

Here is the call graph for this function:

◆ operator-=()

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

Subtract vector and assign.

Definition at line 192 of file FLieGenerator.hpp.

References FLieGenerator(), isZero(), itsCoeffs, and itsOrder.

Here is the call graph for this function:

◆ operator/=()

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

Divide by scalar and assign.

Definition at line 164 of file FLieGenerator.hpp.

References FLieGenerator(), itsCoeffs, and itsOrder.

Here is the call graph for this function:

◆ operator=()

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

Definition at line 90 of file FLieGenerator.hpp.

References bottomIndex, FLieGenerator(), itsCoeffs, itsOrder, and topIndex.

Here is the call graph for this function:

◆ operator==()

template<class T, int N>
bool FLieGenerator< T, N >::operator== ( const FLieGenerator< T, N > & ) const

References FLieGenerator().

Here is the call graph for this function:

◆ operator[]() [1/2]

template<class T, int N>
T & FLieGenerator< T, N >::operator[] ( int n)
inline

Get element.

Definition at line 128 of file FLieGenerator.hpp.

References bottomIndex, and itsCoeffs.

◆ operator[]() [2/2]

template<class T, int N>
const T & FLieGenerator< T, N >::operator[] ( int n) const
inline

Get element.

Definition at line 134 of file FLieGenerator.hpp.

References bottomIndex, and itsCoeffs.

◆ scale()

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

Scale monomial-wise.

Definition at line 246 of file FLieGenerator.hpp.

References FLieGenerator(), itsCoeffs, and itsOrder.

Here is the call graph for this function:

◆ transform()

template<class T, int N>
template<class U>
FLieGenerator< U, N > FLieGenerator< T, N >::transform ( const FMatrix< U, 2 *N, 2 *N > & mat) const

Substitute matrix in Lie generator.

Definition at line 256 of file FLieGenerator.hpp.

References Array1D< T >::begin(), c, FLieGenerator(), getBottomIndex(), getOrder(), FTpsData< N >::getProductArray(), FTpsData< N >::getSubTable(), getTopIndex(), TpsSubstitution::index, TpsSubstitution::order, prod(), Array1D< T >::size(), TpsSubstitution::skip, and TpsSubstitution::variable.

Here is the call graph for this function:

Member Data Documentation

◆ bottomIndex

template<class T, int N>
int FLieGenerator< T, N >::bottomIndex
private

◆ itsCoeffs

◆ itsOrder

template<class T, int N>
int FLieGenerator< T, N >::itsOrder
private

◆ topIndex

template<class T, int N>
int FLieGenerator< T, N >::topIndex
private

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