#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 double | qform (vec &v)=0 |
Evaluates quadratic form $x= v'*V*v$;. | |
virtual void | clear ()=0 |
Clearing matrix so that it corresponds to zeros. | |
virtual int | cols ()=0 |
Reimplementing common functions of mat: cols(). | |
virtual int | rows ()=0 |
Reimplementing common functions of mat: cols(). | |
Friends | |
std::ostream & | operator<< (std::ostream &os, sqmat &sq) |
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 |
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; |