#include <libDC.h>
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 | 
| 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 | add (const ldmat &ld2, double w=1.0) | 
| Add another matrix in LD form with weight w.  | |
| 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  ;.  | |
| void | clear () | 
| Clearing matrix so that it corresponds to zeros.  | |
| int | cols () const | 
| access function  | |
| int | rows () const | 
| access function  | |
| vec | sqrt_mult (const vec &v) const | 
Multiplies square root of   by vector  .   | |
| virtual void | inv (ldmat &Inv) const | 
| Matrix inversion preserving the chosen form.   | |
| void | mult_sym (const mat &C, ldmat &U) const | 
Symmetric multiplication of   by a general matrix  , result of which is stored in the current class.   | |
| void | mult_sym_t (const mat &C, ldmat &U) const | 
Symmetric multiplication of   by a transpose of a general matrix  , result of which is stored in the current class.   | |
| void | ldform (const mat &A, const vec &D0) | 
Transforms general   into pure  .   | |
| 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.  | |
| ldmat & | operator+= (const ldmat &ldA) | 
| add another ldmat matrix   | |
| ldmat & | operator-= (const ldmat &ldA) | 
| subtract another ldmat matrix   | |
| ldmat & | operator*= (double x) | 
| multiply by a scalar  | |
Protected Attributes | |
| vec | D | 
Positive vector  .  | |
| mat | L | 
Lower-triangular matrix  .  | |
Private Attributes | |
| int | dim | 
| dimension of the square matrix  | |
Friends | |
| std::ostream & | operator<< (std::ostream &os, const ldmat &sq) | 
print both L and D  | |
Matrix is decomposed as follows:
 where only 
 and 
 matrices are stored. All inplace operations modifies only these and the need to compose and decompose the matrix is avoided. 
| void ldmat::inv | ( | ldmat & | Inv | ) |  const [virtual] | 
        
| void ldmat::ldform | ( | const mat & | A, | |
| const vec & | D0 | |||
| ) | 
Transforms general 
 into pure 
. 
The new decomposition fullfills: 
 
| A | general matrix | |
| D0 | general vector | 
References D, sqmat::dim, and L.
Referenced by inv(), ldmat(), mult_sym(), and mult_sym_t().
| void ldmat::mult_sym | ( | const mat & | C, | |
| ldmat & | U | |||
| ) | const | 
| void ldmat::mult_sym | ( | const mat & | C | ) |  [virtual] | 
        
| void ldmat::mult_sym_t | ( | const mat & | C, | |
| ldmat & | U | |||
| ) | const | 
| void ldmat::mult_sym_t | ( | const mat & | C | ) |  [virtual] | 
        
| void ldmat::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 | 
Implements sqmat.
References D, sqmat::dim, dydr(), and L.
Referenced by add(), bdm::ARX::bayes(), and bdm::ARX::logpred().
| vec ldmat::sqrt_mult | ( | const vec & | v | ) |  const [virtual] | 
        
Multiplies square root of 
 by vector 
. 
Used e.g. in generating normal samples.
Implements sqmat.
References D, sqmat::dim, and L.
 1.5.8