Public Member Functions | Protected Attributes
SparseMatrix Class Reference

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

#include <Matrices.hpp>

Inheritance diagram for SparseMatrix:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual returnValue addToDiag (real_t alpha)
long * createDiagInfo ()
virtual real_t diag (int i) const
virtual Matrixduplicate () const
virtual void free ()
real_tfull () const
virtual returnValue getCol (int cNum, const Indexlist *const irows, real_t alpha, real_t *col) const
virtual returnValue getRow (int rNum, const Indexlist *const icols, real_t alpha, real_t *row) const
virtual BooleanType isDiag () const
virtual returnValue print () const
 SparseMatrix ()
 SparseMatrix (long nr, long nc, long *r, long *c, real_t *v, long *d=0)
 SparseMatrix (int nr, int nc, int ld, const real_t *const v)
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 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 (int xN, real_t alpha, const real_t *x, int xLD, real_t beta, real_t *y, int yLD) 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 ~SparseMatrix ()

Protected Attributes

long * ir
long * jc
long * jd
long nCols
long nRows
real_tval

Detailed Description

Interfaces matrix-vector operations tailored to general sparse matrices.

Sparse matrix class (column compressed format).

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

Definition at line 443 of file Matrices.hpp.


Constructor & Destructor Documentation

Default constructor.

Definition at line 485 of file Matrices.cpp.

SparseMatrix::SparseMatrix ( long  nr,
long  nc,
long *  r,
long *  c,
real_t v,
long *  d = 0 
)

Constructor with arguments.

Parameters:
nrNumber of rows.
ncNumber of columns.
rRow indices (length).
cIndices to first entry of columns (nCols+1).
vVector of entries (length).
dIndices to first entry of lower triangle (including diagonal) (nCols).

Definition at line 487 of file Matrices.cpp.

SparseMatrix::SparseMatrix ( int  nr,
int  nc,
int  ld,
const real_t *const  v 
)

Constructor from dense matrix.

Parameters:
nrNumber of rows.
ncNumber of columns.
ldLeading dimension.
vRow major stored matrix elements.

Definition at line 490 of file Matrices.cpp.

Destructor.

Definition at line 514 of file Matrices.cpp.


Member Function Documentation

Adds given offset to diagonal of matrix.

Returns:
SUCCESSFUL_RETURN
RET_NO_DIAGONAL_AVAILABLE
Parameters:
alphaDiagonal offset.

Implements Matrix.

Definition at line 1031 of file Matrices.cpp.

Create jd field from ir and jc.

Returns:
Pointer to jd.

Definition at line 1045 of file Matrices.cpp.

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

Returns i-th diagonal entry.

Returns:
i-th diagonal entry
Parameters:
iIndex.

Implements Matrix.

Definition at line 555 of file Matrices.cpp.

Matrix * SparseMatrix::duplicate ( ) const [virtual]

Returns a deep-copy of the Matrix object.

Returns:
Deep-copy of Matrix object

Implements Matrix.

Reimplemented in SymSparseMat.

Definition at line 533 of file Matrices.cpp.

void SparseMatrix::free ( ) [virtual]

Frees all internal memory.

Implements Matrix.

Definition at line 520 of file Matrices.cpp.

Allocate and create dense matrix in row major format.

Returns:
Pointer to matrix array.

Definition at line 1062 of file Matrices.cpp.

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

Retrieve indexed entries of matrix column multiplied by alpha.

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

Implements Matrix.

Definition at line 618 of file Matrices.cpp.

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

Retrieve indexed entries of matrix row multiplied by alpha.

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

Implements Matrix.

Definition at line 566 of file Matrices.cpp.

BooleanType SparseMatrix::isDiag ( ) const [virtual]

Checks whether matrix is square and diagonal.

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

Implements Matrix.

Definition at line 561 of file Matrices.cpp.

returnValue SparseMatrix::print ( ) const [virtual]

Prints matrix to screen.

Returns:
RET_NOT_YET_IMPLEMENTED

Implements Matrix.

Definition at line 1078 of file Matrices.cpp.

returnValue SparseMatrix::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.

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.

Definition at line 656 of file Matrices.cpp.

returnValue SparseMatrix::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.

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.

Definition at line 730 of file Matrices.cpp.

returnValue SparseMatrix::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.

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.

Definition at line 693 of file Matrices.cpp.

returnValue SparseMatrix::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.

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.

Definition at line 961 of file Matrices.cpp.


Member Data Documentation

long* SparseMatrix::ir [protected]

Row indices (length).

Definition at line 570 of file Matrices.hpp.

long* SparseMatrix::jc [protected]

Indices to first entry of columns (nCols+1).

Definition at line 571 of file Matrices.hpp.

long* SparseMatrix::jd [protected]

Indices to first entry of lower triangle (including diagonal) (nCols).

Definition at line 572 of file Matrices.hpp.

long SparseMatrix::nCols [protected]

Number of columns.

Definition at line 569 of file Matrices.hpp.

long SparseMatrix::nRows [protected]

Number of rows.

Definition at line 568 of file Matrices.hpp.

real_t* SparseMatrix::val [protected]

Vector of entries (length).

Definition at line 573 of file Matrices.hpp.


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


acado
Author(s): Milan Vukov, Rien Quirynen
autogenerated on Sat Jun 8 2019 19:40:26