OpenMEEG
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
OpenMEEG::Matrix Class Reference

Matrix class. More...

#include <matrix.h>

Inheritance diagram for OpenMEEG::Matrix:
Inheritance graph
[legend]
Collaboration diagram for OpenMEEG::Matrix:
Collaboration graph
[legend]

Public Member Functions

 Matrix ()
 
 Matrix (const char *fname)
 
 Matrix (const size_t M, const size_t N)
 
 Matrix (const Matrix &A, const DeepCopy)
 
 Matrix (const SymMatrix &A)
 
 Matrix (const SparseMatrix &A)
 
 Matrix (const Vector &v, const size_t M, const size_t N)
 
void alloc_data ()
 
void reference_data (const double *vals)
 
bool empty () const
 Test if Matrix is empty. More...
 
size_t size () const
 Get Matrix size. More...
 
double * data () const
 Get Matrix data. More...
 
double operator() (size_t i, size_t j) const
 Get Matrix value. More...
 
double & operator() (size_t i, size_t j)
 Get Matrix value. More...
 
Matrix submat (size_t istart, size_t isize, size_t jstart, size_t jsize) const
 
void insertmat (size_t istart, size_t jstart, const Matrix &B)
 
Vector getcol (size_t j) const
 
void setcol (size_t j, const Vector &v)
 
Vector getlin (size_t i) const
 
void setlin (size_t i, const Vector &v)
 
const Matrixset (const double d)
 
Matrix operator* (const Matrix &B) const
 
Matrix operator* (const SymMatrix &B) const
 
Matrix operator* (const SparseMatrix &B) const
 
Matrix operator+ (const Matrix &B) const
 
Matrix operator- (const Matrix &B) const
 
Matrix operator* (double x) const
 
Matrix operator/ (double x) const
 
void operator+= (const Matrix &B)
 
void operator-= (const Matrix &B)
 
void operator*= (double x)
 
void operator/= (double x)
 
Vector operator* (const Vector &v) const
 
Vector tmult (const Vector &v) const
 
Matrix tmult (const Matrix &m) const
 
Matrix multt (const Matrix &m) const
 
Matrix tmultt (const Matrix &m) const
 
Vector mean () const
 
Vector tmean () const
 
Matrix transpose () const
 
Matrix inverse () const
 
Matrix pinverse (double reltol=0) const
 
void svd (Matrix &U, SparseMatrix &S, Matrix &V, bool complete=true) const
 
double frobenius_norm () const
 Get Matrix Frobenius norm. More...
 
double dot (const Matrix &B) const
 
void save (const char *filename) const
 Save Matrix to file (Format set using file name extension) More...
 
void load (const char *filename)
 Load Matrix from file (Format set using file name extension) More...
 
void save (const std::string &s) const
 
void load (const std::string &s)
 
void info () const
 Print info on Matrix. More...
 
- Public Member Functions inherited from OpenMEEG::LinOp
 LinOp ()
 
 LinOp (const size_t m, const size_t n, const StorageType st, const Dimension d)
 
LinOpoperator= (const LinOp &l)
 
- Public Member Functions inherited from OpenMEEG::LinOpInfo
 LinOpInfo ()
 
 LinOpInfo (const size_t m, const size_t n, const StorageType st, const Dimension d)
 
virtual ~LinOpInfo ()
 
LinOpInfooperator= (const LinOpInfo &l)
 
size_t nlin () const
 
size_t & nlin ()
 
virtual size_t ncol () const
 
size_t & ncol ()
 
StorageType storageType () const
 
StorageTypestorageType ()
 
Dimension dimension () const
 
Dimensiondimension ()
 
IOdefault_io ()
 

Protected Member Functions

 Matrix (const Matrix &A, const size_t M)
 

Protected Attributes

utils::RCPtr< LinOpValuevalue
 
- Protected Attributes inherited from OpenMEEG::LinOpInfo
size_t num_lines
 
size_t num_cols
 
StorageType storage
 
Dimension dim
 
IO DefaultIO
 

Friends

class Vector
 
class SparseMatrix
 
class SymMatrix
 

Additional Inherited Members

- Public Types inherited from OpenMEEG::LinOpInfo
enum  StorageType { FULL, SYMMETRIC, SPARSE }
 
typedef maths::MathsIOIO
 
typedef unsigned Dimension
 

Detailed Description

Matrix class.

Matrix class

Definition at line 61 of file matrix.h.

Constructor & Destructor Documentation

◆ Matrix() [1/8]

OpenMEEG::Matrix::Matrix ( const Matrix A,
const size_t  M 
)
inlineexplicitprotected

Definition at line 68 of file matrix.h.

◆ Matrix() [2/8]

OpenMEEG::Matrix::Matrix ( )
inline

Definition at line 72 of file matrix.h.

◆ Matrix() [3/8]

OpenMEEG::Matrix::Matrix ( const char *  fname)
inline

Definition at line 73 of file matrix.h.

◆ Matrix() [4/8]

OpenMEEG::Matrix::Matrix ( const size_t  M,
const size_t  N 
)
inline

Definition at line 74 of file matrix.h.

◆ Matrix() [5/8]

OpenMEEG::Matrix::Matrix ( const Matrix A,
const  DeepCopy 
)
inline

Definition at line 75 of file matrix.h.

◆ Matrix() [6/8]

OpenMEEG::Matrix::Matrix ( const SymMatrix A)
explicit

◆ Matrix() [7/8]

OpenMEEG::Matrix::Matrix ( const SparseMatrix A)
explicit

◆ Matrix() [8/8]

OpenMEEG::Matrix::Matrix ( const Vector v,
const size_t  M,
const size_t  N 
)

Member Function Documentation

◆ alloc_data()

void OpenMEEG::Matrix::alloc_data ( )
inline

Definition at line 82 of file matrix.h.

◆ reference_data()

void OpenMEEG::Matrix::reference_data ( const double *  vals)
inline

Definition at line 83 of file matrix.h.

◆ empty()

bool OpenMEEG::Matrix::empty ( ) const
inline

Test if Matrix is empty.

Returns
true if Matrix is empty
See also

Definition at line 89 of file matrix.h.

◆ size()

size_t OpenMEEG::Matrix::size ( ) const
inlinevirtual

Get Matrix size.

Returns
number of values (nb lines x nb columns)
See also

Implements OpenMEEG::LinOp.

Definition at line 95 of file matrix.h.

◆ data()

double* OpenMEEG::Matrix::data ( ) const
inline

Get Matrix data.

Returns
pointer to Matrix values
See also

Definition at line 101 of file matrix.h.

◆ operator()() [1/2]

double OpenMEEG::Matrix::operator() ( size_t  i,
size_t  j 
) const
inline

Get Matrix value.

Returns
value in Matrix
See also

Definition at line 179 of file matrix.h.

◆ operator()() [2/2]

double & OpenMEEG::Matrix::operator() ( size_t  i,
size_t  j 
)
inline

Get Matrix value.

Returns
reference to value in Matrix
See also

Definition at line 183 of file matrix.h.

◆ submat()

Matrix OpenMEEG::Matrix::submat ( size_t  istart,
size_t  isize,
size_t  jstart,
size_t  jsize 
) const
inline

Definition at line 219 of file matrix.h.

◆ insertmat()

void OpenMEEG::Matrix::insertmat ( size_t  istart,
size_t  jstart,
const Matrix B 
)
inline

Definition at line 236 of file matrix.h.

◆ getcol()

Vector OpenMEEG::Matrix::getcol ( size_t  j) const
inline

Definition at line 245 of file matrix.h.

◆ setcol()

void OpenMEEG::Matrix::setcol ( size_t  j,
const Vector v 
)
inline

Definition at line 267 of file matrix.h.

◆ getlin()

Vector OpenMEEG::Matrix::getlin ( size_t  i) const
inline

Definition at line 256 of file matrix.h.

◆ setlin()

void OpenMEEG::Matrix::setlin ( size_t  i,
const Vector v 
)
inline

Definition at line 276 of file matrix.h.

◆ set()

const Matrix& OpenMEEG::Matrix::set ( const double  d)

◆ operator*() [1/5]

Matrix OpenMEEG::Matrix::operator* ( const Matrix B) const
inline

Definition at line 344 of file matrix.h.

◆ operator*() [2/5]

Matrix OpenMEEG::Matrix::operator* ( const SymMatrix B) const
inline

Definition at line 428 of file matrix.h.

◆ operator*() [3/5]

Matrix OpenMEEG::Matrix::operator* ( const SparseMatrix B) const

◆ operator+()

Matrix OpenMEEG::Matrix::operator+ ( const Matrix B) const
inline

Definition at line 449 of file matrix.h.

◆ operator-()

Matrix OpenMEEG::Matrix::operator- ( const Matrix B) const
inline

Definition at line 462 of file matrix.h.

◆ operator*() [4/5]

Matrix OpenMEEG::Matrix::operator* ( double  x) const

◆ operator/()

Matrix OpenMEEG::Matrix::operator/ ( double  x) const

◆ operator+=()

void OpenMEEG::Matrix::operator+= ( const Matrix B)
inline

Definition at line 475 of file matrix.h.

◆ operator-=()

void OpenMEEG::Matrix::operator-= ( const Matrix B)
inline

Definition at line 486 of file matrix.h.

◆ operator*=()

void OpenMEEG::Matrix::operator*= ( double  x)

◆ operator/=()

void OpenMEEG::Matrix::operator/= ( double  x)

◆ operator*() [5/5]

Vector OpenMEEG::Matrix::operator* ( const Vector v) const
inline

Definition at line 203 of file matrix.h.

◆ tmult() [1/2]

Vector OpenMEEG::Matrix::tmult ( const Vector v) const
inline

Definition at line 285 of file matrix.h.

◆ tmult() [2/2]

Matrix OpenMEEG::Matrix::tmult ( const Matrix m) const
inline

Definition at line 365 of file matrix.h.

◆ multt()

Matrix OpenMEEG::Matrix::multt ( const Matrix m) const
inline

Definition at line 386 of file matrix.h.

◆ tmultt()

Matrix OpenMEEG::Matrix::tmultt ( const Matrix m) const
inline

Definition at line 407 of file matrix.h.

◆ mean()

Vector OpenMEEG::Matrix::mean ( ) const

◆ tmean()

Vector OpenMEEG::Matrix::tmean ( ) const

◆ transpose()

Matrix OpenMEEG::Matrix::transpose ( ) const

◆ inverse()

Matrix OpenMEEG::Matrix::inverse ( ) const
inline

Definition at line 301 of file matrix.h.

◆ pinverse()

Matrix OpenMEEG::Matrix::pinverse ( double  reltol = 0) const

◆ svd()

void OpenMEEG::Matrix::svd ( Matrix U,
SparseMatrix S,
Matrix V,
bool  complete = true 
) const

◆ frobenius_norm()

double OpenMEEG::Matrix::frobenius_norm ( ) const
inline

Get Matrix Frobenius norm.

Returns
norm value
See also

Definition at line 188 of file matrix.h.

◆ dot()

double OpenMEEG::Matrix::dot ( const Matrix B) const
inline

Definition at line 497 of file matrix.h.

◆ save() [1/2]

void OpenMEEG::Matrix::save ( const char *  filename) const

Save Matrix to file (Format set using file name extension)

See also

◆ load() [1/2]

void OpenMEEG::Matrix::load ( const char *  filename)

Load Matrix from file (Format set using file name extension)

See also

◆ save() [2/2]

void OpenMEEG::Matrix::save ( const std::string &  s) const
inline

Definition at line 167 of file matrix.h.

◆ load() [2/2]

void OpenMEEG::Matrix::load ( const std::string &  s)
inline

Definition at line 168 of file matrix.h.

◆ info()

void OpenMEEG::Matrix::info ( ) const
virtual

Print info on Matrix.

See also

Implements OpenMEEG::LinOp.

Friends And Related Function Documentation

◆ Vector

friend class Vector
friend

Definition at line 64 of file matrix.h.

◆ SparseMatrix

friend class SparseMatrix
friend

Definition at line 175 of file matrix.h.

◆ SymMatrix

friend class SymMatrix
friend

Definition at line 176 of file matrix.h.

Member Data Documentation

◆ value

utils::RCPtr<LinOpValue> OpenMEEG::Matrix::value
protected

Definition at line 66 of file matrix.h.


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