A basis for the polynomial Lie algebra, poly_lie. More...
#include <libalgebra.h>
Classes | |
struct | KEY_LESS |
The order in the MAP class reflects the degree. More... | |
Public Types | |
typedef poly_basis< SCA, RAT > | POLYBASIS |
The basis elements of poly_basis. | |
typedef POLYBASIS::KEY | POLYBASIS_KEY |
The key of poly_basis (ie a monomial). | |
typedef std::pair< LET, POLYBASIS_KEY > | KEY |
A key is a pair of letter and monomial (ie a monomial in direction letter). | |
typedef poly< SCA, RAT > | POLY |
Polynomial algebra. | |
typedef RAT | RATIONAL |
The rationals. | |
typedef std::map< KEY, SCA, KEY_LESS > | MAP |
The MAP type. | |
typedef poly_lie< SCA, RAT, n_letters, max_degree > | POLY_LIE |
The Multivariate Polynomials Algebra element type. | |
Public Member Functions | |
poly_lie_basis (void) | |
Default constructor. Empty basis. | |
Static Public Member Functions | |
static POLY_LIE | prod (const KEY &k1, const KEY &k2) |
Returns the Lie bracket of two monomial vector fields. | |
static POLY_LIE | prod2 (const POLY &poly1, const KEY &liemon1) |
Multiplication of a polynomial poly1 by a monomial vector field liemon1. | |
static KEY | keyofletter (LET letter) |
Turns a d/dx_i into a polynomial vector field by multiplying the empty monomial by d/dx_i. | |
static DEG | degree (const KEY &k) |
Returns the degree of the monomial in the pair (Let, monomial). | |
Friends | |
std::ostream & | operator<< (std::ostream &os, const std::pair< poly_lie_basis *, KEY > &t) |
Outputs a std::pair<poly_basis*, KEY> to an std::ostream. |
A basis for the polynomial Lie algebra, poly_lie.
A basis for the polynomial lie algebra. The basis elements are vector fields of the of the form std::pair(direction, monomial). The product is the Lie bracket of two vector fields.
static POLY_LIE alg::poly_lie_basis< SCA, RAT, n_letters, max_degree >::prod | ( | const KEY & | k1, | |
const KEY & | k2 | |||
) | [inline, static] |
Returns the Lie bracket of two monomial vector fields.
Returns the Vector field corresponding to the Lie bracket of two vector fields. If we have have monomials m1 and m2 and Letters i and j then the product of m1*d/dxi with m2*d/dxj is equal to m1*(d/dxi m2)*d/dxj - m2*(d/dxj m1)*d/dxi