PandaRoot
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
 

Friends

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

Detailed Description

Definition at line 50 of file matrix.h.

Constructor & Destructor Documentation

◆ Matrix() [1/4]

Matrix::Matrix ( )

◆ Matrix() [2/4]

Matrix::Matrix ( const int32_t  m,
const int32_t  n 
)

◆ Matrix() [3/4]

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

◆ Matrix() [4/4]

Matrix::Matrix ( const Matrix M)

◆ ~Matrix()

Matrix::~Matrix ( )

Member Function Documentation

◆ cross()

static Matrix Matrix::cross ( const Matrix a,
const Matrix b 
)
static

◆ dehomogenize()

static Matrix Matrix::dehomogenize ( const Matrix M)
static

◆ det()

FLOAT Matrix::det ( )

◆ diag()

static Matrix Matrix::diag ( const Matrix M)
static

◆ extractCols()

Matrix Matrix::extractCols ( std::vector< int >  idx)

◆ eye() [1/2]

static Matrix Matrix::eye ( const int32_t  m)
static

◆ eye() [2/2]

void Matrix::eye ( )

◆ getData()

void Matrix::getData ( FLOAT val_,
int32_t  i1 = 0,
int32_t  j1 = 0,
int32_t  i2 = -1,
int32_t  j2 = -1 
)

◆ getMat()

Matrix Matrix::getMat ( int32_t  i1,
int32_t  j1,
int32_t  i2 = -1,
int32_t  j2 = -1 
)

◆ homogenize()

static Matrix Matrix::homogenize ( const Matrix M)
static

◆ homogenizeRotTrans()

static Matrix Matrix::homogenizeRotTrans ( const Matrix R,
const Matrix t 
)
static

◆ homogenizeTranslation()

static Matrix Matrix::homogenizeTranslation ( const Matrix M)
static

◆ inv() [1/2]

static Matrix Matrix::inv ( const Matrix M)
static

◆ inv() [2/2]

bool Matrix::inv ( )

◆ l2norm()

FLOAT Matrix::l2norm ( )

◆ lu()

bool Matrix::lu ( int32_t idx,
FLOAT d,
FLOAT  eps = 1e-20 
)

◆ mean()

FLOAT Matrix::mean ( )

◆ ones()

static Matrix Matrix::ones ( const int32_t  m,
const int32_t  n 
)
static

◆ operator*() [1/2]

Matrix Matrix::operator* ( const Matrix M)

◆ operator*() [2/2]

Matrix Matrix::operator* ( const FLOAT s)

◆ operator+()

Matrix Matrix::operator+ ( const Matrix M)

◆ operator-() [1/2]

Matrix Matrix::operator- ( const Matrix M)

◆ operator-() [2/2]

Matrix Matrix::operator- ( )

◆ operator/() [1/2]

Matrix Matrix::operator/ ( const Matrix M)

◆ operator/() [2/2]

Matrix Matrix::operator/ ( const FLOAT s)

◆ operator=()

Matrix& Matrix::operator= ( const Matrix M)

◆ operator~()

Matrix Matrix::operator~ ( )

◆ reshape()

static Matrix Matrix::reshape ( const Matrix M,
int32_t  m,
int32_t  n 
)
static

◆ rotMatX()

static Matrix Matrix::rotMatX ( const FLOAT angle)
static

◆ rotMatY()

static Matrix Matrix::rotMatY ( const FLOAT angle)
static

◆ rotMatZ()

static Matrix Matrix::rotMatZ ( const FLOAT angle)
static

◆ setDiag()

void Matrix::setDiag ( FLOAT  s,
int32_t  i1 = 0,
int32_t  i2 = -1 
)

◆ setMat()

void Matrix::setMat ( const Matrix M,
const int32_t  i,
const int32_t  j 
)

◆ setVal() [1/2]

void Matrix::setVal ( const int32_t  m,
const int32_t  n,
const FLOAT val_ 
)

◆ setVal() [2/2]

void Matrix::setVal ( FLOAT  s,
int32_t  i1 = 0,
int32_t  j1 = 0,
int32_t  i2 = -1,
int32_t  j2 = -1 
)

◆ solve()

bool Matrix::solve ( const Matrix M,
FLOAT  eps = 1e-20 
)

◆ svd()

void Matrix::svd ( Matrix U,
Matrix W,
Matrix V 
)

◆ zero()

void Matrix::zero ( )

Friends And Related Function Documentation

◆ operator<<

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

Member Data Documentation

◆ m

int32_t Matrix::m

Definition at line 138 of file matrix.h.

◆ n

int32_t Matrix::n

Definition at line 138 of file matrix.h.

◆ val

FLOAT** Matrix::val

Definition at line 137 of file matrix.h.


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