qpOASES
3.2.1
An Implementation of the Online Active Set Strategy
|
Interfaces matrix-vector operations tailored to symmetric sparse matrices. More...
#include <Matrices.hpp>
Public Member Functions | |
SymSparseMat () | |
SymSparseMat (int_t nr, int_t nc, sparse_int_t *r, sparse_int_t *c, real_t *v) | |
SymSparseMat (int_t nr, int_t nc, int_t ld, const real_t *const v) | |
virtual | ~SymSparseMat () |
virtual Matrix * | duplicate () const |
virtual SymmetricMatrix * | duplicateSym () const |
virtual returnValue | bilinear (const Indexlist *const icols, int_t xN, const real_t *x, int_t xLD, real_t *y, int_t yLD) const |
virtual void | free ()=0 |
virtual real_t | diag (int_t i) const =0 |
virtual BooleanType | isDiag () const =0 |
virtual real_t | getNorm (int_t type=2) const =0 |
virtual real_t | getRowNorm (int_t rNum, int_t type=2) const =0 |
virtual returnValue | getRowNorm (real_t *norm, int_t type=2) const =0 |
virtual returnValue | getRow (int_t rNum, const Indexlist *const icols, real_t alpha, real_t *row) const =0 |
virtual returnValue | getCol (int_t cNum, const Indexlist *const irows, real_t alpha, real_t *col) const =0 |
virtual returnValue | getSparseSubmatrix (const Indexlist *const irows, const Indexlist *const icols, int_t rowoffset, int_t coloffset, int_t &numNonzeros, int_t *irn, int_t *jcn, real_t *avals, BooleanType only_lower_triangular=BT_FALSE) const |
virtual returnValue | getSparseSubmatrix (const Indexlist *const irows, int_t idx_icol, int_t rowoffset, int_t coloffset, int_t &numNonzeros, int_t *irn, int_t *jcn, real_t *avals, BooleanType only_lower_triangular=BT_FALSE) const |
virtual returnValue | getSparseSubmatrix (int_t idx_row, const Indexlist *const icols, int_t rowoffset, int_t coloffset, int_t &numNonzeros, int_t *irn, int_t *jcn, real_t *avals, BooleanType only_lower_triangular=BT_FALSE) const |
virtual returnValue | getSparseSubmatrix (int_t irowsLength, const int_t *const irowsNumber, int_t icolsLength, const int_t *const icolsNumber, int_t rowoffset, int_t coloffset, int_t &numNonzeros, int_t *irn, int_t *jcn, real_t *avals, BooleanType only_lower_triangular=BT_FALSE) const =0 |
virtual returnValue | times (int_t xN, real_t alpha, const real_t *x, int_t xLD, real_t beta, real_t *y, int_t yLD) const =0 |
virtual returnValue | times (const Indexlist *const irows, const Indexlist *const icols, int_t xN, real_t alpha, const real_t *x, int_t xLD, real_t beta, real_t *y, int_t yLD, BooleanType yCompr=BT_TRUE) const =0 |
virtual returnValue | transTimes (int_t xN, real_t alpha, const real_t *x, int_t xLD, real_t beta, real_t *y, int_t yLD) const =0 |
virtual returnValue | transTimes (const Indexlist *const irows, const Indexlist *const icols, int_t xN, real_t alpha, const real_t *x, int_t xLD, real_t beta, real_t *y, int_t yLD) const =0 |
virtual returnValue | addToDiag (real_t alpha)=0 |
virtual real_t * | full () const =0 |
virtual returnValue | print (const char *name=0) const =0 |
virtual returnValue | writeToFile (FILE *output_file, const char *prefix) const =0 |
BooleanType | needToFreeMemory () const |
void | doFreeMemory () |
void | doNotFreeMemory () |
virtual void | free () |
virtual void | setVal (const real_t *newVal) |
virtual real_t | diag (int_t i) const |
virtual BooleanType | isDiag () const |
virtual real_t | getNorm (int_t type=2) const |
virtual real_t | getRowNorm (int_t rNum, int_t type=2) const |
virtual returnValue | getRowNorm (real_t *norm, int_t type=2) const |
virtual returnValue | getRow (int_t rNum, const Indexlist *const icols, real_t alpha, real_t *row) const |
virtual returnValue | getCol (int_t cNum, const Indexlist *const irows, real_t alpha, real_t *col) const |
virtual returnValue | getSparseSubmatrix (int_t irowsLength, const int_t *const irowsNumber, int_t icolsLength, const int_t *const icolsNumber, int_t rowoffset, int_t coloffset, int_t &numNonzeros, int_t *irn, int_t *jcn, real_t *avals, BooleanType only_lower_triangular=BT_FALSE) const |
virtual returnValue | times (int_t xN, real_t alpha, const real_t *x, int_t xLD, real_t beta, real_t *y, int_t yLD) const |
virtual returnValue | times (const Indexlist *const irows, const Indexlist *const icols, int_t xN, real_t alpha, const real_t *x, int_t xLD, real_t beta, real_t *y, int_t yLD, BooleanType yCompr=BT_TRUE) const |
virtual returnValue | transTimes (int_t xN, real_t alpha, const real_t *x, int_t xLD, real_t beta, real_t *y, int_t yLD) const |
virtual returnValue | transTimes (const Indexlist *const irows, const Indexlist *const icols, int_t xN, real_t alpha, const real_t *x, int_t xLD, real_t beta, real_t *y, int_t 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 |
virtual returnValue | writeToFile (FILE *output_file, const char *prefix) const |
Protected Attributes | |
BooleanType | freeMemory |
int_t | nRows |
int_t | nCols |
sparse_int_t * | ir |
sparse_int_t * | jc |
sparse_int_t * | jd |
real_t * | val |
Symmetric sparse matrix class (column compressed format).
SymSparseMat::SymSparseMat | ( | ) | [inline] |
Default constructor.
Referenced by duplicateSym().
SymSparseMat::SymSparseMat | ( | int_t | nr, |
int_t | nc, | ||
sparse_int_t * | r, | ||
sparse_int_t * | c, | ||
real_t * | v | ||
) | [inline] |
Constructor with arguments.
nr | Number of rows. |
nc | Number of columns. |
r | Row indices (length). |
c | Indices to first entry of columns (nCols+1). |
v | Vector of entries (length). |
SymSparseMat::SymSparseMat | ( | int_t | nr, |
int_t | nc, | ||
int_t | ld, | ||
const real_t *const | v | ||
) | [inline] |
Constructor from dense matrix.
nr | Number of rows. |
nc | Number of columns. |
ld | Leading dimension. |
v | Row major stored matrix elements. |
virtual SymSparseMat::~SymSparseMat | ( | ) | [inline, virtual] |
Destructor.
virtual returnValue Matrix::addToDiag | ( | real_t | alpha | ) | [pure virtual, inherited] |
Adds given offset to diagonal of matrix.
alpha | Diagonal offset. |
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
Referenced by QProblemB::regulariseHessian().
returnValue SparseMatrix::addToDiag | ( | real_t | alpha | ) | [virtual, inherited] |
Adds given offset to diagonal of matrix.
alpha | Diagonal offset. |
Implements Matrix.
References BT_FALSE, SparseMatrix::ir, isZero(), SparseMatrix::jd, SparseMatrix::nCols, SparseMatrix::nRows, RET_DIAGONAL_NOT_INITIALISED, RET_NO_DIAGONAL_AVAILABLE, SUCCESSFUL_RETURN, THROWERROR, and SparseMatrix::val.
returnValue SymSparseMat::bilinear | ( | const Indexlist *const | icols, |
int_t | xN, | ||
const real_t * | x, | ||
int_t | xLD, | ||
real_t * | y, | ||
int_t | yLD | ||
) | const [virtual] |
Compute bilinear form y = x'*H*x using submatrix given by index list.
icols | Index list specifying columns of x. |
xN | Number of vectors to multiply. |
x | Input vector to be multiplied (uncompressed). |
xLD | Leading dimension of input x. |
y | Output vector of results (compressed). |
yLD | Leading dimension of output y. |
Implements SymmetricMatrix.
References SparseMatrix::ir, Indexlist::iSort, SparseMatrix::jc, SparseMatrix::jd, Indexlist::length, Indexlist::number, RET_DIAGONAL_NOT_INITIALISED, SUCCESSFUL_RETURN, THROWERROR, and SparseMatrix::val.
Referenced by QProblem::computeProjectedCholesky().
sparse_int_t * SparseMatrix::createDiagInfo | ( | ) | [inherited] |
Create jd field from ir and jc.
References SparseMatrix::ir, SparseMatrix::jc, SparseMatrix::jd, and SparseMatrix::nCols.
Referenced by QProblemB::createDiagSparseMat(), and solveOqpBenchmark().
virtual real_t Matrix::diag | ( | int_t | i | ) | const [pure virtual, inherited] |
Returns i-th diagonal entry.
i | Index. |
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
Referenced by QProblemB::determineHessianType(), QProblem::removeBound(), and QProblemB::removeBound().
real_t SparseMatrix::diag | ( | int_t | i | ) | const [virtual, inherited] |
Returns i-th diagonal entry.
i | Index. |
Implements Matrix.
References INFTY, SparseMatrix::ir, SparseMatrix::jc, SparseMatrix::jd, RET_DIAGONAL_NOT_INITIALISED, THROWERROR, and SparseMatrix::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(), SparseMatrixRow::duplicate(), SymDenseMat::duplicateSym(), duplicateSym(), QProblemB::setupQPdataFromFile(), QProblem::setupQPdataFromFile(), solveOqpBenchmark(), SparseMatrix::SparseMatrix(), and SparseMatrixRow::SparseMatrixRow().
void Matrix::doNotFreeMemory | ( | ) | [inline, inherited] |
Disables de-allocation of internal memory.
Referenced by SparseMatrix::free(), SparseMatrixRow::free(), Matrix::Matrix(), SparseMatrix::SparseMatrix(), and SparseMatrixRow::SparseMatrixRow().
Matrix * SymSparseMat::duplicate | ( | ) | const [virtual] |
Returns a deep-copy of the Matrix object.
Reimplemented from SparseMatrix.
References duplicateSym().
SymmetricMatrix * SymSparseMat::duplicateSym | ( | ) | const [virtual] |
Returns a deep-copy of the SymmetricMatrix object.
Implements SymmetricMatrix.
References Matrix::doFreeMemory(), SparseMatrix::ir, SparseMatrix::jc, SparseMatrix::jd, SparseMatrix::nCols, SparseMatrix::nRows, real_t, SymSparseMat(), and SparseMatrix::val.
Referenced by duplicate().
virtual void Matrix::free | ( | ) | [pure virtual, inherited] |
Frees all internal memory.
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
void SparseMatrix::free | ( | ) | [virtual, inherited] |
Frees all internal memory.
Implements Matrix.
References Matrix::doNotFreeMemory(), SparseMatrix::ir, SparseMatrix::jc, and SparseMatrix::val.
Referenced by SparseMatrix::~SparseMatrix().
virtual real_t* Matrix::full | ( | ) | const [pure virtual, inherited] |
Allocates and creates dense matrix array in row major format.
Note: Calling function has to free allocated memory!
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
Referenced by SolutionAnalysis::getKktViolation(), and QProblem::writeQpDataIntoMatFile().
real_t * SparseMatrix::full | ( | ) | const [virtual, inherited] |
Allocates and creates dense matrix array in row major format.
Note: Calling function has to free allocated memory!
Implements Matrix.
References SparseMatrix::ir, SparseMatrix::jc, SparseMatrix::nCols, SparseMatrix::nRows, real_t, and SparseMatrix::val.
Referenced by SparseMatrix::print().
virtual returnValue Matrix::getCol | ( | int_t | cNum, |
const Indexlist *const | irows, | ||
real_t | alpha, | ||
real_t * | col | ||
) | const [pure virtual, inherited] |
Retrieve indexed entries of matrix column multiplied by alpha.
cNum | Column number. |
irows | Index list specifying rows. |
alpha | Scalar factor. |
col | Output column vector. |
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
Referenced by QProblemB::computeCholesky(), QProblem::computeProjectedCholesky(), and QProblem::removeBound().
returnValue SparseMatrix::getCol | ( | int_t | cNum, |
const Indexlist *const | irows, | ||
real_t | alpha, | ||
real_t * | col | ||
) | const [virtual, inherited] |
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, SparseMatrix::ir, isEqual(), Indexlist::iSort, SparseMatrix::jc, Indexlist::number, SUCCESSFUL_RETURN, and SparseMatrix::val.
virtual real_t Matrix::getNorm | ( | int_t | type = 2 | ) | const [pure virtual, inherited] |
Get the N-norm of the matrix
type | Norm type, 1: one-norm, 2: Euclidean norm. |
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
Referenced by QProblemB::regulariseHessian().
real_t SparseMatrix::getNorm | ( | int_t | type = 2 | ) | const [virtual, inherited] |
Get the N-norm of the matrix
type | Norm type, 1: one-norm, 2: Euclidean norm. |
Implements Matrix.
References SparseMatrix::jc, SparseMatrix::nCols, REFER_NAMESPACE_QPOASES, and SparseMatrix::val.
virtual returnValue Matrix::getRow | ( | int_t | rNum, |
const Indexlist *const | icols, | ||
real_t | alpha, | ||
real_t * | row | ||
) | const [pure virtual, inherited] |
Retrieve indexed entries of matrix row multiplied by alpha.
rNum | Row number. |
icols | Index list specifying columns. |
alpha | Scalar factor. |
row | Output row vector. |
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
Referenced by QProblem::addConstraint(), QProblem::addConstraint_checkLI(), SQProblemSchur::addConstraint_checkLISchur(), QProblem::addConstraint_ensureLI(), and QProblemB::removeBound().
returnValue SparseMatrix::getRow | ( | int_t | rNum, |
const Indexlist *const | icols, | ||
real_t | alpha, | ||
real_t * | row | ||
) | const [virtual, inherited] |
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, SparseMatrix::ir, isEqual(), Indexlist::iSort, SparseMatrix::jc, Indexlist::length, SparseMatrix::nCols, Indexlist::number, SUCCESSFUL_RETURN, and SparseMatrix::val.
virtual real_t Matrix::getRowNorm | ( | int_t | rNum, |
int_t | type = 2 |
||
) | const [pure virtual, inherited] |
Get the N-norm of a row
rNum | Row number. |
type | Norm type, 1: one-norm, 2: Euclidean norm. |
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
Referenced by QProblem::setA().
virtual returnValue Matrix::getRowNorm | ( | real_t * | norm, |
int_t | type = 2 |
||
) | const [pure virtual, inherited] |
Get the N-norm of all rows
norm | Norm of each row. |
type | Norm type, 1: one-norm, 2: Euclidean norm. |
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
real_t SparseMatrix::getRowNorm | ( | int_t | rNum, |
int_t | type = 2 |
||
) | const [virtual, inherited] |
Get the N-norm of a row
rNum | Row number. |
type | Norm type, 1: one-norm, 2: Euclidean norm. |
Implements Matrix.
References getAbs(), getSqrt(), INFTY, SparseMatrix::ir, SparseMatrix::jc, SparseMatrix::nCols, real_t, RET_INVALID_ARGUMENTS, THROWERROR, and SparseMatrix::val.
returnValue SparseMatrix::getRowNorm | ( | real_t * | norm, |
int_t | type = 2 |
||
) | const [virtual, inherited] |
Get the N-norm of all rows
norm | Norm of each row. |
type | Norm type, 1: one-norm, 2: Euclidean norm. |
Implements Matrix.
References getAbs(), getSqrt(), SparseMatrix::ir, SparseMatrix::jc, SparseMatrix::nCols, SparseMatrix::nRows, RET_INVALID_ARGUMENTS, SUCCESSFUL_RETURN, and SparseMatrix::val.
BEGIN_NAMESPACE_QPOASES returnValue Matrix::getSparseSubmatrix | ( | const Indexlist *const | irows, |
const Indexlist *const | icols, | ||
int_t | rowoffset, | ||
int_t | coloffset, | ||
int_t & | numNonzeros, | ||
int_t * | irn, | ||
int_t * | jcn, | ||
real_t * | avals, | ||
BooleanType | only_lower_triangular = BT_FALSE |
||
) | const [virtual, inherited] |
Retrieve entries of submatrix in Harwell-Boeing sparse format. If irn, jcn, and avals are null, this only counts the number of nonzeros. Otherwise, numNonzeros containts the size of irn, jcn, and avals on entry, and the written number of entries on return.
irows | Index list specifying rows. |
icols | Index list specifying columns. |
rowoffset | Offset for row entries. |
coloffset | Offset for row entries. |
numNonzeros | Number of nonzeros in submatrix. |
irn | Row position of entries (as position in irows) plus rowoffset. |
jcn | Column position of entries (as position in irows) plus coloffset. |
avals | Numerical values of the entries. |
only_lower_triangular | if true, only the lower triangular portion is returned. This can only be true for symmetric matrices and if irows==jcols. |
References Indexlist::getLength(), and Indexlist::getNumberArray().
Referenced by SQProblemSchur::addConstraint(), Matrix::getSparseSubmatrix(), SQProblemSchur::removeBound(), and SQProblemSchur::resetSchurComplement().
returnValue Matrix::getSparseSubmatrix | ( | const Indexlist *const | irows, |
int_t | idx_icol, | ||
int_t | rowoffset, | ||
int_t | coloffset, | ||
int_t & | numNonzeros, | ||
int_t * | irn, | ||
int_t * | jcn, | ||
real_t * | avals, | ||
BooleanType | only_lower_triangular = BT_FALSE |
||
) | const [virtual, inherited] |
Retrieve entries of submatrix in Harwell-Boeing sparse format. If irn, jcn, and avals are null, this only counts the number of nonzeros. Otherwise, numNonzeros containts the size of irn, jcn, and avals on entry, and the written number of entries on return. This version retrieves one column.
irows | Index list specifying rows. |
idx_icol | Index list specifying columns. |
rowoffset | Offset for row entries. |
coloffset | Offset for row entries. |
numNonzeros | Number of nonzeros in submatrix. |
irn | Row position of entries (as position in irows) plus rowoffset. |
jcn | Column position of entries (as position in irows) plus coloffset. |
avals | Numerical values of the entries. |
only_lower_triangular | if true, only the lower triangular portion is returned. This can only be true for symmetric matrices and if irows==jcols. |
References Indexlist::getLength(), Indexlist::getNumberArray(), and Matrix::getSparseSubmatrix().
returnValue Matrix::getSparseSubmatrix | ( | int_t | idx_row, |
const Indexlist *const | icols, | ||
int_t | rowoffset, | ||
int_t | coloffset, | ||
int_t & | numNonzeros, | ||
int_t * | irn, | ||
int_t * | jcn, | ||
real_t * | avals, | ||
BooleanType | only_lower_triangular = BT_FALSE |
||
) | const [virtual, inherited] |
Retrieve entries of submatrix in Harwell-Boeing sparse format. If irn, jcn, and avals are null, this only counts the number of nonzeros. Otherwise, numNonzeros containts the size of irn, jcn, and avals on entry, and the written number of entries on return. This version retrieves one row.
idx_row | Row number. |
icols | Index list specifying columns. |
rowoffset | Offset for row entries. |
coloffset | Offset for row entries. |
numNonzeros | Number of nonzeros in submatrix. |
irn | Row position of entries (as position in irows) plus rowoffset. |
jcn | Column position of entries (as position in irows) plus coloffset. |
avals | Numerical values of the entries. |
only_lower_triangular | if true, only the lower triangular portion is returned. This can only be true for symmetric matrices and if irows==jcols. |
References Indexlist::getLength(), Indexlist::getNumberArray(), and Matrix::getSparseSubmatrix().
virtual returnValue Matrix::getSparseSubmatrix | ( | int_t | irowsLength, |
const int_t *const | irowsNumber, | ||
int_t | icolsLength, | ||
const int_t *const | icolsNumber, | ||
int_t | rowoffset, | ||
int_t | coloffset, | ||
int_t & | numNonzeros, | ||
int_t * | irn, | ||
int_t * | jcn, | ||
real_t * | avals, | ||
BooleanType | only_lower_triangular = BT_FALSE |
||
) | const [pure virtual, inherited] |
Retrieve entries of submatrix in Harwell-Boeing sparse format. If irn, jcn, and avals are null, this only counts the number of nonzeros. Otherwise, numNonzeros containts the size of irn, jcn, and avals on entry, and the written number of entries on return.
irowsLength | Number of rows. |
irowsNumber | Array with row numbers. |
icolsLength | Number of columns. |
icolsNumber | Array with column numbers. |
rowoffset | Offset for row entries. |
coloffset | Offset for row entries. |
numNonzeros | Number of nonzeros in submatrix. |
irn | Row position of entries (as position in irows) plus rowoffset. |
jcn | Column position of entries (as position in irows) plus coloffset. |
avals | Numerical values of the entries. |
only_lower_triangular | if true, only the lower triangular portion is returned. This can only be true for symmetric matrices and if irows==jcols. |
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
returnValue SparseMatrix::getSparseSubmatrix | ( | int_t | irowsLength, |
const int_t *const | irowsNumber, | ||
int_t | icolsLength, | ||
const int_t *const | icolsNumber, | ||
int_t | rowoffset, | ||
int_t | coloffset, | ||
int_t & | numNonzeros, | ||
int_t * | irn, | ||
int_t * | jcn, | ||
real_t * | avals, | ||
BooleanType | only_lower_triangular = BT_FALSE |
||
) | const [virtual, inherited] |
Retrieve entries of submatrix in Harwell-Boeing sparse format. If irn, jcn, and avals are null, this only counts the number of nonzeros. Otherwise, numNonzeros containts the size of irn, jcn, and avals on entry, and the written number of entries on return.
irowsLength | Number of rows. |
irowsNumber | Array with row numbers. |
icolsLength | Number of columns. |
icolsNumber | Array with column numbers. |
rowoffset | Offset for row entries. |
coloffset | Offset for row entries. |
numNonzeros | Number of nonzeros in submatrix. |
irn | Row position of entries (as position in irows) plus rowoffset. |
jcn | Column position of entries (as position in irows) plus coloffset. |
avals | Numerical values of the entries. |
only_lower_triangular | if true, only the lower triangular portion is returned. This can only be true for symmetric matrices and if irows==jcols. |
Implements Matrix.
References BT_FALSE, SparseMatrix::ir, SparseMatrix::jc, SparseMatrix::nRows, RET_INVALID_ARGUMENTS, SUCCESSFUL_RETURN, THROWERROR, and SparseMatrix::val.
virtual BooleanType Matrix::isDiag | ( | ) | const [pure virtual, inherited] |
Checks whether matrix is square and diagonal.
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
Referenced by QProblemB::determineHessianType().
BooleanType SparseMatrix::isDiag | ( | ) | const [virtual, inherited] |
Checks whether matrix is square and diagonal.
Implements Matrix.
References BT_FALSE, BT_TRUE, SparseMatrix::ir, SparseMatrix::jc, SparseMatrix::nCols, and SparseMatrix::nRows.
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::~SparseMatrixRow().
virtual returnValue Matrix::print | ( | const char * | name = 0 | ) | const [pure virtual, inherited] |
Prints matrix to screen.
name | Name of matrix. |
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
returnValue SparseMatrix::print | ( | const char * | name = 0 | ) | const [virtual, inherited] |
Prints matrix to screen.
name | Name of matrix. |
Implements Matrix.
References SparseMatrix::full(), SparseMatrix::nCols, SparseMatrix::nRows, real_t, and REFER_NAMESPACE_QPOASES.
void SparseMatrix::setVal | ( | const real_t * | newVal | ) | [virtual, inherited] |
Sets value array.
Thanks to Frank Chuang.
newVal | ... |
References SparseMatrix::jc, SparseMatrix::nCols, and SparseMatrix::val.
virtual returnValue Matrix::times | ( | int_t | xN, |
real_t | alpha, | ||
const real_t * | x, | ||
int_t | xLD, | ||
real_t | beta, | ||
real_t * | y, | ||
int_t | yLD | ||
) | const [pure virtual, inherited] |
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. |
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
Referenced by QProblem::determineStepDirection(), QProblemB::determineStepDirection(), QProblem::ensureNonzeroCurvature(), QProblemB::getObjVal(), QProblem::performStep(), QProblem::printIteration(), QProblemB::printIteration(), QProblem::removeBound(), QProblem::removeConstraint(), QProblem::setA(), QProblem::setupAuxiliaryQP(), QProblem::setupAuxiliaryQPgradient(), QProblemB::setupAuxiliaryQPgradient(), and QProblem::setupAuxiliaryQPsolution().
virtual returnValue Matrix::times | ( | const Indexlist *const | irows, |
const Indexlist *const | icols, | ||
int_t | xN, | ||
real_t | alpha, | ||
const real_t * | x, | ||
int_t | xLD, | ||
real_t | beta, | ||
real_t * | y, | ||
int_t | yLD, | ||
BooleanType | yCompr = BT_TRUE |
||
) | const [pure virtual, inherited] |
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. |
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
returnValue SparseMatrix::times | ( | int_t | xN, |
real_t | alpha, | ||
const real_t * | x, | ||
int_t | xLD, | ||
real_t | beta, | ||
real_t * | y, | ||
int_t | yLD | ||
) | const [virtual, inherited] |
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, SparseMatrix::ir, isEqual(), isZero(), SparseMatrix::jc, SparseMatrix::nCols, SparseMatrix::nRows, SUCCESSFUL_RETURN, and SparseMatrix::val.
returnValue SparseMatrix::times | ( | const Indexlist *const | irows, |
const Indexlist *const | icols, | ||
int_t | xN, | ||
real_t | alpha, | ||
const real_t * | x, | ||
int_t | xLD, | ||
real_t | beta, | ||
real_t * | y, | ||
int_t | yLD, | ||
BooleanType | yCompr = BT_TRUE |
||
) | const [virtual, inherited] |
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, getAbs(), getMax(), SparseMatrix::ir, isEqual(), Indexlist::iSort, isZero(), SparseMatrix::jc, Indexlist::length, SparseMatrix::nCols, SparseMatrix::nRows, Indexlist::number, real_t, SUCCESSFUL_RETURN, and SparseMatrix::val.
virtual returnValue Matrix::transTimes | ( | int_t | xN, |
real_t | alpha, | ||
const real_t * | x, | ||
int_t | xLD, | ||
real_t | beta, | ||
real_t * | y, | ||
int_t | yLD | ||
) | const [pure virtual, inherited] |
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. |
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
Referenced by QProblem::addBound_ensureLI(), QProblem::addConstraint_ensureLI(), QProblem::determineStepDirection(), QProblem::printIteration(), and QProblem::setupAuxiliaryQPgradient().
virtual returnValue Matrix::transTimes | ( | const Indexlist *const | irows, |
const Indexlist *const | icols, | ||
int_t | xN, | ||
real_t | alpha, | ||
const real_t * | x, | ||
int_t | xLD, | ||
real_t | beta, | ||
real_t * | y, | ||
int_t | yLD | ||
) | const [pure virtual, inherited] |
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. |
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
returnValue SparseMatrix::transTimes | ( | int_t | xN, |
real_t | alpha, | ||
const real_t * | x, | ||
int_t | xLD, | ||
real_t | beta, | ||
real_t * | y, | ||
int_t | yLD | ||
) | const [virtual, inherited] |
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, SparseMatrix::ir, isEqual(), isZero(), SparseMatrix::jc, SparseMatrix::nCols, SUCCESSFUL_RETURN, and SparseMatrix::val.
returnValue SparseMatrix::transTimes | ( | const Indexlist *const | irows, |
const Indexlist *const | icols, | ||
int_t | xN, | ||
real_t | alpha, | ||
const real_t * | x, | ||
int_t | xLD, | ||
real_t | beta, | ||
real_t * | y, | ||
int_t | yLD | ||
) | const [virtual, inherited] |
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, SparseMatrix::ir, isEqual(), Indexlist::iSort, isZero(), SparseMatrix::jc, Indexlist::length, SparseMatrix::nRows, Indexlist::number, real_t, SUCCESSFUL_RETURN, and SparseMatrix::val.
virtual returnValue Matrix::writeToFile | ( | FILE * | output_file, |
const char * | prefix | ||
) | const [pure virtual, inherited] |
Write matrix to file.
Implemented in SparseMatrixRow, SparseMatrix, and DenseMatrix.
Referenced by QProblem::setupQPdata().
returnValue SparseMatrix::writeToFile | ( | FILE * | output_file, |
const char * | prefix | ||
) | const [virtual, inherited] |
Write matrix to file.
Implements Matrix.
References SparseMatrix::ir, SparseMatrix::jc, SparseMatrix::nCols, SUCCESSFUL_RETURN, and SparseMatrix::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* SparseMatrix::ir [protected, inherited] |
Row indices (length).
Referenced by SparseMatrix::addToDiag(), bilinear(), SparseMatrix::createDiagInfo(), SparseMatrix::diag(), SparseMatrix::duplicate(), duplicateSym(), SparseMatrix::free(), SparseMatrix::full(), SparseMatrix::getCol(), SparseMatrix::getRow(), SparseMatrix::getRowNorm(), SparseMatrix::getSparseSubmatrix(), SparseMatrix::isDiag(), SparseMatrix::SparseMatrix(), SparseMatrix::times(), SparseMatrix::transTimes(), and SparseMatrix::writeToFile().
sparse_int_t* SparseMatrix::jc [protected, inherited] |
Indices to first entry of columns (nCols+1).
Referenced by bilinear(), SparseMatrix::createDiagInfo(), SparseMatrix::diag(), SparseMatrix::duplicate(), duplicateSym(), SparseMatrix::free(), SparseMatrix::full(), SparseMatrix::getCol(), SparseMatrix::getNorm(), SparseMatrix::getRow(), SparseMatrix::getRowNorm(), SparseMatrix::getSparseSubmatrix(), SparseMatrix::isDiag(), SparseMatrix::setVal(), SparseMatrix::SparseMatrix(), SparseMatrix::times(), SparseMatrix::transTimes(), and SparseMatrix::writeToFile().
sparse_int_t* SparseMatrix::jd [protected, inherited] |
Indices to first entry of lower triangle (including diagonal) (nCols).
Referenced by SparseMatrix::addToDiag(), bilinear(), SparseMatrix::createDiagInfo(), SparseMatrix::diag(), SparseMatrix::duplicate(), duplicateSym(), and SparseMatrix::~SparseMatrix().
int_t SparseMatrix::nCols [protected, inherited] |
Number of columns.
Referenced by SparseMatrix::addToDiag(), SparseMatrix::createDiagInfo(), SparseMatrix::duplicate(), duplicateSym(), SparseMatrix::full(), SparseMatrix::getNorm(), SparseMatrix::getRow(), SparseMatrix::getRowNorm(), SparseMatrix::isDiag(), SparseMatrix::print(), SparseMatrix::setVal(), SparseMatrix::SparseMatrix(), SparseMatrix::times(), SparseMatrix::transTimes(), and SparseMatrix::writeToFile().
int_t SparseMatrix::nRows [protected, inherited] |
Number of rows.
Referenced by SparseMatrix::addToDiag(), SparseMatrix::duplicate(), duplicateSym(), SparseMatrix::full(), SparseMatrix::getRowNorm(), SparseMatrix::getSparseSubmatrix(), SparseMatrix::isDiag(), SparseMatrix::print(), SparseMatrix::SparseMatrix(), SparseMatrix::times(), and SparseMatrix::transTimes().
real_t* SparseMatrix::val [protected, inherited] |
Vector of entries (length).
Referenced by SparseMatrix::addToDiag(), bilinear(), SparseMatrix::diag(), SparseMatrix::duplicate(), duplicateSym(), SparseMatrix::free(), SparseMatrix::full(), SparseMatrix::getCol(), SparseMatrix::getNorm(), SparseMatrix::getRow(), SparseMatrix::getRowNorm(), SparseMatrix::getSparseSubmatrix(), SparseMatrix::setVal(), SparseMatrix::SparseMatrix(), SparseMatrix::times(), SparseMatrix::transTimes(), and SparseMatrix::writeToFile().