1#ifndef CLASSIC_FLieGenerator_HH
2#define CLASSIC_FLieGenerator_HH
27template <
class T,
int N>
class FArray1D;
28template <
class T,
int N,
int M>
class FMatrix;
29template <
class T,
int N>
class FTps;
39template <
class T,
int N>
68 inline const T *
begin()
const;
72 inline const T *
end()
const;
134 static inline int getSize(
int order);
160template <
class T,
int N>
165template <
class T,
int N>
170template <
class T,
int N>
175template <
class T,
int N>
180template <
class T,
int N>
185template <
class T,
int N>
190template <
class T,
int N>
195template <
class T,
int N>
200template <
class T,
int N>
209template <
class T,
int N>
FLieGenerator< T, N > real(const FLieGenerator< std::complex< T >, N > &)
Take real part of a complex generator.
FLieGenerator< T, N > operator-(const FLieGenerator< T, N > &, const FLieGenerator< T, N > &)
Subtract.
std::ostream & operator<<(std::ostream &, const FLieGenerator< T, N > &)
Output.
FLieGenerator< T, N > operator*(const FLieGenerator< T, N > &, const T &)
Multiply by scalar.
FLieGenerator< T, N > PoissonBracket(const FLieGenerator< T, N > &, const FLieGenerator< T, N > &)
Poisson bracket of two Lie generators.
FLieGenerator< T, N > operator+(const FLieGenerator< T, N > &, const FLieGenerator< T, N > &)
Add.
FLieGenerator< std::complex< T >, N > toComplex(const FLieGenerator< T, N > &)
Convert real generator to complex.
FLieGenerator< T, N > operator/(const FLieGenerator< T, N > &, const T &)
Divide by scalar.
FLieGenerator< T, N > imag(const FLieGenerator< std::complex< T >, N > &)
Take imaginary part of a complex generator.
A templated representation for one-dimensional arrays.
A templated representation for matrices.
Truncated power series in N variables of type T.
A representation for a homogeneous polynomial, used as a Lie generator.
void clear()
Clear all coefficients.
int getBottomIndex() const
Return bottom index of this generator.
FLieGenerator & operator*=(const T &)
Multiply by scalar and assign.
const FLieGenerator & operator=(const FLieGenerator &)
FLieGenerator & operator-=(const FLieGenerator &)
Subtract vector and assign.
T * begin()
Get pointer to beginning of generator.
FLieGenerator & operator+=(const FLieGenerator &)
Add vector and assign.
static int getSize(int order)
T & operator[](int n)
Get element.
FLieGenerator & operator/=(const T &)
Divide by scalar and assign.
FLieGenerator derivative(int var) const
Partial derivative.
int getOrder() const
Return order of this generator.
bool isZero() const
Test for zero.
FLieGenerator scale(const FLieGenerator &) const
Scale monomial-wise.
FLieGenerator operator-() const
Change sign of generator.
T * end()
Get pointer past end of generator.
FLieGenerator< U, N > transform(const FMatrix< U, 2 *N, 2 *N > &) const
Substitute matrix in Lie generator.
int getTopIndex() const
Return top index of this generator.
bool operator==(const FLieGenerator &) const