#include <libDC.h>

| Public Member Functions | |
| virtual void | opupdt (const vec &v, double w)=0 | 
| virtual mat | to_mat ()=0 | 
| Conversion to full matrix. | |
| virtual void | mult_sym (const mat &C, bool trans=true)=0 | 
| Inplace symmetric multiplication by a SQUARE matrix $C$, i.e. $V = C*V*C'$. | |
| virtual double | logdet ()=0 | 
| Logarithm of a determinant. | |
| virtual vec | sqrt_mult (vec &v)=0 | 
| Multiplies square root of $V$ by vector $x$. | |
| virtual double | qform (vec &v)=0 | 
| Evaluates quadratic form $x= v'*V*v$;. | |
| virtual void | clear ()=0 | 
| Clearing matrix so that it corresponds to zeros. | |
| int | cols () const | 
| Reimplementing common functions of mat: cols(). | |
| int | rows () const | 
| Reimplementing common functions of mat: cols(). | |
| Protected Attributes | |
| int | dim | 
All operations defined on this class should be optimized for the chosed decomposition.
| virtual void sqmat::opupdt | ( | const vec & | v, | |
| double | w | |||
| ) |  [pure virtual] | 
Perfroms a rank-1 update by outer product of vectors: $V = V + w v v'$.
| v | Vector forming the outer product to be added | |
| w | weight of updating; can be negative | 
Implemented in fsqmat.
| virtual void sqmat::mult_sym | ( | const mat & | C, | |
| bool | trans = true | |||
| ) |  [pure virtual] | 
Inplace symmetric multiplication by a SQUARE matrix $C$, i.e. $V = C*V*C'$.
| C | multiplying matrix, | |
| trans | if true, product $V = C'*V*C$ will be computed instead; | 
Implemented in fsqmat.
| virtual vec sqmat::sqrt_mult | ( | vec & | v | ) |  [pure virtual] | 
Multiplies square root of $V$ by vector $x$.
Used e.g. in generating normal samples.
Implemented in fsqmat.
 1.5.3
 1.5.3