20 #ifndef TENSORT_CHEMPS2_H 21 #define TENSORT_CHEMPS2_H 24 #include "SyBookkeeper.h" 60 int gKappa(
const int N1,
const int TwoS1,
const int I1,
const int N2,
const int TwoS2,
const int I2 )
const;
75 double *
gStorage(
const int N1,
const int TwoS1,
const int I1,
const int N2,
const int TwoS2,
const int I2 );
148 void DeleteAllArrays();
151 void AllocateAllArrays();
void random()
Fill storage with random numbers 0 < val < 1.
void RightMultiply(Tensor *Mx)
Multiply at the right with a diagonal TensorOperator.
virtual ~TensorT()
Destructor.
void LQ(Tensor *Lstorage)
Right-normalization.
TensorT(const int site_index, const SyBookkeeper *denBK)
Constructor.
int gIndex() const
Get the location index.
int gNKappa() const
Get the number of symmetry blocks.
void sBK(const SyBookkeeper *newBK)
Set the pointer to the symmetry bookkeeper.
double * gStorage()
Get the pointer to the storage.
int gKappa(const int N1, const int TwoS1, const int I1, const int N2, const int TwoS2, const int I2) const
Get the index corresponding to a certain tensor block.
void QR(Tensor *Rstorage)
Left-normalization.
void LeftMultiply(Tensor *Mx)
Multiply at the left with a diagonal TensorOperator.
const SyBookkeeper * gBK() const
Get the pointer to the symmetry bookkeeper.
void number_operator(const double alpha, const double beta)
Apply alpha * ( number operator ) + beta to the MPS tensor.
bool CheckLeftNormal() const
Check whether the TensorT is left-normal.
bool CheckRightNormal() const
Check whether the TensorT is right-normal.
void Reset()
Reset the TensorT (if virtual dimensions are changed)
int gKappa2index(const int kappa) const
Get the storage jump corresponding to a certain tensor block.