KrisLibrary  1.0.0
Public Types | Public Member Functions | Public Attributes | List of all members
Math::LDLDecomposition< T > Struct Template Reference

Performs the LDL^t decompositoin of a symmetric matrix A. More...

#include <LDL.h>

Public Types

typedef MatrixTemplate< T > MatrixT
 
typedef VectorTemplate< T > VectorT
 

Public Member Functions

 LDLDecomposition (const MatrixT &A)
 
void set (const MatrixT &A)
 
bool backSub (const VectorT &b, VectorT &x) const
 
void LBackSub (const VectorT &b, VectorT &x) const
 
void LTBackSub (const VectorT &b, VectorT &x) const
 
bool DBackSub (const VectorT &b, VectorT &x) const
 
bool backSub (const MatrixT &B, MatrixT &X) const
 
bool getInverse (MatrixT &Ainv) const
 
void getPseudoInverse (MatrixT &Ainv) const
 
void getL (MatrixT &L) const
 
void getD (VectorT &d) const
 
void getA (MatrixT &A) const
 
void mulL (const Vector &x, Vector &y) const
 
void mulLT (const Vector &x, Vector &y) const
 
void mulD (const Vector &x, Vector &y) const
 
void update (const VectorT &x)
 Update the LDL decomposition for A + xx^t.
 
bool downdate (const VectorT &x)
 "Downdate" the LDL decomposition for A - xx^t (on failure, LDL is undefined)
 

Public Attributes

MatrixT LDL
 
zeroTolerance
 
int verbose
 

Detailed Description

template<class T>
struct Math::LDLDecomposition< T >

Performs the LDL^t decompositoin of a symmetric matrix A.

L is stored in the lower diagonal of LDL, D is stored in the diagonal. If any of the elements of D's diagonal have abs value less than zeroTolerance (i.e. A is singular), then they are ignored.


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