maal::abstract::Matrix Class Reference

Abstract Matrix class. More...

#include <jrl/mal/abstractmatrix.hh>

Public Member Functions

 Matrix (const unsigned int rows=0, const unsigned int cols=0)
 
 Matrix (InternalMatrix *clone, const bool proprio=false)
 
 Matrix (const Matrix &copy)
 
virtual ~Matrix (void)
 
InternalMatrix & accessToMotherLib (void)
 
const InternalMatrix & accessToMotherLib (void) const
 
MatrixinitFromMotherLib (const InternalMatrix &bv)
 
Matrixresize (const unsigned int nbRows, const unsigned int nbCols, const bool setZero=true)
 
unsigned int nbRows (void) const
 
unsigned int nbCols (void) const
 
MatrixsetZero (void)
 
MatrixsetIdentity (void)
 
Matrixfill (const FloatType value)
 
FloatType determinant (void) const
 
FloatType trace (void) const
 
FloatType norm (void) const
 
FloatType norm1 (void) const
 
FloatType normInfty (void) const
 
FloatType max (void) const
 
FloatType min (void) const
 
FloatType sumSquare (void) const
 
Matrixtranspose (Matrix &At) const
 
Matrix transpose (void) const
 
Matrixinverse (Matrix &invMatrix) const
 
Matrix inverse (void) const
 
MatrixpseudoInverse (Matrix &invMatrix, const FloatType threshold=1e-6, Matrix *Uref=NULL, Matrix *Sref=NULL, Matrix *Vref=NULL) const
 
Matrix pseudoInverse (const FloatType threshold=1e-6, Matrix *U=NULL, Matrix *S=NULL, Matrix *V=NULL) const
 
MatrixdampedInverse (Matrix &invMatrix, const FloatType threshold=1e-6, Matrix *U=NULL, Matrix *S=NULL, Matrix *V=NULL) const
 
Matrix dampedInverse (const FloatType threshold=1e-6, Matrix *U=NULL, Matrix *S=NULL, Matrix *V=NULL) const
 
Matrixopposite (Matrix &res) const
 
Matrix opposite (void) const
 
Matrix multiply (const Matrix &B) const
 
Matrixmultiply (const Matrix &B, Matrix &C) const
 
Vector multiply (const Vector &v) const
 
Vectormultiply (const Vector &v, Vector &res) const
 
Matrix addition (const Matrix &B) const
 
Matrixaddition (const Matrix &B, Matrix &C) const
 
Matrix substraction (const Matrix &B) const
 
Matrixsubstraction (const Matrix &B, Matrix &C) const
 
Matrix multiply (const FloatType x) const
 
Matrixmultiply (const FloatType x, Matrix &C) const
 
Matrix addition (const FloatType x) const
 
Matrixaddition (const FloatType x, Matrix &C) const
 
Matrix substraction (const FloatType x) const
 
Matrixsubstraction (const FloatType x, Matrix &C) const
 
Matrix division (const FloatType x) const
 
Matrixdivision (const FloatType x, Matrix &C) const
 
FloatTypedatablock (void)
 
const FloatTypedatablock (void) const
 
Matrixextract (const int top, const int left, const int nbrows, const int nbcols, Matrix &C) const
 
Matrix extract (const int top, const int left, const int nbrows, const int nbcols) const
 
const FloatTypeelementAt (const int row, const int col) const
 
FloatTypeelementAt (const int row, const int col)
 
const FloatTypeelementAt (const int elmt) const
 
FloatTypeelementAt (const int elmt)
 
Vector getDiagonal (void) const
 
VectorgetDiagonal (Vector &vector) const
 
MatrixsetDiagonal (const Vector &vector)
 
MatrixstackMatrix (const Matrix &B, Matrix &C) const
 
Matrix stackMatrix (const Matrix &B) const
 
MatrixjuxtaposeMatrix (const Matrix &B, Matrix &C) const
 
Matrix juxtaposeMatrix (const Matrix &B) const
 
Matrixoperator+= (const Matrix &m1)
 
Matrixoperator-= (const Matrix &m1)
 
Matrixoperator*= (const Matrix &m1)
 
Matrixoperator*= (const FloatType x)
 
const FloatTypeoperator() (const int i, const int j) const
 
FloatTypeoperator() (const int i, const int j)
 
const FloatTypeoperator() (const int n) const
 
FloatTypeoperator() (const int n)
 
Matrixoperator= (const Matrix &m1)
 

Friends

Matrixmultiply (const Matrix &A, const Matrix &B, Matrix &C)
 
Vectormultiply (const Matrix &M, const Vector &v, Vector &res)
 
Matrixaddition (const Matrix &A, const Matrix &B, Matrix &C)
 
Matrixsubstraction (const Matrix &A, const Matrix &B, Matrix &C)
 
Matrixmultiply (const Matrix &A, const FloatType x, Matrix &C)
 
Matrixaddition (const Matrix &A, const FloatType x, Matrix &C)
 
Matrixsubstraction (const Matrix &A, const FloatType x, Matrix &C)
 
Matrixdivision (const Matrix &A, const FloatType x, Matrix &C)
 
Matrix operator+ (const Matrix &m1, const Matrix &m2)
 
Matrix operator- (const Matrix &m1, const Matrix &m2)
 
Matrix operator* (const Matrix &m1, const Matrix &m2)
 
Matrix operator- (const Matrix &m)
 
Vector operator* (const Matrix &M, const Vector &v1)
 
Vector operator* (const Vector &v1, const Matrix &M)
 
Matrix operator+ (const FloatType x, const Matrix &m1)
 
Matrix operator- (const FloatType x, const Matrix &m1)
 
Matrix operator* (const FloatType x, const Matrix &m1)
 
Matrix operator/ (const FloatType x, const Matrix &m1)
 
Matrix operator+ (const Matrix &m1, const FloatType x)
 
Matrix operator- (const Matrix &m1, const FloatType x)
 
Matrix operator* (const Matrix &m1, const FloatType x)
 
Matrix operator/ (const Matrix &m1, const FloatType x)
 
std::ostream & operator<< (std::ostream &os, const Matrix &m1)
 
std::istream & operator>> (std::istream &is, Matrix &v1)
 

Detailed Description

Abstract Matrix class.

Constructor & Destructor Documentation

◆ Matrix() [1/3]

maal::abstract::Matrix::Matrix ( const unsigned int  rows = 0,
const unsigned int  cols = 0 
)

◆ Matrix() [2/3]

maal::abstract::Matrix::Matrix ( InternalMatrix *  clone,
const bool  proprio = false 
)

◆ Matrix() [3/3]

maal::abstract::Matrix::Matrix ( const Matrix copy)

◆ ~Matrix()

virtual maal::abstract::Matrix::~Matrix ( void  )
virtual

Member Function Documentation

◆ accessToMotherLib() [1/2]

InternalMatrix& maal::abstract::Matrix::accessToMotherLib ( void  )

◆ accessToMotherLib() [2/2]

const InternalMatrix& maal::abstract::Matrix::accessToMotherLib ( void  ) const

◆ addition() [1/4]

Matrix maal::abstract::Matrix::addition ( const FloatType  x) const
inline

◆ addition() [2/4]

Matrix& maal::abstract::Matrix::addition ( const FloatType  x,
Matrix C 
) const
inline

◆ addition() [3/4]

Matrix maal::abstract::Matrix::addition ( const Matrix B) const
inline

◆ addition() [4/4]

Matrix& maal::abstract::Matrix::addition ( const Matrix B,
Matrix C 
) const
inline

◆ dampedInverse() [1/2]

Matrix maal::abstract::Matrix::dampedInverse ( const FloatType  threshold = 1e-6,
Matrix U = NULL,
Matrix S = NULL,
Matrix V = NULL 
) const
inline

◆ dampedInverse() [2/2]

Matrix& maal::abstract::Matrix::dampedInverse ( Matrix invMatrix,
const FloatType  threshold = 1e-6,
Matrix U = NULL,
Matrix S = NULL,
Matrix V = NULL 
) const
inline

◆ datablock() [1/2]

FloatType* maal::abstract::Matrix::datablock ( void  )
inline

◆ datablock() [2/2]

const FloatType* maal::abstract::Matrix::datablock ( void  ) const
inline

◆ determinant()

FloatType maal::abstract::Matrix::determinant ( void  ) const
inline

◆ division() [1/2]

Matrix maal::abstract::Matrix::division ( const FloatType  x) const
inline

◆ division() [2/2]

Matrix& maal::abstract::Matrix::division ( const FloatType  x,
Matrix C 
) const
inline

◆ elementAt() [1/4]

FloatType& maal::abstract::Matrix::elementAt ( const int  elmt)
inline

◆ elementAt() [2/4]

const FloatType& maal::abstract::Matrix::elementAt ( const int  elmt) const
inline

◆ elementAt() [3/4]

FloatType& maal::abstract::Matrix::elementAt ( const int  row,
const int  col 
)
inline

◆ elementAt() [4/4]

const FloatType& maal::abstract::Matrix::elementAt ( const int  row,
const int  col 
) const
inline

◆ extract() [1/2]

Matrix maal::abstract::Matrix::extract ( const int  top,
const int  left,
const int  nbrows,
const int  nbcols 
) const
inline

◆ extract() [2/2]

Matrix& maal::abstract::Matrix::extract ( const int  top,
const int  left,
const int  nbrows,
const int  nbcols,
Matrix C 
) const
inline

◆ fill()

Matrix& maal::abstract::Matrix::fill ( const FloatType  value)
inline

◆ getDiagonal() [1/2]

Vector& maal::abstract::Matrix::getDiagonal ( Vector vector) const
inline

◆ getDiagonal() [2/2]

Vector maal::abstract::Matrix::getDiagonal ( void  ) const
inline

◆ initFromMotherLib()

Matrix& maal::abstract::Matrix::initFromMotherLib ( const InternalMatrix &  bv)

◆ inverse() [1/2]

Matrix& maal::abstract::Matrix::inverse ( Matrix invMatrix) const
inline

◆ inverse() [2/2]

Matrix maal::abstract::Matrix::inverse ( void  ) const
inline

◆ juxtaposeMatrix() [1/2]

Matrix maal::abstract::Matrix::juxtaposeMatrix ( const Matrix B) const
inline

◆ juxtaposeMatrix() [2/2]

Matrix& maal::abstract::Matrix::juxtaposeMatrix ( const Matrix B,
Matrix C 
) const
inline

◆ max()

FloatType maal::abstract::Matrix::max ( void  ) const
inline

◆ min()

FloatType maal::abstract::Matrix::min ( void  ) const
inline

◆ multiply() [1/6]

Matrix maal::abstract::Matrix::multiply ( const FloatType  x) const
inline

◆ multiply() [2/6]

Matrix& maal::abstract::Matrix::multiply ( const FloatType  x,
Matrix C 
) const
inline

◆ multiply() [3/6]

Matrix maal::abstract::Matrix::multiply ( const Matrix B) const
inline

◆ multiply() [4/6]

Matrix& maal::abstract::Matrix::multiply ( const Matrix B,
Matrix C 
) const
inline

◆ multiply() [5/6]

Vector maal::abstract::Matrix::multiply ( const Vector v) const
inline

◆ multiply() [6/6]

Vector& maal::abstract::Matrix::multiply ( const Vector v,
Vector res 
) const
inline

◆ nbCols()

unsigned int maal::abstract::Matrix::nbCols ( void  ) const
inline

◆ nbRows()

unsigned int maal::abstract::Matrix::nbRows ( void  ) const
inline

◆ norm()

FloatType maal::abstract::Matrix::norm ( void  ) const
inline

◆ norm1()

FloatType maal::abstract::Matrix::norm1 ( void  ) const
inline

◆ normInfty()

FloatType maal::abstract::Matrix::normInfty ( void  ) const
inline

◆ operator()() [1/4]

FloatType& maal::abstract::Matrix::operator() ( const int  i,
const int  j 
)
inline

◆ operator()() [2/4]

const FloatType& maal::abstract::Matrix::operator() ( const int  i,
const int  j 
) const
inline

◆ operator()() [3/4]

FloatType& maal::abstract::Matrix::operator() ( const int  n)
inline

◆ operator()() [4/4]

const FloatType& maal::abstract::Matrix::operator() ( const int  n) const
inline

◆ operator*=() [1/2]

Matrix& maal::abstract::Matrix::operator*= ( const FloatType  x)
inline

◆ operator*=() [2/2]

Matrix& maal::abstract::Matrix::operator*= ( const Matrix m1)
inline

◆ operator+=()

Matrix& maal::abstract::Matrix::operator+= ( const Matrix m1)
inline

◆ operator-=()

Matrix& maal::abstract::Matrix::operator-= ( const Matrix m1)
inline

◆ operator=()

Matrix& maal::abstract::Matrix::operator= ( const Matrix m1)
inline

◆ opposite() [1/2]

Matrix& maal::abstract::Matrix::opposite ( Matrix res) const
inline

◆ opposite() [2/2]

Matrix maal::abstract::Matrix::opposite ( void  ) const
inline

◆ pseudoInverse() [1/2]

Matrix maal::abstract::Matrix::pseudoInverse ( const FloatType  threshold = 1e-6,
Matrix U = NULL,
Matrix S = NULL,
Matrix V = NULL 
) const
inline

◆ pseudoInverse() [2/2]

Matrix& maal::abstract::Matrix::pseudoInverse ( Matrix invMatrix,
const FloatType  threshold = 1e-6,
Matrix Uref = NULL,
Matrix Sref = NULL,
Matrix Vref = NULL 
) const

◆ resize()

Matrix& maal::abstract::Matrix::resize ( const unsigned int  nbRows,
const unsigned int  nbCols,
const bool  setZero = true 
)
inline

◆ setDiagonal()

Matrix& maal::abstract::Matrix::setDiagonal ( const Vector vector)
inline

◆ setIdentity()

Matrix& maal::abstract::Matrix::setIdentity ( void  )
inline

◆ setZero()

Matrix& maal::abstract::Matrix::setZero ( void  )
inline

◆ stackMatrix() [1/2]

Matrix maal::abstract::Matrix::stackMatrix ( const Matrix B) const
inline

◆ stackMatrix() [2/2]

Matrix& maal::abstract::Matrix::stackMatrix ( const Matrix B,
Matrix C 
) const
inline

◆ substraction() [1/4]

Matrix maal::abstract::Matrix::substraction ( const FloatType  x) const
inline

◆ substraction() [2/4]

Matrix& maal::abstract::Matrix::substraction ( const FloatType  x,
Matrix C 
) const
inline

◆ substraction() [3/4]

Matrix maal::abstract::Matrix::substraction ( const Matrix B) const
inline

◆ substraction() [4/4]

Matrix& maal::abstract::Matrix::substraction ( const Matrix B,
Matrix C 
) const
inline

◆ sumSquare()

FloatType maal::abstract::Matrix::sumSquare ( void  ) const
inline

◆ trace()

FloatType maal::abstract::Matrix::trace ( void  ) const
inline

◆ transpose() [1/2]

Matrix& maal::abstract::Matrix::transpose ( Matrix At) const
inline

◆ transpose() [2/2]

Matrix maal::abstract::Matrix::transpose ( void  ) const
inline

Friends And Related Function Documentation

◆ addition [1/2]

Matrix& addition ( const Matrix A,
const FloatType  x,
Matrix C 
)
friend

◆ addition [2/2]

Matrix& addition ( const Matrix A,
const Matrix B,
Matrix C 
)
friend

◆ division

Matrix& division ( const Matrix A,
const FloatType  x,
Matrix C 
)
friend

◆ multiply [1/3]

Matrix& multiply ( const Matrix A,
const FloatType  x,
Matrix C 
)
friend

◆ multiply [2/3]

Matrix& multiply ( const Matrix A,
const Matrix B,
Matrix C 
)
friend

◆ multiply [3/3]

Vector& multiply ( const Matrix M,
const Vector v,
Vector res 
)
friend

◆ operator* [1/5]

Matrix operator* ( const FloatType  x,
const Matrix m1 
)
friend

◆ operator* [2/5]

Vector operator* ( const Matrix M,
const Vector v1 
)
friend

◆ operator* [3/5]

Matrix operator* ( const Matrix m1,
const FloatType  x 
)
friend

◆ operator* [4/5]

Matrix operator* ( const Matrix m1,
const Matrix m2 
)
friend

◆ operator* [5/5]

Vector operator* ( const Vector v1,
const Matrix M 
)
friend

◆ operator+ [1/3]

Matrix operator+ ( const FloatType  x,
const Matrix m1 
)
friend

◆ operator+ [2/3]

Matrix operator+ ( const Matrix m1,
const FloatType  x 
)
friend

◆ operator+ [3/3]

Matrix operator+ ( const Matrix m1,
const Matrix m2 
)
friend

◆ operator- [1/4]

Matrix operator- ( const FloatType  x,
const Matrix m1 
)
friend

◆ operator- [2/4]

Matrix operator- ( const Matrix m)
friend

◆ operator- [3/4]

Matrix operator- ( const Matrix m1,
const FloatType  x 
)
friend

◆ operator- [4/4]

Matrix operator- ( const Matrix m1,
const Matrix m2 
)
friend

◆ operator/ [1/2]

Matrix operator/ ( const FloatType  x,
const Matrix m1 
)
friend

◆ operator/ [2/2]

Matrix operator/ ( const Matrix m1,
const FloatType  x 
)
friend

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const Matrix m1 
)
friend

◆ operator>>

std::istream& operator>> ( std::istream &  is,
Matrix v1 
)
friend

◆ substraction [1/2]

Matrix& substraction ( const Matrix A,
const FloatType  x,
Matrix C 
)
friend

◆ substraction [2/2]

Matrix& substraction ( const Matrix A,
const Matrix B,
Matrix C 
)
friend