ergo
mat::MatrixBase< Treal, Tmatrix > Class Template Reference

Base class for matrix API. More...

#include <MatrixBase.h>

Inheritance diagram for mat::MatrixBase< Treal, Tmatrix >:
mat::FileWritable mat::MatrixGeneral< Treal, Tmatrix > mat::MatrixSymmetric< Treal, Tmatrix > mat::MatrixTriangular< Treal, Tmatrix >

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. More...
 
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. More...
 
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. More...
 
- Public Member Functions inherited from mat::FileWritable
void writeToFile ()
 Write object to file if filewrite is active. More...
 
void readFromFile ()
 Read object from file if filewrite is active. More...
 
bool isOnFile ()
 Check if object is on file. More...
 
long int fileSize ()
 Return file size. More...
 

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. More...
 
- Protected Member Functions inherited from mat::FileWritable
virtual void writeToFileProt (std::ofstream &) const =0
 Write object to file. More...
 
virtual void readFromFileProt (std::ifstream &)=0
 Read object from file. More...
 
 FileWritable ()
 Gives each object a unique ID-number and filename. More...
 
virtual ~FileWritable ()
 Removes file, if any. More...
 
 FileWritable (FileWritable const &)
 
FileWritableoperator= (FileWritable const &)
 

Static Protected Member Functions

static void getPermutedIndexes (std::vector< int > const &index, std::vector< int > const &permutation, std::vector< int > &newIndex)
 
- Static Protected Member Functions inherited from mat::FileWritable
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 Public Member Functions inherited from mat::FileWritable
static void setPath (char const *const newPath)
 Set the path to which the objects will be written. More...
 
static void activate ()
 Activate the filewriting. More...
 
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 ()
 
- Protected Types inherited from mat::FileWritable
typedef std::map< std::string, double > TypeTimeMap
 
typedef std::map< std::string, int > TypeCountMap
 
typedef std::set< FileWritable * > ObjPtrSet
 

Detailed Description

template<typename Treal, typename Tmatrix>
class mat::MatrixBase< 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

Constructor & Destructor Documentation

template<typename Treal, typename Tmatrix>
mat::MatrixBase< Treal, Tmatrix >::MatrixBase ( )
inlineprotected
template<typename Treal, typename Tmatrix>
mat::MatrixBase< Treal, Tmatrix >::MatrixBase ( const MatrixBase< Treal, Tmatrix > &  other)
inlineprotected

Member Function Documentation

template<typename Treal, typename Tmatrix>
void mat::MatrixBase< Treal, Tmatrix >::add_identity ( Treal  alpha)
inline
template<typename Treal, typename Tmatrix>
void mat::MatrixBase< Treal, Tmatrix >::getCols ( SizesAndBlocks colsCopy) const
inline
template<typename Treal, typename Tmatrix>
Tmatrix const& mat::MatrixBase< Treal, Tmatrix >::getMatrix ( ) const
inline
template<typename Treal, typename Tmatrix>
Tmatrix& mat::MatrixBase< Treal, Tmatrix >::getMatrix ( )
inline
template<typename Treal, typename Tmatrix>
static void mat::MatrixBase< Treal, Tmatrix >::getPermutedIndexes ( std::vector< int > const &  index,
std::vector< int > const &  permutation,
std::vector< int > &  newIndex 
)
inlinestaticprotected
template<typename Treal, typename Tmatrix>
void mat::MatrixBase< Treal, Tmatrix >::getRows ( SizesAndBlocks rowsCopy) const
inline
template<typename Treal, typename Tmatrix>
void mat::MatrixBase< Treal, Tmatrix >::inMemorySet ( bool  )
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.

template<typename Treal, typename Tmatrix>
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.

Referenced by mat::MatrixBase< ergo_real, Matri >::clear(), and SCF_restricted::get_2e_part_and_energy().

template<typename Treal, typename Tmatrix>
Treal mat::MatrixBase< Treal, Tmatrix >::maxAbsValue ( ) const
inline

Get largest absolute value of matrix element in the matrix.

Referenced by compute_J_by_boxes_sparse().

template<typename Treal, typename Tmatrix>
size_t mat::MatrixBase< Treal, Tmatrix >::memory_usage ( ) const
inline

Referenced by main(), and mainFun().

template<typename Treal, typename Tmatrix>
std::string mat::MatrixBase< Treal, Tmatrix >::obj_type_id ( ) const
inlineprotectedvirtual
template<typename Treal, typename Tmatrix>
MatrixBase<Treal, Tmatrix>& mat::MatrixBase< Treal, Tmatrix >::operator*= ( Treal const  alpha)
inline
template<typename Treal, typename Tmatrix>
MatrixBase<Treal, Tmatrix>& mat::MatrixBase< Treal, Tmatrix >::operator= ( const MatrixBase< Treal, Tmatrix > &  other)
inlineprotected
template<typename Treal, typename Tmatrix>
MatrixBase<Treal, Tmatrix>& mat::MatrixBase< Treal, Tmatrix >::operator= ( const Xtrans< MatrixGeneral< Treal, Tmatrix > > &  mt)
inlineprotected
template<typename Treal, typename Tmatrix>
bool mat::MatrixBase< Treal, Tmatrix >::operator== ( int  k) const
inline
template<typename Treal , typename Tmatrix >
void mat::MatrixBase< Treal, Tmatrix >::read_from_buffer_base ( void *  buffer,
const int  n_bytes,
const matrix_type  mattype 
)
protected
template<typename Treal , typename Tmatrix >
void mat::MatrixBase< Treal, Tmatrix >::readFromFileBase ( std::ifstream &  file,
matrix_type const  mattype 
)
protected
template<typename Treal, typename Tmatrix>
void mat::MatrixBase< Treal, Tmatrix >::resetSizesAndBlocks ( SizesAndBlocks const &  newRows,
SizesAndBlocks const &  newCols 
)
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_electron_nuclear_attraction_energy(), get_Fock_matrix_in_ort_basis(), get_matrix_from_full(), 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(), 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().

template<typename Treal, typename Tmatrix>
Treal mat::MatrixBase< Treal, Tmatrix >::trace ( ) const
inline
template<typename Treal , typename Tmatrix >
void mat::MatrixBase< Treal, Tmatrix >::write_to_buffer_base ( void *  buffer,
const int  n_bytes,
const matrix_type  mattype 
) const
protected
template<typename Treal, typename Tmatrix>
void mat::MatrixBase< Treal, Tmatrix >::write_to_buffer_count ( int &  n_bytes) const
inline
template<typename Treal , typename Tmatrix >
void mat::MatrixBase< Treal, Tmatrix >::writeToFileBase ( std::ofstream &  file,
matrix_type const  mattype 
) const
protected

Friends And Related Function Documentation

template<typename Treal, typename Tmatrix>
friend class MatrixGeneral< Treal, Tmatrix >
friend
template<typename Treal, typename Tmatrix>
friend class MatrixSymmetric< Treal, Tmatrix >
friend
template<typename Treal, typename Tmatrix>
friend class MatrixTriangular< Treal, Tmatrix >
friend

Member Data Documentation

template<typename Treal, typename Tmatrix>
ValidPtr<Tmatrix> mat::MatrixBase< Treal, Tmatrix >::matrixPtr
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::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 >::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::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::MatrixBase< ergo_real, Matri >::trace(), mat::MatrixSymmetric< ergo_real, Matri >::transfer(), and mat::MatrixBase< ergo_real, Matri >::write_to_buffer_count().


The documentation for this class was generated from the following file: