bdm::fsqmat Class Reference

Fake sqmat. This class maps sqmat operations to operations on full matrix. More...

#include <square_mat.h>

List of all members.

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 $C$, i.e. $V = C*V*C'$.
void mult_sym_t (const mat &C)
 Inplace symmetric multiplication by a SQUARE transpose of matrix $C$, i.e. $V = C'*V*C$.
void mult_sym (const mat &C, fsqmat &U) const
 store result of mult_sym in external matrix $U$
void mult_sym_t (const mat &C, fsqmat &U) const
 store result of mult_sym_t in external matrix $U$
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 $x= v'*V*v$;.
double invqform (const vec &v) const
 Evaluates quadratic form $x= v'*inv(V)*v$;.
vec sqrt_mult (const vec &v) const
 Multiplies square root of $V$ by vector $x$.
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.
fsqmatoperator+= (const fsqmat &A)
 add another fsqmat matrix
fsqmatoperator-= (const fsqmat &A)
 subtrack another fsqmat matrix
fsqmatoperator*= (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


Detailed Description

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;


Constructor & Destructor Documentation

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.


Member Function Documentation

void bdm::fsqmat::inv ( fsqmat Inv  )  const

Matrix inversion preserving the chosen form.

Parameters:
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 $C$, i.e. $V = C*V*C'$.

Parameters:
C multiplying matrix,

Reimplemented from bdm::sqmat.

References M.

void bdm::fsqmat::mult_sym_t ( const mat &  C  )  [virtual]

Inplace symmetric multiplication by a SQUARE transpose of matrix $C$, i.e. $V = C'*V*C$.

Parameters:
C multiplying matrix,

Reimplemented from 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 = V + w v v'$.

Parameters:
v Vector forming the outer product to be added
w weight of updating; can be negative
BLAS-2b operation.

Reimplemented from bdm::sqmat.

References M.

vec bdm::fsqmat::sqrt_mult ( const vec &  v  )  const [inline, virtual]

Multiplies square root of $V$ by vector $x$.

Used e.g. in generating normal samples.

Reimplemented from bdm::sqmat.

References M.


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

Generated on Wed Oct 7 17:34:47 2009 for mixpp by  doxygen 1.5.9