FairRoot/PandaRoot
Public Member Functions | Static Public Member Functions | Public Attributes | Private Member Functions | Friends | List of all members
Matrix Class Reference

#include <matrix.h>

Public Member Functions

 Matrix ()
 
 Matrix (const int32_t m, const int32_t n)
 
 Matrix (const int32_t m, const int32_t n, const FLOAT *val_)
 
 Matrix (const Matrix &M)
 
 ~Matrix ()
 
Matrixoperator= (const Matrix &M)
 
void getData (FLOAT *val_, int32_t i1=0, int32_t j1=0, int32_t i2=-1, int32_t j2=-1)
 
Matrix getMat (int32_t i1, int32_t j1, int32_t i2=-1, int32_t j2=-1)
 
void setMat (const Matrix &M, const int32_t i, const int32_t j)
 
void setVal (const int32_t m, const int32_t n, const FLOAT *val_)
 
void setVal (FLOAT s, int32_t i1=0, int32_t j1=0, int32_t i2=-1, int32_t j2=-1)
 
void setDiag (FLOAT s, int32_t i1=0, int32_t i2=-1)
 
void zero ()
 
Matrix extractCols (std::vector< int > idx)
 
void eye ()
 
Matrix operator+ (const Matrix &M)
 
Matrix operator- (const Matrix &M)
 
Matrix operator* (const Matrix &M)
 
Matrix operator* (const FLOAT &s)
 
Matrix operator/ (const Matrix &M)
 
Matrix operator/ (const FLOAT &s)
 
Matrix operator- ()
 
Matrix operator~ ()
 
FLOAT l2norm ()
 
FLOAT mean ()
 
bool inv ()
 
FLOAT det ()
 
bool solve (const Matrix &M, FLOAT eps=1e-20)
 
bool lu (int32_t *idx, FLOAT &d, FLOAT eps=1e-20)
 
void svd (Matrix &U, Matrix &W, Matrix &V)
 

Static Public Member Functions

static Matrix eye (const int32_t m)
 
static Matrix ones (const int32_t m, const int32_t n)
 
static Matrix diag (const Matrix &M)
 
static Matrix reshape (const Matrix &M, int32_t m, int32_t n)
 
static Matrix rotMatX (const FLOAT &angle)
 
static Matrix rotMatY (const FLOAT &angle)
 
static Matrix rotMatZ (const FLOAT &angle)
 
static Matrix homogenize (const Matrix &M)
 
static Matrix dehomogenize (const Matrix &M)
 
static Matrix homogenizeTranslation (const Matrix &M)
 
static Matrix homogenizeRotTrans (const Matrix &R, const Matrix &t)
 
static Matrix cross (const Matrix &a, const Matrix &b)
 
static Matrix inv (const Matrix &M)
 

Public Attributes

FLOAT ** val
 
int32_t m
 
int32_t n
 

Private Member Functions

void allocateMemory (const int32_t m_, const int32_t n_)
 
void releaseMemory ()
 
FLOAT pythag (FLOAT a, FLOAT b)
 

Friends

std::ostreamoperator<< (std::ostream &out, const Matrix &M)
 

Detailed Description

Definition at line 50 of file matrix.h.

Constructor & Destructor Documentation

Matrix::Matrix ( )
Matrix::Matrix ( const int32_t  m,
const int32_t  n 
)
Matrix::Matrix ( const int32_t  m,
const int32_t  n,
const FLOAT val_ 
)
Matrix::Matrix ( const Matrix M)
Matrix::~Matrix ( )

Member Function Documentation

void Matrix::allocateMemory ( const int32_t  m_,
const int32_t  n_ 
)
private
static Matrix Matrix::cross ( const Matrix a,
const Matrix b 
)
static
static Matrix Matrix::dehomogenize ( const Matrix M)
static
FLOAT Matrix::det ( )
static Matrix Matrix::diag ( const Matrix M)
static
Matrix Matrix::extractCols ( std::vector< int >  idx)
static Matrix Matrix::eye ( const int32_t  m)
static
void Matrix::eye ( )
void Matrix::getData ( FLOAT val_,
int32_t  i1 = 0,
int32_t  j1 = 0,
int32_t  i2 = -1,
int32_t  j2 = -1 
)
Matrix Matrix::getMat ( int32_t  i1,
int32_t  j1,
int32_t  i2 = -1,
int32_t  j2 = -1 
)
static Matrix Matrix::homogenize ( const Matrix M)
static
static Matrix Matrix::homogenizeRotTrans ( const Matrix R,
const Matrix t 
)
static
static Matrix Matrix::homogenizeTranslation ( const Matrix M)
static
static Matrix Matrix::inv ( const Matrix M)
static
bool Matrix::inv ( )
FLOAT Matrix::l2norm ( )
bool Matrix::lu ( int32_t idx,
FLOAT d,
FLOAT  eps = 1e-20 
)
FLOAT Matrix::mean ( )
static Matrix Matrix::ones ( const int32_t  m,
const int32_t  n 
)
static
Matrix Matrix::operator* ( const Matrix M)
Matrix Matrix::operator* ( const FLOAT s)
Matrix Matrix::operator+ ( const Matrix M)
Matrix Matrix::operator- ( const Matrix M)
Matrix Matrix::operator- ( )
Matrix Matrix::operator/ ( const Matrix M)
Matrix Matrix::operator/ ( const FLOAT s)
Matrix& Matrix::operator= ( const Matrix M)
Matrix Matrix::operator~ ( )
FLOAT Matrix::pythag ( FLOAT  a,
FLOAT  b 
)
inlineprivate
void Matrix::releaseMemory ( )
private
static Matrix Matrix::reshape ( const Matrix M,
int32_t  m,
int32_t  n 
)
static
static Matrix Matrix::rotMatX ( const FLOAT angle)
static
static Matrix Matrix::rotMatY ( const FLOAT angle)
static
static Matrix Matrix::rotMatZ ( const FLOAT angle)
static
void Matrix::setDiag ( FLOAT  s,
int32_t  i1 = 0,
int32_t  i2 = -1 
)
void Matrix::setMat ( const Matrix M,
const int32_t  i,
const int32_t  j 
)
void Matrix::setVal ( const int32_t  m,
const int32_t  n,
const FLOAT val_ 
)
void Matrix::setVal ( FLOAT  s,
int32_t  i1 = 0,
int32_t  j1 = 0,
int32_t  i2 = -1,
int32_t  j2 = -1 
)
bool Matrix::solve ( const Matrix M,
FLOAT  eps = 1e-20 
)
void Matrix::svd ( Matrix U,
Matrix W,
Matrix V 
)
void Matrix::zero ( )

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream out,
const Matrix M 
)
friend

Member Data Documentation

int32_t Matrix::m

Definition at line 139 of file matrix.h.

int32_t Matrix::n

Definition at line 139 of file matrix.h.

FLOAT** Matrix::val

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