v2DM-DOCI
1.0
|
#include <SPM.h>
Public Member Functions | |
SPM (int L, int N) | |
SPM (const TPM &) | |
SPM (const SPM &)=default | |
SPM (SPM &&)=default | |
virtual | ~SPM ()=default |
SPM & | operator= (const SPM &)=default |
SPM & | operator= (SPM &&)=default |
double | GetElement (int, int) const |
int | gN () const |
int | gL () const |
int | gn () const |
void | bar (double, const TPM &) |
void | bar2 (double, const TPM &) |
void | bar3 (double, const TPM &) |
void | bar (double, const PHM &) |
void | PrintSorted () const |
std::vector< double > | Particlesperirrep (const simanneal::OptIndex &index, bool print=true) const |
void | setDim (int, int, int) |
BlockStructure & | operator+= (const BlockStructure< BlockType > &) |
BlockStructure & | operator-= (const BlockStructure< BlockType > &) |
BlockStructure & | daxpy (double alpha, const BlockStructure< BlockType > &) |
BlockStructure & | operator*= (double) |
BlockStructure & | operator/= (double) |
BlockType & | operator[] (int block) |
const BlockType & | operator[] (int block) const |
double & | operator() (int block, int i, int j) |
double | operator() (int block, int i, int j) const |
double & | operator() (int block, int index) |
double | operator() (int block, int index) const |
template<> | |
double & | operator() (int block, int i, int j) |
template<> | |
double | operator() (int block, int i, int j) const |
template<> | |
double & | operator() (int block, int index) |
template<> | |
double | operator() (int block, int index) const |
int | gnr () const |
int | gdim (int) const |
int | gdeg (int) const |
double | trace () const |
double | ddot (const BlockStructure< BlockType > &) const |
void | dscal (double alpha) |
double | min () const |
double | max () const |
void | fill_Random () |
void | fill_Random (int) |
virtual void | invert () |
virtual void | sqrt (int) |
virtual void | L_map (const BlockStructure< BlockType > &, const BlockStructure< BlockType > &) |
virtual BlockStructure< BlockType > & | mprod (const BlockStructure< BlockType > &, const BlockStructure< BlockType > &) |
void | symmetrize () |
void | sort () |
template<> | |
void | sort () |
virtual void | sep_pm (BlockStructure< BlockType > &, BlockStructure< BlockType > &) |
Private Attributes | |
int | N |
number of particles More... | |
int | L |
the size of the sp DOCI space (there are 2*L sp states) More... | |
Friends | |
std::ostream & | operator<< (std::ostream &output, SPM &spm) |
SPM::SPM | ( | int | L, |
int | N | ||
) |
SPM::SPM | ( | const TPM & | tpm | ) |
|
default |
|
default |
|
virtualdefault |
void SPM::bar | ( | double | scal, |
const TPM & | tpm | ||
) |
void SPM::bar2 | ( | double | scal, |
const TPM & | tpm | ||
) |
void SPM::bar3 | ( | double | scal, |
const TPM & | tpm | ||
) |
|
inherited |
add the matrix matrix_pl times the constant alpha to this
alpha | the constant to multiply the matrix_pl with |
blockmat_pl | the BlockStructure to be multiplied by alpha and added to this |
Definition at line 172 of file BlockStructure.cpp.
|
inherited |
blocks_in | input matrix |
Definition at line 293 of file BlockStructure.cpp.
|
inherited |
Scale the blocks (*this) with parameter alpha
alpha | scalefactor |
Definition at line 320 of file BlockStructure.cpp.
|
inherited |
Fill the matrix with random numbers.
Definition at line 331 of file BlockStructure.cpp.
|
inherited |
Fill the matrix with random numbers.
seed | the seed to use |
Definition at line 342 of file BlockStructure.cpp.
|
inherited |
Definition at line 268 of file BlockStructure.cpp.
|
inherited |
Definition at line 259 of file BlockStructure.cpp.
double SPM::GetElement | ( | int | a, |
int | b | ||
) | const |
Get element a,b from the SPM This does not override the operator()(int,int) from BlockVector
a | the first sp index |
b | the second sp index |
int SPM::gL | ( | ) | const |
|
inherited |
Definition at line 250 of file BlockStructure.cpp.
|
virtualinherited |
Invert positive semidefinite symmetric blocks which is stored in (*this), original matrix (*this) is destroyed
Reimplemented in doci2DM::PHM.
Definition at line 308 of file BlockStructure.cpp.
|
virtualinherited |
Multiply symmetric blocks object left en right with symmetric blocks map to form another symmetric blocks and put it in (*this): this = map*object*map
map | BlockStructure that will be multiplied to the left en to the right of matrix object |
object | central BlockStructure |
Definition at line 367 of file BlockStructure.cpp.
|
inherited |
|
inherited |
|
virtualinherited |
BlockStructure product of two general blockmatrices A en B, put result in this
A | left matrix |
B | right matrix |
Definition at line 380 of file BlockStructure.cpp.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
write access to your blocks, change the number in block "block", on row i and column j
block | The index of the block you want to access |
i | row number |
j | column number |
Definition at line 214 of file BlockStructure.cpp.
|
inherited |
read access to your blocks, read the number in block "block" on row i and column j
block | The index of the block you want to access |
i | row number |
j | column number |
Definition at line 227 of file BlockStructure.cpp.
|
inherited |
Definition at line 233 of file BlockStructure.cpp.
|
inherited |
Definition at line 239 of file BlockStructure.cpp.
|
inherited |
Definition at line 196 of file BlockStructure.cpp.
|
inherited |
overload the += operator for matrices
blockmat_pl | The matrix you want to add to this |
Definition at line 143 of file BlockStructure.cpp.
|
inherited |
overload the -= operator for matrices
blockmat_pl | The matrix you want to deduct from this |
Definition at line 157 of file BlockStructure.cpp.
|
inherited |
/= operator overloaded: divide by a constant
c | the number to divide your matrix through |
Definition at line 186 of file BlockStructure.cpp.
|
inherited |
[] overloaded, will return a reference to the block block in the blocks.
block | index of the block to be returned |
Definition at line 91 of file BlockStructure.cpp.
|
inherited |
[] overloaded, const version, will return a const reference to the block block in the blocks.
block | index of the block to be returned |
Definition at line 102 of file BlockStructure.cpp.
std::vector< double > SPM::Particlesperirrep | ( | const simanneal::OptIndex & | index, |
bool | print = true |
||
) | const |
void SPM::PrintSorted | ( | ) | const |
|
virtualinherited |
Definition at line 410 of file BlockStructure.cpp.
|
inherited |
function that allocates the memory of the blocks block with dimension dim sets and the degeneracy of the matrix
block | the index of the block that will be allocated |
dim | the dimension of the particular block to be allocated |
degeneracy | the degeneracy of block "block" |
Definition at line 76 of file BlockStructure.cpp.
|
inherited |
|
inherited |
Definition at line 402 of file BlockStructure.cpp.
|
virtualinherited |
Take the square root out of the positive semidefinite blocks, destroys original blocks, square root will be put in (*this)
option | = 1, positive square root, = -1, negative square root. |
Reimplemented in doci2DM::PHM.
Definition at line 353 of file BlockStructure.cpp.
|
inherited |
Copy upper triangle into lower triangle.
Definition at line 393 of file BlockStructure.cpp.
|
inherited |
Definition at line 277 of file BlockStructure.cpp.
|
friend |
|
private |