37#ifndef QPOASES_MATRICES_HPP
38#define QPOASES_MATRICES_HPP
179 const int_t*
const irowsNumber,
181 const int_t*
const icolsNumber,
348 virtual void free( );
407 const int_t*
const irowsNumber,
409 const int_t*
const icolsNumber,
582 virtual void free( );
647 const int_t*
const irowsNumber,
649 const int_t*
const icolsNumber,
776 virtual void free( );
833 const int_t*
const irowsNumber,
835 const int_t*
const icolsNumber,
returnValue
Defines all symbols for global return values.
Definition: MessageHandling.hpp:65
BooleanType
Definition: Types.hpp:204
@ BT_TRUE
Definition: Types.hpp:206
@ BT_FALSE
Definition: Types.hpp:205
int_t sparse_int_t
Definition: Types.hpp:199
int int_t
Definition: Types.hpp:180
BEGIN_NAMESPACE_QPOASES typedef double real_t
Definition: Types.hpp:171
#define END_NAMESPACE_QPOASES
Definition: Types.hpp:110
#define BEGIN_NAMESPACE_QPOASES
Definition: Types.hpp:107
Interfaces matrix-vector operations tailored to general dense matrices.
Definition: Matrices.hpp:329
int_t nCols
Definition: Matrices.hpp:496
virtual real_t diag(int_t i) const
Definition: Matrices.cpp:133
virtual returnValue print(const char *name=0) const
Definition: Matrices.cpp:596
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
Definition: Matrices.cpp:318
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
Definition: Matrices.cpp:225
int_t nRows
Definition: Matrices.hpp:495
virtual real_t getNorm(int_t type=2) const
Definition: Matrices.cpp:155
virtual ~DenseMatrix()
Definition: Matrices.cpp:101
real_t * val
Definition: Matrices.hpp:498
virtual returnValue writeToFile(FILE *output_file, const char *prefix) const
Definition: Matrices.cpp:582
DenseMatrix()
Definition: Matrices.hpp:332
virtual real_t getRowNorm(int_t rNum, int_t type=2) const
Definition: Matrices.cpp:162
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
Definition: Matrices.cpp:304
virtual real_t * full() const
Definition: Matrices.cpp:588
DenseMatrix(int_t m, int_t n, int_t lD, real_t *v)
Definition: Matrices.hpp:337
virtual Matrix * duplicate() const
Definition: Matrices.cpp:114
virtual returnValue addToDiag(real_t alpha)
Definition: Matrices.cpp:572
virtual void free()
Definition: Matrices.cpp:107
virtual returnValue getRow(int_t rNum, const Indexlist *const icols, real_t alpha, real_t *row) const
Definition: Matrices.cpp:177
virtual returnValue getCol(int_t cNum, const Indexlist *const irows, real_t alpha, real_t *col) const
Definition: Matrices.cpp:208
virtual BooleanType isDiag() const
Definition: Matrices.cpp:139
int_t leaDim
Definition: Matrices.hpp:497
Stores and manages index lists.
Definition: Indexlist.hpp:56
Abstract base class for interfacing tailored matrix-vector operations.
Definition: Matrices.hpp:60
virtual returnValue writeToFile(FILE *output_file, const char *prefix) const =0
void doNotFreeMemory()
Definition: Matrices.hpp:273
virtual BooleanType isDiag() const =0
Matrix()
Definition: Matrices.hpp:63
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
BooleanType needToFreeMemory() const
Definition: Matrices.hpp:267
BooleanType freeMemory
Definition: Matrices.hpp:277
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(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 real_t * full() const =0
virtual returnValue getCol(int_t cNum, const Indexlist *const irows, real_t alpha, real_t *col) 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 addToDiag(real_t alpha)=0
virtual real_t diag(int_t i) const =0
virtual real_t getNorm(int_t type=2) 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
void doFreeMemory()
Definition: Matrices.hpp:270
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 real_t getRowNorm(int_t rNum, int_t type=2) const =0
virtual ~Matrix()
Definition: Matrices.hpp:66
virtual returnValue print(const char *name=0) 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
Definition: Matrices.cpp:47
virtual Matrix * duplicate() const =0
Interfaces matrix-vector operations tailored to general sparse matrices.
Definition: Matrices.hpp:752
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
Definition: Matrices.cpp:1731
virtual real_t diag(int_t i) const
Definition: Matrices.cpp:1508
virtual Matrix * duplicate() const
Definition: Matrices.cpp:1478
real_t * val
Definition: Matrices.hpp:923
sparse_int_t * createDiagInfo()
Definition: Matrices.cpp:2062
virtual ~SparseMatrixRow()
Definition: Matrices.cpp:1452
sparse_int_t * ic
Definition: Matrices.hpp:921
virtual returnValue print(const char *name=0) const
Definition: Matrices.cpp:2096
virtual BooleanType isDiag() const
Definition: Matrices.cpp:1521
virtual void free()
Definition: Matrices.cpp:1465
virtual real_t getNorm(int_t type=2) const
Definition: Matrices.cpp:1542
virtual returnValue addToDiag(real_t alpha)
Definition: Matrices.cpp:2040
virtual real_t getRowNorm(int_t rNum, int_t type=2) const
Definition: Matrices.cpp:1551
int_t nCols
Definition: Matrices.hpp:919
sparse_int_t * jr
Definition: Matrices.hpp:920
sparse_int_t * jd
Definition: Matrices.hpp:922
virtual returnValue getRow(int_t rNum, const Indexlist *const icols, real_t alpha, real_t *row) const
Definition: Matrices.cpp:1570
virtual returnValue getCol(int_t cNum, const Indexlist *const irows, real_t alpha, real_t *col) const
Definition: Matrices.cpp:1627
virtual returnValue writeToFile(FILE *output_file, const char *prefix) const
Definition: Matrices.cpp:2105
SparseMatrixRow()
Definition: Matrices.cpp:1422
virtual real_t * full() const
Definition: Matrices.cpp:2080
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
Definition: Matrices.cpp:1682
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
Definition: Matrices.cpp:1693
int_t nRows
Definition: Matrices.hpp:918
Interfaces matrix-vector operations tailored to general sparse matrices.
Definition: Matrices.hpp:558
virtual real_t diag(int_t i) const
Definition: Matrices.cpp:767
virtual void setVal(const real_t *newVal)
Definition: Matrices.cpp:757
virtual returnValue addToDiag(real_t alpha)
Definition: Matrices.cpp:1340
virtual returnValue getCol(int_t cNum, const Indexlist *const irows, real_t alpha, real_t *col) const
Definition: Matrices.cpp:917
sparse_int_t * jd
Definition: Matrices.hpp:737
sparse_int_t * ir
Definition: Matrices.hpp:735
virtual returnValue getRow(int_t rNum, const Indexlist *const icols, real_t alpha, real_t *row) const
Definition: Matrices.cpp:864
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
Definition: Matrices.cpp:955
int_t nCols
Definition: Matrices.hpp:734
virtual ~SparseMatrix()
Definition: Matrices.cpp:702
virtual Matrix * duplicate() const
Definition: Matrices.cpp:728
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
Definition: Matrices.cpp:1087
virtual void free()
Definition: Matrices.cpp:715
virtual returnValue writeToFile(FILE *output_file, const char *prefix) const
Definition: Matrices.cpp:1406
virtual real_t * full() const
Definition: Matrices.cpp:1381
virtual returnValue print(const char *name=0) const
Definition: Matrices.cpp:1397
real_t * val
Definition: Matrices.hpp:738
int_t nRows
Definition: Matrices.hpp:733
SparseMatrix()
Definition: Matrices.cpp:671
sparse_int_t * createDiagInfo()
Definition: Matrices.cpp:1362
virtual real_t getRowNorm(int_t rNum, int_t type=2) const
Definition: Matrices.cpp:809
virtual BooleanType isDiag() const
Definition: Matrices.cpp:780
virtual real_t getNorm(int_t type=2) const
Definition: Matrices.cpp:801
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
Definition: Matrices.cpp:1049
sparse_int_t * jc
Definition: Matrices.hpp:736
Interfaces matrix-vector operations tailored to symmetric dense matrices.
Definition: Matrices.hpp:512
SymDenseMat(int_t m, int_t n, int_t lD, real_t *v)
Definition: Matrices.hpp:518
virtual Matrix * duplicate() const
Definition: Matrices.cpp:603
SymDenseMat()
Definition: Matrices.hpp:515
virtual SymmetricMatrix * duplicateSym() const
Definition: Matrices.cpp:609
virtual returnValue bilinear(const Indexlist *const icols, int_t xN, const real_t *x, int_t xLD, real_t *y, int_t yLD) const
Definition: Matrices.cpp:630
virtual ~SymDenseMat()
Definition: Matrices.hpp:525
Interfaces matrix-vector operations tailored to symmetric sparse matrices.
Definition: Matrices.hpp:937
SymSparseMat(int_t nr, int_t nc, int_t ld, const real_t *const v)
Definition: Matrices.hpp:951
virtual Matrix * duplicate() const
Definition: Matrices.cpp:2110
virtual SymmetricMatrix * duplicateSym() const
Definition: Matrices.cpp:2116
virtual returnValue bilinear(const Indexlist *const icols, int_t xN, const real_t *x, int_t xLD, real_t *y, int_t yLD) const
Definition: Matrices.cpp:2146
SymSparseMat()
Definition: Matrices.hpp:940
virtual ~SymSparseMat()
Definition: Matrices.hpp:958
SymSparseMat(int_t nr, int_t nc, sparse_int_t *r, sparse_int_t *c, real_t *v)
Definition: Matrices.hpp:943
Abstract base class for interfacing matrix-vector operations tailored to symmetric matrices.
Definition: Matrices.hpp:293
virtual ~SymmetricMatrix()
Definition: Matrices.hpp:299
SymmetricMatrix()
Definition: Matrices.hpp:296
virtual returnValue bilinear(const Indexlist *const icols, int_t xN, const real_t *x, int_t xLD, real_t *y, int_t yLD) const =0
virtual SymmetricMatrix * duplicateSym() const =0