|
qpOASES
3.1.1
|
Interfaces matrix-vector operations tailored to general sparse matrices. More...
#include <Matrices.hpp>

Public Member Functions | |
| SparseMatrixRow () | |
| SparseMatrixRow (int nr, int nc, sparse_int_t *r, sparse_int_t *c, real_t *v) | |
| SparseMatrixRow (int nr, int nc, int ld, const real_t *const v) | |
| virtual | ~SparseMatrixRow () |
| virtual void | free () |
| virtual Matrix * | duplicate () 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 |
| virtual returnValue | times (int xN, real_t alpha, const real_t *x, int xLD, real_t beta, real_t *y, int yLD) const |
| virtual 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) |
| sparse_int_t * | createDiagInfo () |
| virtual real_t * | full () const |
| virtual returnValue | print (const char *name=0) const |
| BooleanType | needToFreeMemory () const |
| void | doFreeMemory () |
| void | doNotFreeMemory () |
Protected Attributes | |
| int | nRows |
| int | nCols |
| sparse_int_t * | jr |
| sparse_int_t * | ic |
| sparse_int_t * | jd |
| real_t * | val |
| BooleanType | freeMemory |
Sparse matrix class (row compressed format).
Default constructor.
Referenced by duplicate().
| SparseMatrixRow::SparseMatrixRow | ( | int | nr, |
| int | nc, | ||
| sparse_int_t * | r, | ||
| sparse_int_t * | c, | ||
| real_t * | v | ||
| ) |
Constructor with arguments.
| nr | Number of rows. |
| nc | Number of columns. |
| r | Indices to first entry of rows (nRows+1). |
| c | Column indices (length). |
| v | Vector of entries (length). |
References Matrix::doNotFreeMemory().
| SparseMatrixRow::SparseMatrixRow | ( | int | nr, |
| int | nc, | ||
| int | ld, | ||
| const real_t *const | v | ||
| ) |
Constructor from dense matrix.
| nr | Number of rows. |
| nc | Number of columns. |
| ld | Leading dimension. |
| v | Row major stored matrix elements. |
References BT_FALSE, Matrix::doFreeMemory(), ic, isZero(), jr, nCols, nRows, real_t, sparse_int_t, and val.
| SparseMatrixRow::~SparseMatrixRow | ( | ) | [virtual] |
Destructor.
References BT_TRUE, free(), jd, and Matrix::needToFreeMemory().
| returnValue SparseMatrixRow::addToDiag | ( | real_t | alpha | ) | [virtual] |
Adds given offset to diagonal of matrix.
| alpha | Diagonal offset. |
Implements Matrix.
References BT_FALSE, ic, isZero(), jd, nCols, nRows, RET_DIAGONAL_NOT_INITIALISED, RET_NO_DIAGONAL_AVAILABLE, SUCCESSFUL_RETURN, THROWERROR, and val.
Create jd field from ir and jc.
References ic, jd, jr, nRows, and sparse_int_t.
| real_t SparseMatrixRow::diag | ( | int | i | ) | const [virtual] |
Returns i-th diagonal entry.
| i | Index. |
Implements Matrix.
References ic, INFTY, jd, jr, RET_DIAGONAL_NOT_INITIALISED, THROWERROR, and val.
| void Matrix::doFreeMemory | ( | ) | [inline, inherited] |
Enables de-allocation of internal memory.
References BT_TRUE, and Matrix::freeMemory.
Referenced by QProblemB::createDiagSparseMat(), DenseMatrix::duplicate(), SparseMatrix::duplicate(), duplicate(), SymDenseMat::duplicateSym(), SymSparseMat::duplicateSym(), QProblemB::setupQPdataFromFile(), QProblem::setupQPdataFromFile(), solveOQPbenchmark(), SparseMatrix::SparseMatrix(), and SparseMatrixRow().
| void Matrix::doNotFreeMemory | ( | ) | [inline, inherited] |
Disables de-allocation of internal memory.
Referenced by SparseMatrix::free(), free(), Matrix::Matrix(), SparseMatrix::SparseMatrix(), and SparseMatrixRow().
| Matrix * SparseMatrixRow::duplicate | ( | ) | const [virtual] |
Returns a deep-copy of the Matrix object.
Implements Matrix.
References Matrix::doFreeMemory(), ic, jd, jr, nCols, nRows, real_t, sparse_int_t, SparseMatrixRow(), and val.
| void SparseMatrixRow::free | ( | ) | [virtual] |
Frees all internal memory.
Implements Matrix.
References Matrix::doNotFreeMemory(), ic, jr, and val.
Referenced by ~SparseMatrixRow().
| real_t * SparseMatrixRow::full | ( | ) | const [virtual] |
| returnValue SparseMatrixRow::getCol | ( | int | cNum, |
| const Indexlist *const | irows, | ||
| real_t | alpha, | ||
| real_t * | col | ||
| ) | const [virtual] |
Retrieve indexed entries of matrix column multiplied by alpha.
| cNum | Column number. |
| irows | Index list specifying rows. |
| alpha | Scalar factor. |
| col | Output column vector. |
Implements Matrix.
References BT_TRUE, ic, isEqual(), Indexlist::iSort, jr, Indexlist::length, nCols, Indexlist::number, SUCCESSFUL_RETURN, and val.
| real_t SparseMatrixRow::getNorm | ( | int | type = 2 | ) | const [virtual] |
Get the N-norm of the matrix
| type | Norm type, 1: one-norm, 2: Euclidean norm. |
Implements Matrix.
References jr, nRows, REFER_NAMESPACE_QPOASES, and val.
Referenced by getRowNorm().
| returnValue SparseMatrixRow::getRow | ( | int | rNum, |
| const Indexlist *const | icols, | ||
| real_t | alpha, | ||
| real_t * | row | ||
| ) | const [virtual] |
Retrieve indexed entries of matrix row multiplied by alpha.
| rNum | Row number. |
| icols | Index list specifying columns. |
| alpha | Scalar factor. |
| row | Output row vector. |
Implements Matrix.
References BT_TRUE, ic, isEqual(), Indexlist::iSort, jr, nCols, Indexlist::number, SUCCESSFUL_RETURN, and val.
| real_t SparseMatrixRow::getRowNorm | ( | int | rNum, |
| int | type = 2 |
||
| ) | const [virtual] |
Get the N-norm of a row
| rNum | Row number. |
| type | Norm type, 1: one-norm, 2: Euclidean norm. |
Implements Matrix.
References getNorm(), jr, REFER_NAMESPACE_QPOASES, and val.
| BooleanType SparseMatrixRow::isDiag | ( | ) | const [virtual] |
| BooleanType Matrix::needToFreeMemory | ( | ) | const [inline, inherited] |
Returns whether internal memory needs to be de-allocated.
References Matrix::freeMemory.
Referenced by DenseMatrix::duplicate(), SymDenseMat::duplicateSym(), DenseMatrix::~DenseMatrix(), SparseMatrix::~SparseMatrix(), and ~SparseMatrixRow().
| returnValue SparseMatrixRow::print | ( | const char * | name = 0 | ) | const [virtual] |
| returnValue SparseMatrixRow::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.
| xN | Number of vectors to multiply. |
| alpha | Scalar factor for matrix vector product. |
| x | Input vector to be multiplied. |
| xLD | Leading dimension of input x. |
| beta | Scalar factor for y. |
| y | Output vector of results. |
| yLD | Leading dimension of output y. |
Implements Matrix.
References BT_FALSE, BT_TRUE, ic, isEqual(), isZero(), jr, nRows, SUCCESSFUL_RETURN, and val.
| returnValue SparseMatrixRow::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.
| irows | Index list specifying rows. |
| icols | Index list specifying columns. |
| xN | Number of vectors to multiply. |
| alpha | Scalar factor for matrix vector product. |
| x | Input vector to be multiplied. |
| xLD | Leading dimension of input x. |
| beta | Scalar factor for y. |
| y | Output vector of results. |
| yLD | Leading dimension of output y. |
| yCompr | Compressed storage for y. |
Implements Matrix.
References BT_FALSE, BT_TRUE, ic, isEqual(), Indexlist::iSort, isZero(), jr, Indexlist::length, Indexlist::number, SUCCESSFUL_RETURN, and val.
| returnValue SparseMatrixRow::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.
| xN | Number of vectors to multiply. |
| alpha | Scalar factor for matrix vector product. |
| x | Input vector to be multiplied. |
| xLD | Leading dimension of input x. |
| beta | Scalar factor for y. |
| y | Output vector of results. |
| yLD | Leading dimension of output y. |
Implements Matrix.
References BT_FALSE, BT_TRUE, ic, isEqual(), isZero(), jr, nCols, nRows, SUCCESSFUL_RETURN, and val.
| returnValue SparseMatrixRow::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.
| irows | Index list specifying rows. |
| icols | Index list specifying columns. |
| xN | Number of vectors to multiply. |
| alpha | Scalar factor for matrix vector product. |
| x | Input vector to be multiplied. |
| xLD | Leading dimension of input x. |
| beta | Scalar factor for y. |
| y | Output vector of results. |
| yLD | Leading dimension of output y. |
Implements Matrix.
References BT_FALSE, BT_TRUE, ic, isEqual(), Indexlist::iSort, isZero(), jr, Indexlist::length, Indexlist::number, SUCCESSFUL_RETURN, and val.
BooleanType Matrix::freeMemory [protected, inherited] |
Indicating whether internal memory needs to be de-allocated.
Referenced by Matrix::doFreeMemory(), and Matrix::needToFreeMemory().
sparse_int_t* SparseMatrixRow::ic [protected] |
Column indices (length).
Referenced by addToDiag(), createDiagInfo(), diag(), duplicate(), free(), full(), getCol(), getRow(), isDiag(), SparseMatrixRow(), times(), and transTimes().
sparse_int_t* SparseMatrixRow::jd [protected] |
Indices to first entry of upper triangle (including diagonal) (nRows).
Referenced by addToDiag(), createDiagInfo(), diag(), duplicate(), and ~SparseMatrixRow().
sparse_int_t* SparseMatrixRow::jr [protected] |
Indices to first entry of row (nRows+1).
Referenced by createDiagInfo(), diag(), duplicate(), free(), full(), getCol(), getNorm(), getRow(), getRowNorm(), isDiag(), SparseMatrixRow(), times(), and transTimes().
int SparseMatrixRow::nCols [protected] |
Number of columns.
Referenced by addToDiag(), duplicate(), full(), getCol(), getRow(), isDiag(), print(), SparseMatrixRow(), and transTimes().
int SparseMatrixRow::nRows [protected] |
Number of rows.
Referenced by addToDiag(), createDiagInfo(), duplicate(), full(), getNorm(), isDiag(), print(), SparseMatrixRow(), times(), and transTimes().
real_t* SparseMatrixRow::val [protected] |
Vector of entries (length).
Referenced by addToDiag(), diag(), duplicate(), free(), full(), getCol(), getNorm(), getRow(), getRowNorm(), SparseMatrixRow(), times(), and transTimes().
1.7.6.1