The monoid of words of a finite number of letters with concat product. More...
#include <monomial_basis.h>
Public Types | |
typedef monomial_basis< SCA, n_letters, max_degree > | PBASIS |
The monomial_basis type. | |
typedef PBASIS::KEY | KEY |
Import of the KEY type. | |
typedef PBASIS::MAP | MAP |
Import of the MAP type. | |
typedef RAT | RATIONAL |
The rationals. | |
typedef multi_polynomial< SCA, RAT, n_letters, max_degree > | MULTIPOLY |
The multi_polynomial element type. | |
Public Member Functions | |
free_monomial_basis (void) | |
Default constructor. | |
MULTIPOLY | prod (const KEY &k1, const KEY &k2) const |
The concatenation product of two basis elements. | |
Friends | |
std::ostream & | operator<< (std::ostream &os, const std::pair< free_monomial_basis *, KEY > &t) |
Outputs an std::pair<free_monomial_basis*, KEY> to an std::ostream. |
The monoid of words of a finite number of letters with concat product.
This is the basis used to implement the multi_polynomial class as a specialisation of the algebra class. This basis is the Free Associative Algebra basis with a finite number of letters, with the usual concatenation product. The monomial_basis is a container of keys. A key is the implementation of a word of letters. The prod() member function corresponds to the concatenation of the two keys given as arguments. This product is associative but not commutative. Letters can be seen as particular basis keys, i.e. words of length one. The empty word is a special key used for the imbedding of letters (words of length one).
MULTIPOLY free_monomial_basis< SCA, RAT, n_letters, max_degree >::prod | ( | const KEY & | k1, | |
const KEY & | k2 | |||
) | const [inline] |
The concatenation product of two basis elements.
Returns the multi_polynomial obtained by the concatenation product of two keys viewed as words of letters. The result is a unidimensional multi_polynomial with a unique key (the concatenation of k1 and k2) associated to the +1 scalar. The already computed products are not stored or remembered.