24 template <
class T,
size_t N = 0>
34 template <
class T =
int64_t,
class _deg =
int64_t,
size_t N = 0>
60 static std::string
name(
int i,
int num);
74 template <
class T =
int64_t,
class _deg =
int64_t>
77 using std::vector<T>::vector;
97 template <
class xy_poly_t,
class chern_poly_t>
120 typedef typename xy_poly_t::exp_t xy_t;
121 typedef typename chern_poly_t::exp_t chern_t;
127 const int number_of_generators;
128 std::vector<chern_poly_t> _relations;
131 std::map<std::array<int, 2>,
int> generator_double_index;
133 int index(
int s,
int j)
const;
134 auto create_generator(
int s,
int i);
135 void set_generators();
136 void set_relations();
137 auto find_exponent(
const xy_t &term)
const;
138 void find_exponent_recursive(
const xy_t &term, chern_t &exponent)
const;
149 template <
class xy_poly_t,
class chern_poly_t>
153 #include "impl/Half_Idempotent.ipp"
Contains the methods and classes for generatic symmetric polynomials.
Factory class that provides the general interface of a generating basis for a subring of a polynomial...
Definition: Symmetric_Basis.hpp:82
std::vector< std::string > generator_names
The names of the generators, optionally constructed in the inheriting class.
Definition: Symmetric_Basis.hpp:118
std::vector< xy_poly_t > _generators
The generators of the polynomial basis, constructed in the inheriting class.
Definition: Symmetric_Basis.hpp:112
std::vector< typename new_poly_t::deg_t > generator_dimensions
The dimensions of the generators, optionally constructed in the inheriting class.
Definition: Symmetric_Basis.hpp:115
Class for half-idempotent symmetric polynomials.
Definition: Half_Idempotent.hpp:99
const std::vector< chern_poly_t > & relations() const
The relations are for and .
const xy_poly_t & generator(int s, int j) const
The generator .
TwistedChernBasis(int n)
Constructs the generators and the relation set given in .
The namespace which contains every method and class in the library.
Definition: General.hpp:16
void print_half_idempotent_relations(int n, bool print=1, bool verify=1, bool verify_verbose=1)
Prints the relations of .
Wrapping array and vector in the same interface.
Definition: Half_Idempotent.hpp:25
Variables with and , .
Definition: Half_Idempotent.hpp:36
_deg deg_t
Degree typedef.
Definition: Half_Idempotent.hpp:50
static std::string name(int i, int num)
Returns the names of the variables .
size_t operator()() const
Hashes monomial.
HalfIdempotentVariables operator+(const HalfIdempotentVariables &b) const
Multiplies monomials by adding their exponents.
HalfIdempotentVariables operator-(const HalfIdempotentVariables &b) const
Divides monomials by subtracting their exponents.
deg_t degree() const
Computes degree of the monomial on the with and .
The twisted Chern generators as variables .
Definition: Half_Idempotent.hpp:76
_deg deg_t
Degree typedef.
Definition: Half_Idempotent.hpp:78
size_t operator()() const
Hashes monomial.
TwistedChernVariables operator+(const TwistedChernVariables &b) const
Multiplies monomials by adding their exponents.