Go to the documentation of this file. 1 #ifndef _GLUCAT_GENERATION_H
2 #define _GLUCAT_GENERATION_H
38 namespace glucat {
namespace gen
40 namespace ublas = boost::numeric::ublas;
46 template<
class Matrix_T >
47 class generator_table :
48 private std::map< signature_t, std::vector<Matrix_T> >
54 static generator_table<Matrix_T>&
generator();
84 #endif // _GLUCAT_GENERATION_H
generator_table & operator=(const generator_table &)
void gen_from_pp4_qm4(const std::vector< Matrix_T > &old, const signature_t sig)
Construct generators for p,q given generators for p+4,q-4.
static generator_table< Matrix_T > & generator()
Single instance of generator table.
const Matrix_T * operator()(const index_t p, const index_t q)
Pointer to generators for a specific signature.
int index_t
Size of index_t should be enough to represent LO, HI.
std::pair< index_t, index_t > signature_t
A signature is a pair of indices, p, q, with p == frame.max(), q == -frame.min()
friend class friend_for_private_destructor
void gen_from_pm1_qm1(const std::vector< Matrix_T > &old, const signature_t sig)
Construct generators for p,q given generators for p-1,q-1.
const std::vector< Matrix_T > & gen_vector(const index_t p, const index_t q)
Construct a vector of generators for a specific signature.
void gen_from_pm4_qp4(const std::vector< Matrix_T > &old, const signature_t sig)
Construct generators for p,q given generators for p-4,q+4.
static const index_t offset_to_super[]
Offsets between the current signature and that of the real superalgebra.
void gen_from_qp1_pm1(const std::vector< Matrix_T > &old, const signature_t sig)
Construct generators for p,q given generators for q+1,p-1.