mixpp: bdm::ldmat Class Reference

bdm::ldmat Class Reference

Matrix stored in LD form, (commonly known as UD). More...

#include <square_mat.h>

Inheritance diagram for bdm::ldmat:

bdm::sqmat List of all members.

Public Member Functions

 ldmat (const mat &L, const vec &D)
 Construct by copy of L and D.
 ldmat (const mat &V)
 Construct by decomposition of full matrix V.
 ldmat (const ldmat &V0, const ivec &perm)
 Construct by restructuring of V0 accordint to permutation vector perm.
 ldmat (vec D0)
 Construct diagonal matrix with diagonal D0.
 ldmat ()
 Default constructor.
 ldmat (const int dim0)
 Default initialization with proper size.
virtual ~ldmat ()
 Destructor for future use;.
void opupdt (const vec &v, double w)
mat to_mat () const
void mult_sym (const mat &C)
void mult_sym_t (const mat &C)
void add (const ldmat &ld2, double w=1.0)
 Add another matrix in LD form with weight w.
double logdet () const
double qform (const vec &v) const
double invqform (const vec &v) const
void clear ()
vec sqrt_mult (const vec &v) const
void inv (ldmat &Inv) const
 Matrix inversion preserving the chosen form.
void mult_sym (const mat &C, ldmat &U) const
 Symmetric multiplication of $U$ by a general matrix $C$, result of which is stored in the current class.
void mult_sym_t (const mat &C, ldmat &U) const
 Symmetric multiplication of $U$ by a transpose of a general matrix $C$, result of which is stored in the current class.
void ldform (const mat &A, const vec &D0)
 Transforms general $A'D0 A$ into pure $L'DL$.
void setD (const vec &nD)
 Access functions.
void setD (const vec &nD, int i)
 Access functions.
void setL (const vec &nL)
 Access functions.
const vec & _D () const
 Access functions.
const mat & _L () const
 Access functions.
vec & __D ()
 Access functions.
mat & __L ()
 Access functions.
void validate ()
ldmatoperator+= (const ldmat &ldA)
 add another ldmat matrix
ldmatoperator-= (const ldmat &ldA)
 mapping of negative add operation to operators
ldmatoperator *= (double x)
 multiply by a scalar

Protected Attributes

vec D
 Positive vector $D$.
mat L
 Lower-triangular matrix $L$.

Friends

std::ostream & operator<< (std::ostream &os, const ldmat &sq)
 print both L and D

Detailed Description

Matrix stored in LD form, (commonly known as UD).

Matrix is decomposed as follows:

\[M = L'DL\]

where only $L$ and $D$ matrices are stored. All inplace operations modifies only these and the need to compose and decompose the matrix is avoided.


Member Function Documentation

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

Matrix inversion preserving the chosen form.

Parameters:
Inv a space where the inverse is stored.

void bdm::ldmat::ldform ( const mat &  A,
const vec &  D0 
)

Transforms general $A'D0 A$ into pure $L'DL$.

The new decomposition fullfills: $A'*diag(D)*A = self.L'*diag(self.D)*self.L$

Parameters:
A general matrix
D0 general vector

void bdm::ldmat::mult_sym ( const mat &  C,
ldmat U 
) const

Symmetric multiplication of $U$ by a general matrix $C$, result of which is stored in the current class.

Parameters:
C matrix to multiply with
U a space where the inverse is stored.

void bdm::ldmat::mult_sym_t ( const mat &  C,
ldmat U 
) const

Symmetric multiplication of $U$ by a transpose of a general matrix $C$, result of which is stored in the current class.

Parameters:
C matrix to multiply with
U a space where the inverse is stored.

ldmat & bdm::ldmat::operator+= ( const ldmat ldA  )  [inline]

add another ldmat matrix

Operations: mapping of add operation to operators


The documentation for this class was generated from the following files:
Generated on 2 Dec 2013 for mixpp by  doxygen 1.4.7