Fake sqmat. This class maps sqmat operations to operations on full matrix. More...
Fake sqmat. This class maps sqmat operations to operations on full matrix.
This class can be used to compare performance of algorithms using decomposed matrices with perormance of the same algorithms using full matrices;
#include <square_mat.h>
Public Member Functions | |
void | opupdt (const vec &v, double w) |
mat | to_mat () const |
Conversion to full matrix. | |
void | mult_sym (const mat &C) |
Inplace symmetric multiplication by a SQUARE matrix , i.e. . | |
void | mult_sym_t (const mat &C) |
Inplace symmetric multiplication by a SQUARE transpose of matrix , i.e. . | |
void | mult_sym (const mat &C, fsqmat &U) const |
store result of mult_sym in external matrix | |
void | mult_sym_t (const mat &C, fsqmat &U) const |
store result of mult_sym_t in external matrix | |
void | clear () |
Clearing matrix so that it corresponds to zeros. | |
fsqmat () | |
Default initialization. | |
fsqmat (const int dim0) | |
Default initialization with proper size. | |
fsqmat (const mat &M) | |
Constructor. | |
fsqmat (const fsqmat &M, const ivec &perm) | |
fsqmat (const vec &d) | |
Constructor. | |
virtual | ~fsqmat () |
Destructor for future use;. | |
void | inv (fsqmat &Inv) const |
Matrix inversion preserving the chosen form. | |
double | logdet () const |
Logarithm of a determinant. | |
double | qform (const vec &v) const |
Evaluates quadratic form ;. | |
double | invqform (const vec &v) const |
Evaluates quadratic form ;. | |
vec | sqrt_mult (const vec &v) const |
Multiplies square root of by vector . | |
void | add (const fsqmat &fsq2, double w=1.0) |
Add another matrix in fsq form with weight w. | |
void | setD (const vec &nD) |
Access functions. | |
vec | getD () |
Access functions. | |
void | setD (const vec &nD, int i) |
Access functions. | |
fsqmat & | operator+= (const fsqmat &A) |
add another fsqmat matrix | |
fsqmat & | operator-= (const fsqmat &A) |
subtrack another fsqmat matrix | |
fsqmat & | operator*= (double x) |
multiply by a scalar | |
operator mat & () | |
cast to normal mat | |
int | cols () const |
Reimplementing common functions of mat: cols(). | |
int | rows () const |
Reimplementing common functions of mat: rows(). | |
Protected Attributes | |
mat | M |
Full matrix on which the operations are performed. | |
int | dim |
dimension of the square matrix | |
Friends | |
std::ostream & | operator<< (std::ostream &os, const fsqmat &sq) |
print full matrix |
bdm::fsqmat::fsqmat | ( | const fsqmat & | M, | |
const ivec & | perm | |||
) | [inline] |
Some templates require this constructor to compile, but it shouldn't actually be called.
References bdm_error.
void bdm::fsqmat::inv | ( | fsqmat & | Inv | ) | const |
Matrix inversion preserving the chosen form.
Inv | a space where the inverse is stored. |
References M.
Referenced by bdm::egiw::evallog_nn().
void bdm::fsqmat::mult_sym | ( | const mat & | C | ) | [virtual] |
Inplace symmetric multiplication by a SQUARE matrix , i.e. .
C | multiplying matrix, |
Implements bdm::sqmat.
References M.
void bdm::fsqmat::mult_sym_t | ( | const mat & | C | ) | [virtual] |
Inplace symmetric multiplication by a SQUARE transpose of matrix , i.e. .
C | multiplying matrix, |
Implements bdm::sqmat.
References M.
void bdm::fsqmat::opupdt | ( | const vec & | v, | |
double | w | |||
) | [virtual] |
Perfroms a rank-1 update by outer product of vectors: .
v | Vector forming the outer product to be added | |
w | weight of updating; can be negative |
BLAS-2b operation.
Implements bdm::sqmat.
References M.
vec bdm::fsqmat::sqrt_mult | ( | const vec & | v | ) | const [inline, virtual] |
Multiplies square root of by vector .
Used e.g. in generating normal samples.
Implements bdm::sqmat.
References M.