A specialisation of the algebra class with a free tensor basis. More...
#include <libalgebra.h>
Public Types | |
typedef free_monomial_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 | |
multi_polynomial (void) | |
Default constructor. | |
multi_polynomial (const multi_polynomial &t) | |
Copy constructor. | |
multi_polynomial (const ALG &a) | |
Constructs an instance from an algebra instance. | |
multi_polynomial (const VECT &v) | |
Constructs an instance from a sparse_vector instance. | |
multi_polynomial (LET letter, const SCA &s) | |
Constructs a unidimensional instance from a letter and a scalar. | |
multi_polynomial (const KEY &k) | |
Explicit unidimensional constructor from a given key (basis element). | |
multi_polynomial (const SCA &s) | |
Explicit unidimensional constructor from a given scalar. | |
__DECLARE_BINARY_OPERATOR (multi_polynomial,*,*=, SCA) inline __DECLARE_BINARY_OPERATOR(multi_polynomial | |
RAT | __DECLARE_BINARY_OPERATOR (multi_polynomial,*,*=, multi_polynomial) inline __DECLARE_BINARY_OPERATOR(multi_polynomial |
RAT multi_polynomial | __DECLARE_BINARY_OPERATOR (multi_polynomial,-,-=, multi_polynomial) inline __DECLARE_UNARY_OPERATOR(multi_polynomial |
Friends | |
RAT multi_polynomial ALG friend multi_polynomial | exp (const multi_polynomial &arg) |
Computes the truncated exponential of a multi_polynomial instance. | |
multi_polynomial | log (const multi_polynomial &arg) |
Computes the truncated logarithm of a multi_polynomial instance. |
A specialisation of the algebra class with a free tensor basis.
Mathematically, the algebra of multi_polynomial 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 monomial_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 monomial_basis.
alg::multi_polynomial< SCA, RAT, n_letters, max_degree >::__DECLARE_BINARY_OPERATOR | ( | multi_polynomial< SCA, RAT, n_letters, max_degree > | , | |
* | , | |||
* | , | |||
SCA | ||||
) | [inline] |
Ensures that the return type is a multi_polynomial.
RAT multi_polynomial alg::multi_polynomial< SCA, RAT, n_letters, max_degree >::__DECLARE_BINARY_OPERATOR | ( | multi_polynomial< SCA, RAT, n_letters, max_degree > | , | |
- | , | |||
- | , | |||
multi_polynomial< SCA, RAT, n_letters, max_degree > | ||||
) | [inline] |
Ensures that the return type is a multi_polynomial.
RAT alg::multi_polynomial< SCA, RAT, n_letters, max_degree >::__DECLARE_BINARY_OPERATOR | ( | multi_polynomial< SCA, RAT, n_letters, max_degree > | , | |
* | , | |||
* | , | |||
multi_polynomial< SCA, RAT, n_letters, max_degree > | ||||
) | [inline] |
Ensures that the return type is a multi_polynomial.