|
MPQC
3.0.0-alpha
|
Distributed SymmSCMatrix. More...
#include <math/scmat/dist.h>
Public Member Functions | |
| DistSymmSCMatrix (const RefSCDimension &, DistSCMatrixKit *) | |
| double | get_element (int, int) const |
| Return or modify an element. | |
| void | set_element (int, int, double) |
| void | accumulate_element (int, int, double) |
| SCMatrix * | get_subblock (int, int, int, int) |
| Return a subblock of this. More... | |
| SymmSCMatrix * | get_subblock (int, int) |
| void | assign_subblock (SCMatrix *, int, int, int, int) |
| Assign m to a subblock of this. | |
| void | assign_subblock (SymmSCMatrix *, int, int) |
| void | accumulate_subblock (SCMatrix *, int, int, int, int) |
| Sum m into a subblock of this. | |
| void | accumulate_subblock (SymmSCMatrix *, int, int) |
| SCVector * | get_row (int i) |
| Return a row of this. | |
| void | assign_row (SCVector *v, int i) |
| Assign v to a row of this. | |
| void | accumulate_row (SCVector *v, int i) |
| Sum v to a row of this. | |
| void | accumulate_product_rr (SCMatrix *, SCMatrix *) |
| void | accumulate (const SymmSCMatrix *) |
| Sum m into this. | |
| double | invert_this () |
| Invert this. | |
| double | solve_this (SCVector *) |
| double | trace () |
| Return the trace. | |
| double | determ_this () |
| Return the determinant of this. this is overwritten. | |
| void | gen_invert_this (double condition_number_threshold=1e8) |
| uses invert_this() | |
| void | diagonalize (DiagSCMatrix *, SCMatrix *) |
| Diagonalize this, placing the eigenvalues in d and the eigenvectors in m. | |
| void | eigensystem (SymmSCMatrix *, DiagSCMatrix *, SCMatrix *) |
| Solve generalized eigensystem for this with metric s, placing the eigenvalues in d and the eigenvectors in m. More... | |
| void | accumulate_symmetric_sum (SCMatrix *) |
| Sum into a + a.t() | |
| void | element_op (const Ref< SCElementOp > &) |
| only applied to the unique elements of this. More... | |
| void | element_op (const Ref< SCElementOp2 > &, SymmSCMatrix *) |
| void | element_op (const Ref< SCElementOp3 > &, SymmSCMatrix *, SymmSCMatrix *) |
| virtual void | convert_accumulate (SymmSCMatrix *) |
| Ref< SCMatrixSubblockIter > | local_blocks (SCMatrixSubblockIter::Access) |
| Returns iterators for the local (rapidly accessible) blocks used in this matrix. | |
| Ref< SCMatrixSubblockIter > | all_blocks (SCMatrixSubblockIter::Access) |
| Returns iterators for the all blocks used in this matrix. | |
| Ref< DistSCMatrixKit > | skit () |
Public Member Functions inherited from sc::SymmSCMatrix | |
| SymmSCMatrix (const RefSCDimension &, SCMatrixKit *) | |
| Ref< SCMatrixKit > | kit () const |
| Return the SCMatrixKit object that created this object. | |
| virtual void | save (StateOut &) |
| Save and restore this in an implementation independent way. | |
| virtual void | restore (StateIn &) |
| virtual double | maxabs () const |
| Return the maximum absolute value element of this vector. | |
| virtual void | randomize () |
| Assign each element to a random number between -1 and 1. | |
| void | assign (double val) |
| Set all elements to val. | |
| void | assign (const double *m) |
| Assign element i, j to m[i*(i+1)/2+j]. | |
| void | assign (const double **m) |
| Assign element i, j to m[i][j]. | |
| void | assign (SymmSCMatrix *m) |
| Make this have the same elements as m. More... | |
| virtual void | assign_val (double val) |
| Overridden to implement the assign functions. | |
| virtual void | assign_p (const double *m) |
| virtual void | assign_pp (const double **m) |
| virtual void | assign_s (SymmSCMatrix *m) |
| void | convert (double *a) const |
| Like the assign members, but these write values to the arguments. | |
| void | convert (double **a) const |
| void | convert (SymmSCMatrix *a) |
| virtual void | convert_p (double *) const |
| virtual void | convert_pp (double **) const |
| virtual void | convert_s (SymmSCMatrix *) |
| virtual void | scale (double) |
| Multiply all elements by val. | |
| virtual void | scale_diagonal (double) |
| Scale the diagonal elements by val. | |
| virtual void | shift_diagonal (double) |
| Shift the diagonal elements by val. | |
| virtual void | unit () |
| Make this equal to the unit matrix. | |
| int | n () const |
| Return the dimension. | |
| virtual SymmSCMatrix * | copy () |
| Return a matrix with the same dimension and same elements. | |
| virtual SymmSCMatrix * | clone () |
| Return a matrix with the same dimension but uninitialized memory. | |
| RefSCDimension | dim () const |
| Return the dimension. | |
| virtual void | accumulate_symmetric_product (SCMatrix *a) |
| Sum into this a * a.t() | |
| virtual void | accumulate_transform (SCMatrix *, SymmSCMatrix *, SCMatrix::Transform=SCMatrix::NormalTransform) |
| virtual void | accumulate_transform (SCMatrix *, DiagSCMatrix *, SCMatrix::Transform=SCMatrix::NormalTransform) |
| virtual void | accumulate_transform (SymmSCMatrix *, SymmSCMatrix *) |
| virtual void | accumulate_symmetric_outer_product (SCVector *) |
| virtual double | scalar_product (SCVector *v) |
| Return the scalar obtained by multiplying this on the left and right by v. | |
| void | print (std::ostream &o=ExEnv::out0()) const |
| Print out the matrix. | |
| void | print (const char *title=0, std::ostream &out=ExEnv::out0(), int=10) const |
| virtual void | vprint (const char *title=0, std::ostream &out=ExEnv::out0(), int=10) const |
| Ref< MessageGrp > | messagegrp () const |
| Returns the message group used by the matrix kit. | |
Public Member Functions inherited from sc::DescribedClass | |
| DescribedClass (const DescribedClass &) | |
| DescribedClass & | operator= (const DescribedClass &) |
| ClassDesc * | class_desc () const MPQC__NOEXCEPT |
| This returns the unique pointer to the ClassDesc corresponding to the given type_info object. More... | |
| const char * | class_name () const |
| Return the name of the object's exact type. | |
| int | class_version () const |
| Return the version of the class. | |
| Ref< DescribedClass > | ref () |
| Return this object wrapped up in a Ref smart pointer. More... | |
Public Member Functions inherited from sc::RefCount | |
| size_t | identifier () const |
| Return the unique identifier for this object that can be compared for different objects of different types. More... | |
| int | lock_ptr () const |
| Lock this object. | |
| int | unlock_ptr () const |
| Unlock this object. | |
| void | use_locks (bool inVal) |
| start and stop using locks on this object | |
| refcount_t | nreference () const |
| Return the reference count. | |
| refcount_t | reference () |
| Increment the reference count and return the new count. | |
| refcount_t | dereference () |
| Decrement the reference count and return the new count. | |
| int | managed () const |
| void | unmanage () |
| Turn off the reference counting mechanism for this object. More... | |
Protected Member Functions | |
| void | init_blocklist () |
| double * | find_element (int i, int j) const |
| int | element_to_node (int i, int j) const |
| int | block_to_node (int, int) const |
| Ref< SCMatrixBlock > | block_to_block (int, int) const |
| void | error (const char *msg) |
Protected Member Functions inherited from sc::RefCount | |
| RefCount (const RefCount &) | |
| RefCount & | operator= (const RefCount &) |
Protected Attributes | |
| Ref< SCMatrixBlockList > | blocklist |
Protected Attributes inherited from sc::SymmSCMatrix | |
| RefSCDimension | d |
| Ref< SCMatrixKit > | kit_ |
Friends | |
| class | DistSCMatrix |
| class | DistDiagSCMatrix |
| class | DistSCVector |
Distributed SymmSCMatrix.
|
virtual |
Solve generalized eigensystem for this with metric s, placing the eigenvalues in d and the eigenvectors in m.
| AlgorithmException | eigensystem could not be solved within available precision. Check condition number of s. |
Implements sc::SymmSCMatrix.
|
virtual |
only applied to the unique elements of this.
For example, to compute the sum of all matrix elements you need to do the following:
Implements sc::SymmSCMatrix.
|
virtual |
Return a subblock of this.
The subblock is defined as the rows starting at br and ending at er, and the columns beginning at bc and ending at ec.
Implements sc::SymmSCMatrix.