Factory class that provides the general interface of a generating basis for a subring of a polynomial ring.
More...
#include <Symmetric_Basis.hpp>
|
new_poly_t | operator() (orig_poly_t a) const |
| Transform a polynomial on the original variables to one on the generating basis. More...
|
|
orig_poly_t | operator() (const new_poly_t &a) const |
| Transform a polynomial on the generating basis into a polynomial on the original variables. More...
|
|
| PolynomialBasis (int num) |
| Constructor given number of variables. More...
|
|
const std::vector< orig_poly_t > & | generators () const |
| Returns vector containing the generating basis. More...
|
|
const std::vector< typename new_poly_t::deg_t > & | dimensions () const |
| Returns vector containing the dimensions of the generating basis (can be empty!) More...
|
|
const std::vector< std::string > & | names () const |
| Returns vector containing the names of the generating basis (can be empty!) More...
|
|
|
std::vector< orig_poly_t > | _generators |
| The generators of the polynomial basis, constructed in the inheriting class. More...
|
|
std::vector< typename new_poly_t::deg_t > | generator_dimensions |
| The dimensions of the generators, optionally constructed in the inheriting class. More...
|
|
std::vector< std::string > | generator_names |
| The names of the generators, optionally constructed in the inheriting class. More...
|
|
template<class spec_t, class orig_poly_t, class new_poly_t>
class symmp::PolynomialBasis< spec_t, orig_poly_t, new_poly_t >
Factory class that provides the general interface of a generating basis for a subring of a polynomial ring.
Inherit from this class and construct data member _generators through the child class (and optionally generator_names and generator_dimensions).
The child class must also have a method find_exponent
with signature:
typename new_poly_t::exp_t find_exponent(const typename orig_poly_t::exp_t&);
Example implementations are SymmetricBasis
and TwistedChernBasis
.
- Template Parameters
-
spec_t | Used for compile-time polymorphism (CRTP): must be the child class. |
orig_poly_t | Type of polynomial on the original variables |
new_poly_t | Type of polynomial on the new variables (the _generators) |
◆ PolynomialBasis()
Constructor given number of variables.
- Parameters
-
num | The number of variables for the polynomials |
◆ operator()() [1/2]
new_poly_t operator() |
( |
orig_poly_t |
a | ) |
const |
Transform a polynomial on the original variables to one on the generating basis.
- Parameters
-
- Returns
- Polynomial on the new variables
◆ operator()() [2/2]
orig_poly_t operator() |
( |
const new_poly_t & |
a | ) |
const |
Transform a polynomial on the generating basis into a polynomial on the original variables.
- Parameters
-
- Returns
- Polynomial on the original variables
◆ generators()
const std::vector<orig_poly_t>& generators |
( |
| ) |
const |
Returns vector containing the generating basis.
◆ dimensions()
const std::vector<typename new_poly_t::deg_t>& dimensions |
( |
| ) |
const |
Returns vector containing the dimensions of the generating basis (can be empty!)
◆ names()
const std::vector<std::string>& names |
( |
| ) |
const |
Returns vector containing the names of the generating basis (can be empty!)
◆ number_of_variables
const int number_of_variables |
The number of (the original) variables of the polynomial ring.
◆ _generators
std::vector<orig_poly_t> _generators |
|
protected |
The generators of the polynomial basis, constructed in the inheriting class.
◆ generator_dimensions
std::vector<typename new_poly_t::deg_t> generator_dimensions |
|
protected |
The dimensions of the generators, optionally constructed in the inheriting class.
◆ generator_names
std::vector<std::string> generator_names |
|
protected |
The names of the generators, optionally constructed in the inheriting class.
The documentation for this class was generated from the following file: