Base class for matrix API. More...
#include <MatrixBase.h>
Public Member Functions | |
void | resetSizesAndBlocks (SizesAndBlocks const &newRows, SizesAndBlocks const &newCols) |
void | getRows (SizesAndBlocks &rowsCopy) const |
void | getCols (SizesAndBlocks &colsCopy) const |
bool | is_empty () const |
Check if matrix is empty. | |
Treal | trace () const |
void | add_identity (Treal alpha) |
MatrixBase< Treal, Tmatrix > & | operator*= (Treal const alpha) |
bool | operator== (int k) const |
void | clear () |
Release memory for the information written to file. | |
size_t | memory_usage () const |
void | write_to_buffer_count (int &n_bytes) const |
int | get_nrows () const |
int | get_ncols () const |
Tmatrix const & | getMatrix () const |
Tmatrix & | getMatrix () |
Treal | maxAbsValue () const |
Get largest absolute value of matrix element in the matrix. | |
Protected Member Functions | |
MatrixBase () | |
MatrixBase (const MatrixBase< Treal, Tmatrix > &other) | |
MatrixBase< Treal, Tmatrix > & | operator= (const MatrixBase< Treal, Tmatrix > &other) |
MatrixBase< Treal, Tmatrix > & | operator= (const Xtrans< MatrixGeneral< Treal, Tmatrix > > &mt) |
void | write_to_buffer_base (void *buffer, const int n_bytes, const matrix_type mattype) const |
void | read_from_buffer_base (void *buffer, const int n_bytes, const matrix_type mattype) |
void | writeToFileBase (std::ofstream &file, matrix_type const mattype) const |
void | readFromFileBase (std::ifstream &file, matrix_type const mattype) |
std::string | obj_type_id () const |
void | inMemorySet (bool inMem) |
Make object invalid (false) via this function when object is written to file and valid (true) when object is read from file. | |
Static Protected Member Functions | |
static void | getPermutedIndexes (std::vector< int > const &index, std::vector< int > const &permutation, std::vector< int > &newIndex) |
Protected Attributes | |
ValidPtr< Tmatrix > | matrixPtr |
Friends | |
class | MatrixGeneral< Treal, Tmatrix > |
class | MatrixSymmetric< Treal, Tmatrix > |
class | MatrixTriangular< Treal, Tmatrix > |
Base class for matrix API.
This class provides a base for an API to a matrix library built up from three types which are also the template arguments to this class.
Treal: Type for real numbers
Tmatrix: The matrix class
mat::MatrixBase< Treal, Tmatrix >::MatrixBase | ( | ) | [inline, protected] |
mat::MatrixBase< Treal, Tmatrix >::MatrixBase | ( | const MatrixBase< Treal, Tmatrix > & | other | ) | [inline, protected] |
void mat::MatrixBase< Treal, Tmatrix >::add_identity | ( | Treal | alpha | ) | [inline] |
References mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
Referenced by mainFun().
void mat::MatrixBase< Treal, Tmatrix >::clear | ( | ) | [inline, virtual] |
Release memory for the information written to file.
Implements mat::FileWritable.
References mat::MatrixBase< Treal, Tmatrix >::is_empty(), and mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
Referenced by SCF_unrestricted::clear_error_matrices(), SCF_restricted::clear_error_matrices(), and mat::MatrixSymmetric< Treal, Tmatrix >::transfer().
int mat::MatrixBase< Treal, Tmatrix >::get_ncols | ( | ) | const [inline] |
int mat::MatrixBase< Treal, Tmatrix >::get_nrows | ( | ) | const [inline] |
References mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
Referenced by mat::MatrixSymmetric< Treal, Tmatrix >::assignFromFull(), mat::MatrixGeneral< Treal, Tmatrix >::assignFromFull(), mat::MatrixSymmetric< Treal, Tmatrix >::diff(), mat::MatrixSymmetric< Treal, Tmatrix >::diffIfSmall(), mat::MatrixTriangular< Treal, Tmatrix >::eucl(), mat::MatrixSymmetric< Treal, Tmatrix >::eucl(), mat::MatrixGeneral< Treal, Tmatrix >::eucl(), mat::MatrixSymmetric< Treal, Tmatrix >::fullMatrix(), mat::MatrixGeneral< Treal, Tmatrix >::fullMatrix(), main(), mainFun(), and mat::MatrixSymmetric< Treal, Tmatrix >::quickEuclBounds().
void mat::MatrixBase< Treal, Tmatrix >::getCols | ( | SizesAndBlocks & | colsCopy | ) | const [inline] |
Tmatrix& mat::MatrixBase< Treal, Tmatrix >::getMatrix | ( | ) | [inline] |
References mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
Tmatrix const& mat::MatrixBase< Treal, Tmatrix >::getMatrix | ( | ) | const [inline] |
static void mat::MatrixBase< Treal, Tmatrix >::getPermutedIndexes | ( | std::vector< int > const & | index, | |
std::vector< int > const & | permutation, | |||
std::vector< int > & | newIndex | |||
) | [inline, static, protected] |
void mat::MatrixBase< Treal, Tmatrix >::getRows | ( | SizesAndBlocks & | rowsCopy | ) | const [inline] |
References mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
void mat::MatrixBase< Treal, Tmatrix >::inMemorySet | ( | bool | ) | [inline, protected, virtual] |
Make object invalid (false) via this function when object is written to file and valid (true) when object is read from file.
Implements mat::FileWritable.
References mat::ValidPtr< Tobj >::inMemorySet(), and mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
bool mat::MatrixBase< Treal, Tmatrix >::is_empty | ( | ) | const [inline] |
Check if matrix is empty.
Being empty is not the same as being zero. A matrix being empty means that the data structure has not been set.
References mat::ValidPtr< Tobj >::haveDataStructureGet(), and mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
Referenced by mat::MatrixBase< Treal, Tmatrix >::clear(), mat::MatrixBase< Treal, Tmatrix >::readFromFileBase(), and mat::MatrixBase< Treal, Tmatrix >::writeToFileBase().
Treal mat::MatrixBase< Treal, Tmatrix >::maxAbsValue | ( | ) | const [inline] |
Get largest absolute value of matrix element in the matrix.
References mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
size_t mat::MatrixBase< Treal, Tmatrix >::memory_usage | ( | ) | const [inline] |
References mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
Referenced by mainFun().
std::string mat::MatrixBase< Treal, Tmatrix >::obj_type_id | ( | ) | const [inline, protected, virtual] |
Implements mat::FileWritable.
Reimplemented in mat::MatrixGeneral< Treal, Tmatrix >, mat::MatrixSymmetric< Treal, Tmatrix >, and mat::MatrixTriangular< Treal, Tmatrix >.
MatrixBase<Treal, Tmatrix>& mat::MatrixBase< Treal, Tmatrix >::operator*= | ( | Treal const | alpha | ) | [inline] |
References mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
MatrixBase<Treal, Tmatrix>& mat::MatrixBase< Treal, Tmatrix >::operator= | ( | const Xtrans< MatrixGeneral< Treal, Tmatrix > > & | mt | ) | [inline, protected] |
MatrixBase<Treal, Tmatrix>& mat::MatrixBase< Treal, Tmatrix >::operator= | ( | const MatrixBase< Treal, Tmatrix > & | other | ) | [inline, protected] |
Reimplemented from mat::FileWritable.
Reimplemented in mat::MatrixGeneral< Treal, Tmatrix >, mat::MatrixSymmetric< Treal, Tmatrix >, and mat::MatrixTriangular< Treal, Tmatrix >.
References mat::ValidPtr< Tobj >::getConstRefForCopying(), mat::ValidPtr< Tobj >::haveDataStructureGet(), mat::ValidPtr< Tobj >::haveDataStructureSet(), mat::ValidPtr< Tobj >::inMemoryGet(), mat::ValidPtr< Tobj >::inMemorySet(), and mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
bool mat::MatrixBase< Treal, Tmatrix >::operator== | ( | int | k | ) | const [inline] |
References mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
void mat::MatrixBase< Treal, Tmatrix >::read_from_buffer_base | ( | void * | buffer, | |
const int | n_bytes, | |||
const matrix_type | mattype | |||
) | [inline, protected] |
void mat::MatrixBase< Treal, Tmatrix >::readFromFileBase | ( | std::ifstream & | file, | |
matrix_type const | mattype | |||
) | [inline, protected] |
References mat::MatrixBase< Treal, Tmatrix >::is_empty(), and mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
Referenced by mat::MatrixTriangular< Treal, Tmatrix >::readFromFileProt(), mat::MatrixSymmetric< Treal, Tmatrix >::readFromFileProt(), and mat::MatrixGeneral< Treal, Tmatrix >::readFromFileProt().
void mat::MatrixBase< Treal, Tmatrix >::resetSizesAndBlocks | ( | SizesAndBlocks const & | newRows, | |
SizesAndBlocks const & | newCols | |||
) | [inline] |
References mat::ValidPtr< Tobj >::haveDataStructureSet(), and mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
Referenced by mat::MatrixTriangular< Treal, Tmatrix >::assign_from_sparse(), mat::MatrixSymmetric< Treal, Tmatrix >::assign_from_sparse(), mat::MatrixGeneral< Treal, Tmatrix >::assign_from_sparse(), SCF_unrestricted::get_2e_part_and_energy(), SCF_unrestricted::get_S2(), SCF_unrestricted::initialize_matrices(), SCF_restricted::initialize_matrices(), main(), mainFun(), mat::MatrixSymmetric< Treal, Tmatrix >::mixed_diff(), mat::MatrixSymmetric< Treal, Tmatrix >::mixed_norm(), mat::MatrixSymmetric< Treal, Tmatrix >::mixed_norm_thresh(), MatAccInvestigator< Treal, Tworker >::Scan(), and SCF_general::SCF_general().
Treal mat::MatrixBase< Treal, Tmatrix >::trace | ( | ) | const [inline] |
References mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
void mat::MatrixBase< Treal, Tmatrix >::write_to_buffer_base | ( | void * | buffer, | |
const int | n_bytes, | |||
const matrix_type | mattype | |||
) | const [inline, protected] |
void mat::MatrixBase< Treal, Tmatrix >::write_to_buffer_count | ( | int & | n_bytes | ) | const [inline] |
References mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
void mat::MatrixBase< Treal, Tmatrix >::writeToFileBase | ( | std::ofstream & | file, | |
matrix_type const | mattype | |||
) | const [inline, protected] |
References mat::MatrixBase< Treal, Tmatrix >::is_empty(), and mat::MatrixBase< Treal, Tmatrix >::matrixPtr.
Referenced by mat::MatrixTriangular< Treal, Tmatrix >::writeToFileProt(), mat::MatrixSymmetric< Treal, Tmatrix >::writeToFileProt(), and mat::MatrixGeneral< Treal, Tmatrix >::writeToFileProt().
friend class MatrixGeneral< Treal, Tmatrix > [friend] |
friend class MatrixSymmetric< Treal, Tmatrix > [friend] |
friend class MatrixTriangular< Treal, Tmatrix > [friend] |
ValidPtr<Tmatrix> mat::MatrixBase< Treal, Tmatrix >::matrixPtr [protected] |
Referenced by mat::MatrixSymmetric< Treal, Tmatrix >::accumulateWith(), mat::MatrixBase< Treal, Tmatrix >::add_identity(), mat::MatrixTriangular< Treal, Tmatrix >::add_values(), mat::MatrixSymmetric< Treal, Tmatrix >::add_values(), mat::MatrixTriangular< Treal, Tmatrix >::assign_from_sparse(), mat::MatrixSymmetric< Treal, Tmatrix >::assign_from_sparse(), mat::MatrixGeneral< Treal, Tmatrix >::assign_from_sparse(), mat::MatrixSymmetric< Treal, Tmatrix >::assignFromFull(), mat::MatrixGeneral< Treal, Tmatrix >::assignFromFull(), mat::MatrixBase< Treal, Tmatrix >::clear(), mat::MatrixTriangular< Treal, Tmatrix >::frob(), mat::MatrixSymmetric< Treal, Tmatrix >::frob(), mat::MatrixGeneral< Treal, Tmatrix >::frob(), mat::MatrixSymmetric< Treal, Tmatrix >::frob_diff(), mat::MatrixGeneral< Treal, Tmatrix >::frob_diff(), mat::MatrixTriangular< Treal, Tmatrix >::frob_thresh(), mat::MatrixSymmetric< Treal, Tmatrix >::frob_thresh(), mat::MatrixGeneral< Treal, Tmatrix >::frob_thresh(), mat::MatrixSymmetric< Treal, Tmatrix >::fullMatrix(), mat::MatrixGeneral< Treal, Tmatrix >::fullMatrix(), mat::MatrixSymmetric< Treal, Tmatrix >::gershgorin(), mat::MatrixGeneral< Treal, Tmatrix >::gershgorin(), mat::MatrixTriangular< Treal, Tmatrix >::get_all_values(), mat::MatrixSymmetric< Treal, Tmatrix >::get_all_values(), mat::MatrixGeneral< Treal, Tmatrix >::get_all_values(), mat::MatrixBase< Treal, Tmatrix >::get_ncols(), mat::MatrixBase< Treal, Tmatrix >::get_nrows(), mat::MatrixTriangular< Treal, Tmatrix >::get_values(), mat::MatrixSymmetric< Treal, Tmatrix >::get_values(), mat::MatrixGeneral< Treal, Tmatrix >::get_values(), mat::MatrixBase< Treal, Tmatrix >::getCols(), mat::MatrixBase< Treal, Tmatrix >::getMatrix(), mat::MatrixBase< Treal, Tmatrix >::getRows(), mat::MatrixTriangular< Treal, Tmatrix >::inch(), mat::MatrixBase< Treal, Tmatrix >::inMemorySet(), mat::MatrixBase< Treal, Tmatrix >::is_empty(), mat::MatrixBase< Treal, Tmatrix >::MatrixBase(), mat::MatrixGeneral< Treal, Tmatrix >::MatrixGeneral(), mat::MatrixSymmetric< Treal, Tmatrix >::MatrixSymmetric(), mat::MatrixBase< Treal, Tmatrix >::maxAbsValue(), mat::MatrixBase< Treal, Tmatrix >::memory_usage(), mat::MatrixTriangular< Treal, Tmatrix >::nnz(), mat::MatrixSymmetric< Treal, Tmatrix >::nnz(), mat::MatrixGeneral< Treal, Tmatrix >::nnz(), mat::MatrixTriangular< Treal, Tmatrix >::nvalues(), mat::MatrixSymmetric< Treal, Tmatrix >::nvalues(), mat::MatrixGeneral< Treal, Tmatrix >::nvalues(), mat::MatrixBase< Treal, Tmatrix >::operator*=(), mat::MatrixSymmetric< Treal, Tmatrix >::operator+=(), mat::MatrixGeneral< Treal, Tmatrix >::operator+=(), mat::MatrixSymmetric< Treal, Tmatrix >::operator-=(), mat::MatrixGeneral< Treal, Tmatrix >::operator-=(), mat::MatrixTriangular< Treal, Tmatrix >::operator=(), mat::MatrixSymmetric< Treal, Tmatrix >::operator=(), mat::MatrixGeneral< Treal, Tmatrix >::operator=(), mat::MatrixBase< Treal, Tmatrix >::operator=(), mat::MatrixBase< Treal, Tmatrix >::operator==(), mat::MatrixTriangular< Treal, Tmatrix >::random(), mat::MatrixSymmetric< Treal, Tmatrix >::random(), mat::MatrixGeneral< Treal, Tmatrix >::random(), mat::MatrixSymmetric< Treal, Tmatrix >::randomZeroStructure(), mat::MatrixGeneral< Treal, Tmatrix >::randomZeroStructure(), mat::MatrixBase< Treal, Tmatrix >::read_from_buffer_base(), mat::MatrixBase< Treal, Tmatrix >::readFromFileBase(), mat::MatrixBase< Treal, Tmatrix >::resetSizesAndBlocks(), mat::MatrixTriangular< Treal, Tmatrix >::setElementsByRule(), mat::MatrixSymmetric< Treal, Tmatrix >::setElementsByRule(), mat::MatrixGeneral< Treal, Tmatrix >::setElementsByRule(), mat::MatrixSymmetric< Treal, Tmatrix >::simple_blockwise_frob_thresh(), mat::MatrixSymmetric< Treal, Tmatrix >::ssmmUpperTriangleOnly(), mat::MatrixBase< Treal, Tmatrix >::trace(), mat::MatrixSymmetric< Treal, Tmatrix >::trace_ab(), mat::MatrixGeneral< Treal, Tmatrix >::trace_ab(), mat::MatrixGeneral< Treal, Tmatrix >::trace_aTb(), mat::MatrixSymmetric< Treal, Tmatrix >::transfer(), mat::MatrixBase< Treal, Tmatrix >::write_to_buffer_base(), mat::MatrixBase< Treal, Tmatrix >::write_to_buffer_count(), and mat::MatrixBase< Treal, Tmatrix >::writeToFileBase().