ergo
|
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. | |
![]() | |
void | writeToFile () |
Write object to file if filewrite is active. | |
void | readFromFile () |
Read object from file if filewrite is active. | |
bool | isOnFile () |
Check if object is on file. | |
long int | fileSize () |
Return file size. |
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. | |
![]() | |
virtual void | writeToFileProt (std::ofstream &) const =0 |
Write object to file. | |
virtual void | readFromFileProt (std::ifstream &)=0 |
Read object from file. | |
FileWritable () | |
Gives each object a unique ID-number and filename. | |
virtual | ~FileWritable () |
Removes file, if any. | |
FileWritable (FileWritable const &) | |
FileWritable & | operator= (FileWritable const &) |
Static Protected Member Functions | |
static void | getPermutedIndexes (std::vector< int > const &index, std::vector< int > const &permutation, std::vector< int > &newIndex) |
![]() | |
static std::string | getStatsTime (TypeTimeMap &theMap) |
static std::string | getStatsCount (TypeCountMap &theMap) |
static std::string | getStatsFileSizes (ObjPtrSet const &set) |
Protected Attributes | |
ValidPtr< Tmatrix > | matrixPtr |
Friends | |
class | MatrixGeneral< Treal, Tmatrix > |
class | MatrixSymmetric< Treal, Tmatrix > |
class | MatrixTriangular< Treal, Tmatrix > |
Additional Inherited Members | |
![]() | |
static void | setPath (char const *const newPath) |
Set the path to which the objects will be written. | |
static void | activate () |
Activate the filewriting. | |
static std::string | getStatsFileSizes () |
static std::string | writeAndReadAll () |
static void | resetStats () |
static std::string | getStatsTimeWrite () |
static std::string | getStatsTimeRead () |
static std::string | getStatsTimeCopyAndAssign () |
static std::string | getStatsCountWrite () |
static std::string | getStatsCountRead () |
static std::string | getStatsCountCopyAndAssign () |
![]() | |
typedef std::map< std::string, double > | TypeTimeMap |
typedef std::map< std::string, int > | TypeCountMap |
typedef std::set< FileWritable * > | ObjPtrSet |
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
|
inlineprotected |
|
inlineprotected |
|
inline |
Referenced by mainFun(), and simple_purification().
|
inlinevirtual |
Release memory for the information written to file.
Implements mat::FileWritable.
Referenced by add_disturbance_to_matrix(), SCF_restricted::clear_error_matrices(), SCF_unrestricted::clear_error_matrices(), compute_FDSminusSDF_sparse(), compute_h_core_matrix_sparse(), compute_operator_matrix_sparse_symm(), SCF_unrestricted::do_mulliken_pop_stuff(), do_tdhf_dynamics(), get_2e_matrices_and_energy_restricted_open(), get_2e_matrices_and_energy_simple_HF_sparse_unrestricted(), get_2e_matrices_and_energy_simple_sparse_unrestricted(), get_dens_from_fock_general(), get_dens_from_fock_sparse(), SCF_unrestricted::get_new_density_matrix(), getAllEigsInterval(), load_density_and_project_sparse(), and mat::MatrixSymmetric< ergo_real, Matri >::transfer().
|
inline |
|
inline |
Referenced by mat::MatrixGeneral< ergo_real, Matri >::assignFromFull(), mat::MatrixSymmetric< ergo_real, Matri >::assignFromFull(), mat::MatrixSymmetric< Treal, Tmatrix >::diff(), mat::MatrixSymmetric< Treal, Tmatrix >::diffIfSmall(), mat::MatrixGeneral< ergo_real, Matri >::fullMatrix(), mat::MatrixSymmetric< ergo_real, Matri >::fullMatrix(), mainFun(), and mat::MatrixSymmetric< ergo_real, Matri >::quickEuclBounds().
|
inline |
|
inline |
|
inline |
|
inlinestaticprotected |
|
inline |
|
inlineprotectedvirtual |
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.
|
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.
Referenced by mat::MatrixBase< ergo_real, Matri >::clear(), and SCF_restricted::get_2e_part_and_energy().
|
inline |
Get largest absolute value of matrix element in the matrix.
Referenced by compute_J_by_boxes_sparse().
|
inline |
|
inlineprotectedvirtual |
|
inline |
|
inlineprotected |
Referenced by mat::MatrixBase< ergo_real, Matri >::operator=().
|
inlineprotected |
Reimplemented in mat::MatrixGeneral< Treal, Tmatrix >, and mat::MatrixGeneral< ergo_real, Matri >.
|
inline |
|
protected |
|
protected |
|
inline |
Referenced by mat::MatrixTriangular< ergo_real, Matri >::assign_from_sparse(), mat::MatrixGeneral< ergo_real, Matri >::assign_from_sparse(), mat::MatrixSymmetric< ergo_real, Matri >::assign_from_sparse(), calculation_shared(), compute_dipole_moment_onecoord(), compute_h_core_matrix_sparse(), Vxc_worker::ComputeMatrix(), SCF_restricted::disturb_dens_matrix(), SCF_restricted::disturb_dens_matrix_exact(), SCF_restricted::disturb_dens_matrix_exact_try(), SCF_restricted::disturb_fock_matrix(), ComplexMatrix::do_conjugate(), do_tdhf_dynamics(), get_2e_matrices_and_energy_restricted_open(), get_2e_matrices_and_energy_simple_HF_sparse_unrestricted(), get_2e_matrices_and_energy_simple_sparse_unrestricted(), get_2e_matrix_and_energy_simple_HF_sparse(), get_2e_matrix_and_energy_simple_sparse(), SCF_restricted::get_2e_part_and_energy(), SCF_unrestricted::get_2e_part_and_energy(), get_Fock_matrix_in_ort_basis(), SCF_restricted::get_non_ort_err_mat_normalized_in_ort_basis(), get_random_positive_definite_matrix(), SCF_unrestricted::get_S2(), SCF_restricted::get_starting_guess_density(), SCF_unrestricted::get_starting_guess_density(), getAllEigsInterval(), ComplexMatrix::initialize(), SCF_restricted::initialize_matrices(), SCF_unrestricted::initialize_matrices(), load_density_and_project_sparse(), main(), mainFun(), mat::MatrixSymmetric< Treal, Tmatrix >::mixed_diff(), mat::MatrixSymmetric< Treal, Tmatrix >::mixed_norm(), mat::MatrixSymmetric< Treal, Tmatrix >::mixed_norm_thresh(), ComplexMatrix::product(), ComplexMatrix::rescale_im(), MatAccInvestigator< Treal, Tworker >::Scan(), SCF_general::SCF_general(), test_S_V_comparison(), test_V_by_explicit_comparison(), and test_V_by_explicit_comparison_tight().
|
inline |
Referenced by get_dens_from_fock_sparse(), mainFun(), and simple_purification().
|
protected |
|
inline |
|
protected |
|
friend |
|
friend |
|
friend |
|
protected |
Referenced by mat::MatrixSymmetric< ergo_real, Matri >::accumulateWith(), mat::MatrixBase< ergo_real, Matri >::add_identity(), mat::MatrixTriangular< ergo_real, Matri >::add_values(), mat::MatrixSymmetric< ergo_real, Matri >::add_values(), mat::MatrixTriangular< ergo_real, Matri >::assign_from_sparse(), mat::MatrixGeneral< ergo_real, Matri >::assign_from_sparse(), mat::MatrixSymmetric< ergo_real, Matri >::assign_from_sparse(), mat::MatrixGeneral< ergo_real, Matri >::assignFromFull(), mat::MatrixSymmetric< ergo_real, Matri >::assignFromFull(), mat::MatrixBase< ergo_real, Matri >::clear(), mat::MatrixTriangular< ergo_real, Matri >::frob(), mat::MatrixGeneral< ergo_real, Matri >::frob(), mat::MatrixSymmetric< ergo_real, Matri >::frob(), mat::MatrixGeneral< ergo_real, Matri >::frob_diff(), mat::MatrixSymmetric< ergo_real, Matri >::frob_diff(), mat::MatrixTriangular< ergo_real, Matri >::frob_thresh(), mat::MatrixGeneral< ergo_real, Matri >::frob_thresh(), mat::MatrixSymmetric< ergo_real, Matri >::frob_thresh(), mat::MatrixGeneral< ergo_real, Matri >::fullMatrix(), mat::MatrixSymmetric< ergo_real, Matri >::fullMatrix(), mat::MatrixGeneral< ergo_real, Matri >::gersgorin(), mat::MatrixSymmetric< ergo_real, Matri >::gersgorin(), mat::MatrixTriangular< ergo_real, Matri >::get_all_values(), mat::MatrixGeneral< ergo_real, Matri >::get_all_values(), mat::MatrixSymmetric< ergo_real, Matri >::get_all_values(), mat::MatrixBase< ergo_real, Matri >::get_ncols(), mat::MatrixBase< ergo_real, Matri >::get_nrows(), mat::MatrixTriangular< ergo_real, Matri >::get_values(), mat::MatrixGeneral< ergo_real, Matri >::get_values(), mat::MatrixSymmetric< ergo_real, Matri >::get_values(), mat::MatrixBase< ergo_real, Matri >::getCols(), mat::MatrixBase< ergo_real, Matri >::getMatrix(), mat::MatrixBase< ergo_real, Matri >::getRows(), mat::MatrixTriangular< ergo_real, Matri >::inch(), mat::MatrixBase< ergo_real, Matri >::inMemorySet(), mat::MatrixBase< ergo_real, Matri >::is_empty(), mat::MatrixBase< ergo_real, Matri >::MatrixBase(), mat::MatrixGeneral< ergo_real, Matri >::MatrixGeneral(), mat::MatrixSymmetric< ergo_real, Matri >::MatrixSymmetric(), mat::MatrixBase< ergo_real, Matri >::maxAbsValue(), mat::MatrixBase< ergo_real, Matri >::memory_usage(), mat::MatrixTriangular< ergo_real, Matri >::nnz(), mat::MatrixGeneral< ergo_real, Matri >::nnz(), mat::MatrixSymmetric< ergo_real, Matri >::nnz(), mat::MatrixTriangular< ergo_real, Matri >::nvalues(), mat::MatrixGeneral< ergo_real, Matri >::nvalues(), mat::MatrixSymmetric< ergo_real, Matri >::nvalues(), mat::MatrixBase< ergo_real, Matri >::operator*=(), mat::MatrixGeneral< Treal, Tmatrix >::operator+=(), mat::MatrixSymmetric< Treal, Tmatrix >::operator+=(), mat::MatrixGeneral< Treal, Tmatrix >::operator-=(), mat::MatrixSymmetric< Treal, Tmatrix >::operator-=(), mat::MatrixTriangular< ergo_real, Matri >::operator=(), mat::MatrixBase< ergo_real, Matri >::operator=(), mat::MatrixGeneral< ergo_real, Matri >::operator=(), mat::MatrixSymmetric< ergo_real, Matri >::operator=(), mat::MatrixBase< ergo_real, Matri >::operator==(), mat::MatrixTriangular< ergo_real, Matri >::random(), mat::MatrixGeneral< ergo_real, Matri >::random(), mat::MatrixSymmetric< ergo_real, Matri >::random(), mat::MatrixGeneral< ergo_real, Matri >::randomZeroStructure(), mat::MatrixSymmetric< ergo_real, Matri >::randomZeroStructure(), mat::MatrixBase< ergo_real, Matri >::resetSizesAndBlocks(), mat::MatrixTriangular< ergo_real, Matri >::setElementsByRule(), mat::MatrixGeneral< ergo_real, Matri >::setElementsByRule(), mat::MatrixSymmetric< ergo_real, Matri >::setElementsByRule(), mat::MatrixSymmetric< ergo_real, Matri >::simple_blockwise_frob_thresh(), mat::MatrixSymmetric< Treal, Tmatrix >::ssmmUpperTriangleOnly(), mat::MatrixBase< ergo_real, Matri >::trace(), mat::MatrixGeneral< ergo_real, Matri >::trace_ab(), mat::MatrixSymmetric< ergo_real, Matri >::trace_ab(), mat::MatrixGeneral< ergo_real, Matri >::trace_aTb(), mat::MatrixSymmetric< ergo_real, Matri >::transfer(), and mat::MatrixBase< ergo_real, Matri >::write_to_buffer_count().