1 #ifndef CLASSIC_FVps_HH
2 #define CLASSIC_FVps_HH
26 template <
class T>
class Array1D;
27 template <
class T,
int M,
int N>
class FMatrix;
28 template <
class T,
int N>
class FTps;
29 template <
class T,
int N>
class FVector;
30 template <
class T,
int N>
class LinearMap;
32 template <
class T,
int N>
class FArray1D;
38 template <
class T,
int N>
46 explicit FVps(
int minOrder,
int maxOrder,
int trcOrder);
239 std::istream &
get(std::istream &is);
242 std::ostream &
put(std::ostream &os)
const;
256 template <
class T,
int N>
260 template <
class T,
int N>
264 template <
class T,
int N>
268 template <
class T,
int N>
272 template <
class T,
int N>
276 template <
class T,
int N>
280 template <
class T,
int N>
284 template <
class T,
int N>
288 template <
class T,
int N>
292 template <
class T,
int N>
296 template <
class T,
int N>
300 template <
class T,
int N>
305 template <
class T,
int N>
310 template <
class T,
int N>
324 template <
class T,
int N>
328 template <
class T,
int N>
FVps< T, N > operator/(const FVps< T, N > &lhs, const FTps< T, N > &rhs)
Divide.
FVps< T, N > ExpMap(const FTps< T, N > &H, const FVps< T, N > &M, int trunc=(FTps< T, N >::EXACT))
Build the exponential series.
FVps< T, N > PoissonBracket(const FTps< T, N > &x, const FVps< T, N > &y, int trunc=(FTps< T, N >::EXACT))
Poisson bracket.
std::istream & operator>>(std::istream &is, FVps< T, N > &)
Extract FVps from stream [b]is[/b].
FVps< T, N > operator-(const FVps< T, N > &lhs, const FVps< T, N > &rhs)
Subtract.
FVps< T, N > operator+(const FVps< T, N > &lhs, const FVps< T, N > &rhs)
Add.
std::ostream & operator<<(std::ostream &os, const FVps< T, N > &vps)
Insert FVps to stream [b]os[/b].
FVector< T, N > operator*(const FVps< T, N > &lhs, const FVector< T, N > &rhs)
Multiply.
Vector truncated power series in n variables.
FVps integral(int var) const
Partial integral.
const FVps & operator=(const FVps &)
Array1D< int > getSubstOrders(const FVps< T, N > &rhs, int trunc=(FTps< T, N >::EXACT)) const
Return orders {min, max, trc} of f(rhs(z)).
void setComponent(int, const FTps< T, N > &)
Set component.
FVps & operator*=(const FTps< T, N > &rhs)
Multiply and assign.
void setMinOrder(int order)
Set minimum order.
std::ostream & put(std::ostream &os) const
Put a FVps to stream [b]os[/b].
void setTruncOrder(int order)
Set truncation order for all components.
FVector< T, N > constantTerm() const
Extract the constant part of the map.
int getTopOrder() const
Get highest order contained in any component.
FVps substituteInto(const FMatrix< T, N, N > &lhs) const
Substitute map into matrix.
FVps substitute(const FMatrix< T, N, N > &M, int n) const
Substitute.
FTps< T, N > getFTps(const FArray1D< int, N > &power) const
Get a FTps that is a combination of the polynomials of FVps.
int getMaxOrder() const
Get highest order contained in any component.
FVps operator+() const
Unary plus.
FVps myInverse(int trunc=(FTps< T, N >::EXACT)) const
Inverse.
int getVariables() const
Get number of variables.
FVps & operator+=(const FVps &rhs)
Add and assign.
FVps truncate(int trunc)
Truncate.
void setMaxOrder(int order)
Set maximum order.
FVps operator*(const FVps< T, N > &rhs) const
Multiply.
FVps derivative(int var) const
Partial derivative.
FVps & operator/=(const FTps< T, N > &rhs)
Divide and assign.
const FTps< T, N > & getComponent(int n) const
Get component.
FVps filter(int minOrder, int maxOrder, int trcOrder=(FTps< T, N >::EXACT)) const
Extract given range of orders, with truncation.
void identity()
Set to identity.
int getDimension() const
Get dimension.
std::istream & get(std::istream &is)
Get a FVps from stream [b]is[/b].
FVps & operator-=(const FVps &rhs)
Subtract and assign.
int getTruncOrder() const
Get lowest truncation order in any component.
FVps inverse(int trunc=(FTps< T, N >::EXACT)) const
Inverse.
int getMinOrder() const
Get lowest order contained in any component.
const FTps< T, N > & operator[](int) const
Get Component.
FMatrix< T, N, N > linearTerms() const
Extract the linear part of the map.
FVps operator-() const
Unary minus.
A templated representation for one-dimensional arrays.
A templated representation for matrices.
Truncated power series in N variables of type T.
A templated representation for vectors.
Linear map with values of type [b]T[/b] in [b]N[/b] variables.
Transport map with values of type [b]T[/b] in [b]N[/b] variables.