Abstract base class for interfacing tailored matrix-vector operations. More...
#include <Matrices.hpp>
Public Member Functions | |
virtual returnValue | addToDiag (real_t alpha)=0 |
virtual real_t | diag (int i) const =0 |
void | doFreeMemory () |
void | doNotFreeMemory () |
virtual Matrix * | duplicate () const =0 |
virtual void | free ()=0 |
virtual returnValue | getCol (int cNum, const Indexlist *const irows, real_t alpha, real_t *col) const =0 |
virtual returnValue | getRow (int rNum, const Indexlist *const icols, real_t alpha, real_t *row) const =0 |
virtual BooleanType | isDiag () const =0 |
Matrix () | |
BooleanType | needToFreeMemory () const |
virtual returnValue | print () const =0 |
virtual returnValue | times (int xN, real_t alpha, const real_t *x, int xLD, real_t beta, real_t *y, int yLD) const =0 |
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 =0 |
virtual returnValue | transTimes (int xN, real_t alpha, const real_t *x, int xLD, real_t beta, real_t *y, int yLD) const =0 |
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 =0 |
virtual | ~Matrix () |
Protected Attributes | |
BooleanType | freeMemory |
Abstract base class for interfacing tailored matrix-vector operations.
Abstract base matrix class. Supplies interface to matrix vector products, including products with submatrices given by (ordered) working set index lists (see SubjectTo).
Definition at line 112 of file Matrices.hpp.
Matrix::Matrix | ( | ) | [inline] |
Default constructor.
Definition at line 116 of file Matrices.hpp.
virtual Matrix::~Matrix | ( | ) | [inline, virtual] |
Destructor.
Definition at line 119 of file Matrices.hpp.
virtual returnValue Matrix::addToDiag | ( | real_t | alpha | ) | [pure virtual] |
Adds given offset to diagonal of matrix.
alpha | Diagonal offset. |
Implemented in SparseMatrix, and DenseMatrix.
virtual real_t Matrix::diag | ( | int | i | ) | const [pure virtual] |
Returns i-th diagonal entry.
i | Index. |
Implemented in SparseMatrix, and DenseMatrix.
void Matrix::doFreeMemory | ( | ) | [inline] |
Enables de-allocation of internal memory.
Definition at line 224 of file Matrices.hpp.
void Matrix::doNotFreeMemory | ( | ) | [inline] |
Disables de-allocation of internal memory.
Definition at line 227 of file Matrices.hpp.
virtual Matrix* Matrix::duplicate | ( | ) | const [pure virtual] |
Returns a deep-copy of the Matrix object.
Implemented in SymSparseMat, SparseMatrix, SymDenseMat, and DenseMatrix.
virtual void Matrix::free | ( | ) | [pure virtual] |
Frees all internal memory.
Implemented in SparseMatrix, and DenseMatrix.
virtual returnValue Matrix::getCol | ( | int | cNum, |
const Indexlist *const | irows, | ||
real_t | alpha, | ||
real_t * | col | ||
) | const [pure 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. |
Implemented in SparseMatrix, and DenseMatrix.
virtual returnValue Matrix::getRow | ( | int | rNum, |
const Indexlist *const | icols, | ||
real_t | alpha, | ||
real_t * | row | ||
) | const [pure 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. |
Implemented in SparseMatrix, and DenseMatrix.
virtual BooleanType Matrix::isDiag | ( | ) | const [pure virtual] |
Checks whether matrix is square and diagonal.
Implemented in SparseMatrix, and DenseMatrix.
BooleanType Matrix::needToFreeMemory | ( | ) | const [inline] |
Returns whether internal memory needs to be de-allocated.
Definition at line 221 of file Matrices.hpp.
virtual returnValue Matrix::print | ( | ) | const [pure virtual] |
Prints matrix to screen.
Implemented in SparseMatrix, and DenseMatrix.
virtual returnValue Matrix::times | ( | int | xN, |
real_t | alpha, | ||
const real_t * | x, | ||
int | xLD, | ||
real_t | beta, | ||
real_t * | y, | ||
int | yLD | ||
) | const [pure 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. |
Implemented in SparseMatrix, and DenseMatrix.
virtual returnValue Matrix::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 [pure 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. |
Implemented in SparseMatrix, and DenseMatrix.
virtual returnValue Matrix::transTimes | ( | int | xN, |
real_t | alpha, | ||
const real_t * | x, | ||
int | xLD, | ||
real_t | beta, | ||
real_t * | y, | ||
int | yLD | ||
) | const [pure 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. |
Implemented in SparseMatrix, and DenseMatrix.
virtual returnValue Matrix::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 [pure 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. |
Implemented in SparseMatrix, and DenseMatrix.
BooleanType Matrix::freeMemory [protected] |
Indicating whether internal memory needs to be de-allocated.
Definition at line 227 of file Matrices.hpp.