74 #include "CLHEP/Matrix/defs.h" 75 #include "CLHEP/Matrix/GenMatrix.h" 89 class HepSymMatrix :
public HepGenMatrix {
116 const double &
operator()(
int row,
int col)
const;
121 const double &
fast(
int row,
int col)
const;
122 double &
fast(
int row,
int col);
196 double trace()
const;
268 std::vector<double >
m;
270 std::vector<double,Alloc<double,25> > m;
275 static double posDefFraction5x5;
276 static double adjustment5x5;
277 static const double CHOLESKY_THRESHOLD_5x5;
278 static const double CHOLESKY_CREEP_5x5;
280 static double posDefFraction6x6;
281 static double adjustment6x6;
282 static const double CHOLESKY_THRESHOLD_6x6;
283 static const double CHOLESKY_CREEP_6x6;
285 void invert4 (
int & ifail);
286 void invert5 (
int & ifail);
287 void invert6 (
int & ifail);
344 #ifdef ENABLE_BACKWARDS_COMPATIBILITY 346 using namespace CLHEP;
349 #ifndef HEP_DEBUG_INLINE 350 #include "CLHEP/Matrix/SymMatrix.icc" HepSymMatrix operator-() const
friend void diag_step(HepSymMatrix *t, int begin, int end)
void invertBunchKaufman(int &ifail)
HepSymMatrix_row(HepSymMatrix &, int)
HepLorentzVector operator/(const HepLorentzVector &, double a)
HepSymMatrix similarity(const HepMatrix &hm1) const
HepSymMatrix inverse() const
void invertHaywood5(int &ifail)
friend HepMatrix operator*(const HepSymMatrix &hm1, const HepSymMatrix &hm2)
friend void tridiagonal(HepSymMatrix *a, HepMatrix *hsm)
const double & operator()(int row, int col) const
friend class HepSymMatrix_row
double determinant() const
HepDiagMatrix dsum(const HepDiagMatrix &s1, const HepDiagMatrix &s2)
HepSymMatrix similarityT(const HepMatrix &hm1) const
friend HepSymMatrix operator+(const HepSymMatrix &hm1, const HepSymMatrix &hm2)
void invertCholesky6(int &ifail)
HepSymMatrix & operator*=(double t)
HepSymMatrix & operator-=(const HepSymMatrix &hm2)
friend class HepSymMatrix_row_const
friend HepVector house(const HepSymMatrix &a, int row, int col)
const double & fast(int row, int col) const
HepSymMatrix & operator+=(const HepSymMatrix &hm2)
friend class HepDiagMatrix
void invertHaywood6(int &ifail)
HepSymMatrix & operator/=(double t)
friend HepSymMatrix vT_times_v(const HepVector &v)
HepSymMatrix sub(int min_row, int max_row) const
friend void house_with_update2(HepSymMatrix *a, HepMatrix *v, int row, int col)
friend HepMatrix diagonalize(HepSymMatrix *s)
void assign(const HepMatrix &hm2)
friend double condition(const HepSymMatrix &m)
void invertCholesky5(int &ifail)
std::ostream & operator<<(std::ostream &os, const HepAxisAngle &aa)
void invertHaywood4(int &ifail)
HepSymMatrix apply(double(*f)(double, int, int)) const
HepSymMatrix & operator=(const HepSymMatrix &hm2)