20 #ifndef TENSOR_CHEMPS2_H 21 #define TENSOR_CHEMPS2_H 23 #include "SyBookkeeper.h" 37 virtual int gNKappa()
const = 0;
51 virtual int gKappa(
const int N1,
const int TwoS1,
const int I1,
const int N2,
const int TwoS2,
const int I2 )
const = 0;
66 virtual double *
gStorage(
const int N1,
const int TwoS1,
const int I1,
const int N2,
const int TwoS2,
const int I2 ) = 0;
70 virtual int gIndex()
const = 0;
int index
Index of the Tensor object. For TensorT: a site index; for other tensors: a boundary index...
virtual double * gStorage()=0
Get the pointer to the storage.
virtual int gIndex() const =0
Get the location index.
virtual int gNKappa() const =0
Get the number of tensor blocks.
virtual int gKappa2index(const int kappa) const =0
Get the storage jump corresponding to a certain tensor block.
virtual int gKappa(const int N1, const int TwoS1, const int I1, const int N2, const int TwoS2, const int I2) const =0
Get the index corresponding to a certain tensor block.
int * kappa2index
kappa2index[kappa] indicates the start of tensor block kappa in storage. kappa2index[nKappa] gives th...
int nKappa
Number of Tensor blocks.
double * storage
The actual variables. Tensor block kappa begins at storage+kappa2index[kappa] and ends at storage+kap...