qpOASES  3.0.1
Public Member Functions | Protected Attributes
DenseMatrix Class Reference

Interfaces matrix-vector operations tailored to general dense matrices. More...

#include <Matrices.hpp>

Inheritance diagram for DenseMatrix:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 DenseMatrix ()
 DenseMatrix (int m, int n, int lD, real_t *v)
virtual ~DenseMatrix ()
virtual void free ()
virtual Matrixduplicate () const
virtual real_t diag (int i) const
virtual BooleanType isDiag () const
virtual real_t getNorm (int type=2) const
virtual real_t getRowNorm (int rNum, int type=2) const
virtual returnValue getRow (int rNum, const Indexlist *const icols, real_t alpha, real_t *row) const
virtual returnValue getCol (int cNum, const Indexlist *const irows, real_t alpha, real_t *col) const
returnValue times (int xN, real_t alpha, const real_t *x, int xLD, real_t beta, real_t *y, int yLD) const
returnValue transTimes (int xN, real_t alpha, const real_t *x, int xLD, real_t beta, real_t *y, int yLD) const
virtual returnValue times (const Indexlist *const irows, const Indexlist *const icols, int xN, real_t alpha, const real_t *x, int xLD, real_t beta, real_t *y, int yLD, BooleanType yCompr=BT_TRUE) const
virtual returnValue transTimes (const Indexlist *const irows, const Indexlist *const icols, int xN, real_t alpha, const real_t *x, int xLD, real_t beta, real_t *y, int yLD) const
virtual returnValue addToDiag (real_t alpha)
virtual real_tfull () const
virtual returnValue print (const char *name=0) const
BooleanType needToFreeMemory () const
void doFreeMemory ()
void doNotFreeMemory ()

Protected Attributes

int nRows
int nCols
int leaDim
real_tval
BooleanType freeMemory

Detailed Description

Dense matrix class (row major format).

Author:
Andreas Potschka, Christian Kirches, Hans Joachim Ferreau
Version:
3.0
Date:
2011-2014

Constructor & Destructor Documentation

Default constructor.

Referenced by duplicate().

DenseMatrix::DenseMatrix ( int  m,
int  n,
int  lD,
real_t v 
) [inline]

Constructor from vector of values. Caution: Data pointer must be valid throughout lifetime

Parameters:
mNumber of rows.
nNumber of columns.
lDLeading dimension.
vValues.

Destructor.

References BT_TRUE, free(), and Matrix::needToFreeMemory().


Member Function Documentation

Adds given offset to diagonal of matrix.

Returns:
SUCCESSFUL_RETURN
RET_NO_DIAGONAL_AVAILABLE
Parameters:
alphaDiagonal offset.

Implements Matrix.

References leaDim, nCols, nRows, SUCCESSFUL_RETURN, and val.

real_t DenseMatrix::diag ( int  i) const [virtual]

Returns i-th diagonal entry.

Returns:
i-th diagonal entry
Parameters:
iIndex.

Implements Matrix.

References leaDim, and val.

void Matrix::doFreeMemory ( ) [inline, inherited]
void Matrix::doNotFreeMemory ( ) [inline, inherited]
Matrix * DenseMatrix::duplicate ( ) const [virtual]

Returns a deep-copy of the Matrix object.

Returns:
Deep-copy of Matrix object

Implements Matrix.

Reimplemented in SymDenseMat.

References BT_TRUE, DenseMatrix(), Matrix::doFreeMemory(), nCols, Matrix::needToFreeMemory(), nRows, real_t, and val.

void DenseMatrix::free ( ) [virtual]

Frees all internal memory.

Implements Matrix.

References val.

Referenced by ~DenseMatrix().

real_t * DenseMatrix::full ( ) const [virtual]

Allocates and creates dense matrix array in row major format.

Note: Calling function has to free allocated memory!

Returns:
Pointer to matrix array.

Implements Matrix.

References nCols, nRows, real_t, and val.

returnValue DenseMatrix::getCol ( int  cNum,
const Indexlist *const  irows,
real_t  alpha,
real_t col 
) const [virtual]

Retrieve indexed entries of matrix column multiplied by alpha.

Returns:
SUCCESSFUL_RETURN
Parameters:
cNumColumn number.
irowsIndex list specifying rows.
alphaScalar factor.
colOutput column vector.

Implements Matrix.

References BT_TRUE, isEqual(), leaDim, Indexlist::length, Indexlist::number, SUCCESSFUL_RETURN, and val.

real_t DenseMatrix::getNorm ( int  type = 2) const [virtual]

Get the N-norm of the matrix

Returns:
N-norm of the matrix
Parameters:
typeNorm type, 1: one-norm, 2: Euclidean norm.

Implements Matrix.

References nCols, nRows, REFER_NAMESPACE_QPOASES, and val.

Referenced by getRowNorm().

returnValue DenseMatrix::getRow ( int  rNum,
const Indexlist *const  icols,
real_t  alpha,
real_t row 
) const [virtual]

Retrieve indexed entries of matrix row multiplied by alpha.

Returns:
SUCCESSFUL_RETURN
Parameters:
rNumRow number.
icolsIndex list specifying columns.
alphaScalar factor.
rowOutput row vector.

Implements Matrix.

References BT_TRUE, isEqual(), leaDim, Indexlist::length, nCols, Indexlist::number, SUCCESSFUL_RETURN, and val.

real_t DenseMatrix::getRowNorm ( int  rNum,
int  type = 2 
) const [virtual]

Get the N-norm of a row

Returns:
N-norm of row rNum
Parameters:
rNumRow number.
typeNorm type, 1: one-norm, 2: Euclidean norm.

Implements Matrix.

References getNorm(), leaDim, nCols, REFER_NAMESPACE_QPOASES, and val.

BooleanType DenseMatrix::isDiag ( ) const [virtual]

Checks whether matrix is square and diagonal.

Returns:
BT_TRUE iff matrix is square and diagonal;
BT_FALSE otherwise.

Implements Matrix.

References BT_FALSE, BT_TRUE, EPS, getAbs(), leaDim, nCols, nRows, and val.

BooleanType Matrix::needToFreeMemory ( ) const [inline, inherited]

Returns whether internal memory needs to be de-allocated.

Returns:
BT_TRUE iff internal memory needs to be de-allocated,
BT_FALSE otherwise

References Matrix::freeMemory.

Referenced by duplicate(), SymDenseMat::duplicateSym(), ~DenseMatrix(), SparseMatrix::~SparseMatrix(), and SparseMatrixRow::~SparseMatrixRow().

returnValue DenseMatrix::print ( const char *  name = 0) const [virtual]

Prints matrix to screen.

Returns:
SUCCESSFUL_RETURN
Parameters:
nameName of matrix.

Implements Matrix.

References nCols, nRows, REFER_NAMESPACE_QPOASES, and val.

returnValue DenseMatrix::times ( int  xN,
real_t  alpha,
const real_t x,
int  xLD,
real_t  beta,
real_t y,
int  yLD 
) const [virtual]

Evaluate Y=alpha*A*X + beta*Y.

Returns:
SUCCESSFUL_RETURN.
Parameters:
xNNumber of vectors to multiply.
alphaScalar factor for matrix vector product.
xInput vector to be multiplied.
xLDLeading dimension of input x.
betaScalar factor for y.
yOutput vector of results.
yLDLeading dimension of output y.

Implements Matrix.

References GEMM, getMax(), nCols, nRows, SUCCESSFUL_RETURN, and val.

returnValue DenseMatrix::times ( const Indexlist *const  irows,
const Indexlist *const  icols,
int  xN,
real_t  alpha,
const real_t x,
int  xLD,
real_t  beta,
real_t y,
int  yLD,
BooleanType  yCompr = BT_TRUE 
) const [virtual]

Evaluate matrix vector product with submatrix given by Indexlist.

Returns:
SUCCESSFUL_RETURN
Parameters:
irowsIndex list specifying rows.
icolsIndex list specifying columns.
xNNumber of vectors to multiply.
alphaScalar factor for matrix vector product.
xInput vector to be multiplied.
xLDLeading dimension of input x.
betaScalar factor for y.
yOutput vector of results.
yLDLeading dimension of output y.
yComprCompressed storage for y.

Implements Matrix.

References BT_FALSE, BT_TRUE, isEqual(), Indexlist::iSort, isZero(), leaDim, Indexlist::length, nCols, Indexlist::number, SUCCESSFUL_RETURN, and val.

returnValue DenseMatrix::transTimes ( int  xN,
real_t  alpha,
const real_t x,
int  xLD,
real_t  beta,
real_t y,
int  yLD 
) const [virtual]

Evaluate Y=alpha*A'*X + beta*Y.

Returns:
SUCCESSFUL_RETURN.
Parameters:
xNNumber of vectors to multiply.
alphaScalar factor for matrix vector product.
xInput vector to be multiplied.
xLDLeading dimension of input x.
betaScalar factor for y.
yOutput vector of results.
yLDLeading dimension of output y.

Implements Matrix.

References GEMM, getMax(), nCols, nRows, SUCCESSFUL_RETURN, and val.

returnValue DenseMatrix::transTimes ( const Indexlist *const  irows,
const Indexlist *const  icols,
int  xN,
real_t  alpha,
const real_t x,
int  xLD,
real_t  beta,
real_t y,
int  yLD 
) const [virtual]

Evaluate matrix transpose vector product.

Returns:
SUCCESSFUL_RETURN
Parameters:
irowsIndex list specifying rows.
icolsIndex list specifying columns.
xNNumber of vectors to multiply.
alphaScalar factor for matrix vector product.
xInput vector to be multiplied.
xLDLeading dimension of input x.
betaScalar factor for y.
yOutput vector of results.
yLDLeading dimension of output y.

Implements Matrix.

References BT_FALSE, BT_TRUE, isEqual(), Indexlist::iSort, isZero(), leaDim, Indexlist::length, Indexlist::number, SUCCESSFUL_RETURN, and val.


Member Data Documentation

BooleanType Matrix::freeMemory [protected, inherited]

Indicating whether internal memory needs to be de-allocated.

Referenced by Matrix::doFreeMemory(), and Matrix::needToFreeMemory().

int DenseMatrix::leaDim [protected]
int DenseMatrix::nCols [protected]
int DenseMatrix::nRows [protected]
real_t* DenseMatrix::val [protected]

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