A specialisation of the algebra class with a free tensor basis. More...
#include <libalgebra.h>
Public Types | |
typedef free_tensor_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 | |
free_tensor (void) | |
Default constructor. | |
free_tensor (const free_tensor &t) | |
Copy constructor. | |
free_tensor (const shuffle_tensor< SCA, RAT, n_letters, max_degree > &t) | |
Constructs an instance from a shuffle_tensor instance. | |
free_tensor (const ALG &a) | |
Constructs an instance from an algebra instance. | |
free_tensor (const VECT &v) | |
Constructs an instance from a sparse_vector instance. | |
free_tensor (LET letter, const SCA &s) | |
Constructs a unidimensional instance from a letter and a scalar. | |
free_tensor (const KEY &k) | |
Explicit unidimensional constructor from a given key (basis element). | |
free_tensor (const SCA &s) | |
Explicit unidimensional constructor from a given scalar. | |
__DECLARE_BINARY_OPERATOR (free_tensor,*,*=, SCA) inline __DECLARE_BINARY_OPERATOR(free_tensor | |
RAT | __DECLARE_BINARY_OPERATOR (free_tensor,*,*=, free_tensor) inline __DECLARE_BINARY_OPERATOR(free_tensor |
RAT free_tensor | __DECLARE_BINARY_OPERATOR (free_tensor,-,-=, free_tensor) inline __DECLARE_UNARY_OPERATOR(free_tensor |
Friends | |
RAT free_tensor ALG friend free_tensor | exp (const free_tensor &arg) |
Computes the truncated exponential of a free_tensor instance. | |
free_tensor | log (const free_tensor &arg) |
Computes the truncated logarithm of a free_tensor instance. |
A specialisation of the algebra class with a free tensor basis.
Mathematically, the algebra of free_tensor instances is a free 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 free_tensor_basis. Notice that this associative algebra of free tensors includes as a sub-algebra the associative algebra corresponding to the SCALAR type. This is permitted by the existence of empty keys in free_tensor_basis.
alg::free_tensor< SCA, RAT, n_letters, max_degree >::__DECLARE_BINARY_OPERATOR | ( | free_tensor< SCA, RAT, n_letters, max_degree > | , | |
* | , | |||
* | , | |||
SCA | ||||
) | [inline] |
Ensures that the return type is a free_tensor.
RAT free_tensor alg::free_tensor< SCA, RAT, n_letters, max_degree >::__DECLARE_BINARY_OPERATOR | ( | free_tensor< SCA, RAT, n_letters, max_degree > | , | |
- | , | |||
- | , | |||
free_tensor< SCA, RAT, n_letters, max_degree > | ||||
) | [inline] |
Ensures that the return type is a free_tensor.
RAT alg::free_tensor< SCA, RAT, n_letters, max_degree >::__DECLARE_BINARY_OPERATOR | ( | free_tensor< SCA, RAT, n_letters, max_degree > | , | |
* | , | |||
* | , | |||
free_tensor< SCA, RAT, n_letters, max_degree > | ||||
) | [inline] |
Ensures that the return type is a free_tensor.