Symmetric Polynomials  V3.1
A C++ library for generating symmetric polynomials with relations
TwistedChernVariables< T, _deg > Struct Template Reference

The twisted Chern generators as variables \(\gamma_{s,j}\). More...

#include <Half_Idempotent.hpp>

Inheritance diagram for TwistedChernVariables< T, _deg >:
[legend]
Collaboration diagram for TwistedChernVariables< T, _deg >:
[legend]

Public Types

typedef _deg deg_t
 Degree typedef. More...
 

Public Member Functions

TwistedChernVariables operator+ (const TwistedChernVariables &b) const
 Multiplies monomials by adding their exponents. More...
 
size_t operator() () const
 Hashes monomial. More...
 

Detailed Description

template<class T = int64_t, class _deg = int64_t>
struct symmp::TwistedChernVariables< T, _deg >

The twisted Chern generators as variables \(\gamma_{s,j}\).

Monomial \(\prod_{s,j}\gamma_{s,j}^{a_{s_j}}\) is stored as: \([a_{0,1},...,a_{0,n},a_{1,0},a_{1,1},...,a_{n-1,1},a_{n,0}]\)

Note
This class does NOT provide functions for degrees or variable names: these are provided as pointers directly in TwistedChernBasis
Template Parameters
TThe (integral) value type of the exponent vector.
_degThe (integral) value type used in the degree function.

Member Typedef Documentation

◆ deg_t

typedef _deg deg_t

Degree typedef.

Member Function Documentation

◆ operator+()

TwistedChernVariables operator+ ( const TwistedChernVariables< T, _deg > &  b) const

Multiplies monomials by adding their exponents.

Note
No relations are used (expanding a relation on a monomial on the \(\gamma_{s,j}\) wouldn't produce a monomial)
Parameters
bThe exponent \([b_{0,1},...,b_{n,0}]\) we add to *this= \([a_{0,1},...,a_{n,0}]\)
Returns
Exponent \([a_{0,1}+b_{0,1},...,a_{n,0}+b_{n,0}]\)

◆ operator()()

size_t operator() ( ) const

Hashes monomial.

Returns
Hash of exponent vector (calls generic_hasher)

The documentation for this struct was generated from the following file: