A specialisation of the algebra class with a Lie basis. More...
#include <lie.h>
Public Types | |
typedef lie_basis< SCA, RAT, n_letters, max_degree > | BASIS |
The basis type. | |
typedef BASIS::KEY | KEY |
Import of the KEY type. | |
typedef sparse_vector< BASIS > | VECT |
The sparse_vector type. | |
typedef algebra< BASIS > | ALG |
The algebra type. | |
typedef ALG::iterator | iterator |
Import of the iterator type. | |
typedef ALG::const_iterator | const_iterator |
Import of the constant iterator type. | |
Public Member Functions | |
lie (void) | |
Default constructor. Zero lie element. | |
lie (const lie &l) | |
Copy constructor. | |
lie (const ALG &a) | |
Constructs an instance from an algebra instance. | |
lie (const VECT &v) | |
Constructs an instance from a sparse_vector instance. | |
lie (const KEY &k) | |
Constructs a unidimensional instance from a given key (with scalar one). | |
lie (LET letter, const SCA &s) | |
Constructs a unidimensional instance from a letter and a scalar. | |
Friends | |
lie | replace (const lie &src, const std::vector< LET > &s, const std::vector< lie * > &v) |
Replaces the occurrences of letters in s by Lie elements in v. |
A specialisation of the algebra class with a Lie basis.
Mathematically, the algebra of Lie instances is a free Lie associative algebra. With respect to the inherited algebra class, the essential distinguishing feature of this class is the basis class used, and in particular the basis::prod() member function. Thus, the most important information is in the definition of lie_basis. Notice that this associative algebra of lie elements does not includes as a sub-algebra the associative algebra corresponding to the SCALAR type. In other words, only the scalar zero corresponds to a Lie element (the zero one) which is the neutral element of the addition operation. There is no neutral element for the product (free Lie product).