v2DM-DOCI
1.0
|
#include <UniMatrix.h>
Public Member Functions | |
UnitaryMatrix (const simanneal::OptIndex &) | |
UnitaryMatrix (int) | |
UnitaryMatrix (const UnitaryMatrix &)=default | |
UnitaryMatrix (UnitaryMatrix &&)=default | |
virtual | ~UnitaryMatrix ()=default |
UnitaryMatrix & | operator= (const UnitaryMatrix &)=default |
UnitaryMatrix & | operator= (UnitaryMatrix &&)=default |
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 | |
std::unique_ptr< simanneal::OptIndex > | index |
Friends | |
std::ostream & | operator<< (std::ostream &, const doci2DM::UnitaryMatrix &) |
This class is for real unitary (block) matrices.
Definition at line 39 of file UniMatrix.h.
UnitaryMatrix::UnitaryMatrix | ( | const simanneal::OptIndex & | index | ) |
Create a block unitary matrix based on the dimensions of the irrep's in index
index | the information about the irrep's |
Definition at line 46 of file UniMatrix.cpp.
UnitaryMatrix::UnitaryMatrix | ( | int | n | ) |
Create a unitary matrix of size nxn
n | the size of the unitary matrix |
Definition at line 36 of file UniMatrix.cpp.
|
default |
|
default |
|
virtualdefault |
|
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.
|
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.
|
default |
|
default |
|
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.
|
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 |
Output stream operator overloaded, the usage is simple, if you want to print to a file, make an ifstream object and type:
object << matrix << endl;
For output onto the screen type:
cout << matrix << endl;
output | The stream to which you are writing (e.g. cout) |
matrix_p | de Matrix you want to print |
|
private |
Definition at line 72 of file UniMatrix.h.