15 #ifndef _DIAGMatrix_H_
16 #define _DIAGMatrix_H_
24 #include "CLHEP/Matrix/defs.h"
25 #include "CLHEP/Matrix/GenMatrix.h"
39 class HepDiagMatrix:
public HepGenMatrix {
64 const double &
operator()(
int row,
int col)
const;
68 double &
fast(
int row,
int col);
69 const double &
fast(
int row,
int col)
const;
136 double trace()
const;
184 std::vector<double > m;
186 std::vector<double,Alloc<double,25> > m;
189 #if defined(__sun) || !defined(__GNUG__)
195 static const double zero;
199 std::ostream&
operator<<(std::ostream &s,
const HepDiagMatrix &q);
202 HepMatrix
operator*(
const HepMatrix &m1,
const HepDiagMatrix &m2);
203 HepMatrix
operator*(
const HepDiagMatrix &m1,
const HepMatrix &m2);
204 HepDiagMatrix
operator*(
double t,
const HepDiagMatrix &d1);
205 HepDiagMatrix
operator*(
const HepDiagMatrix &d1,
double t);
209 HepDiagMatrix
operator/(
const HepDiagMatrix &m1,
double t);
212 HepMatrix
operator+(
const HepMatrix &m1,
const HepDiagMatrix &d2);
213 HepMatrix
operator+(
const HepDiagMatrix &d1,
const HepMatrix &m2);
214 HepDiagMatrix
operator+(
const HepDiagMatrix &m1,
const HepDiagMatrix &d2);
215 HepSymMatrix
operator+(
const HepSymMatrix &s1,
const HepDiagMatrix &d2);
216 HepSymMatrix
operator+(
const HepDiagMatrix &d1,
const HepSymMatrix &s2);
219 HepMatrix
operator-(
const HepMatrix &m1,
const HepDiagMatrix &d2);
220 HepMatrix
operator-(
const HepDiagMatrix &d1,
const HepMatrix &m2);
221 HepDiagMatrix
operator-(
const HepDiagMatrix &d1,
const HepDiagMatrix &d2);
222 HepSymMatrix
operator-(
const HepSymMatrix &s1,
const HepDiagMatrix &d2);
223 HepSymMatrix
operator-(
const HepDiagMatrix &d1,
const HepSymMatrix &s2);
226 HepDiagMatrix
dsum(
const HepDiagMatrix &s1,
const HepDiagMatrix &s2);
231 #ifdef ENABLE_BACKWARDS_COMPATIBILITY
233 using namespace CLHEP;
236 #ifndef HEP_DEBUG_INLINE
237 #include "CLHEP/Matrix/DiagMatrix.icc"
Hep3Vector operator+(const Hep3Vector &, const Hep3Vector &)
HepDiagMatrix_row operator[](int)
HepDiagMatrix & operator-=(const HepDiagMatrix &m2)
HepDiagMatrix & operator+=(const HepDiagMatrix &m2)
HepLorentzVector operator/(const HepLorentzVector &, double a)
friend class HepSymMatrix
void assign(const HepMatrix &m2)
friend HepDiagMatrix operator+(const HepDiagMatrix &m1, const HepDiagMatrix &m2)
HepSymMatrix similarity(const HepMatrix &m1) const
HepDiagMatrix operator-() const
HepDiagMatrix & operator/=(double t)
const double & operator[](int) const
HepDiagMatrix sub(int min_row, int max_row) const
HepSymMatrix similarityT(const HepMatrix &m1) const
HepLorentzRotation operator*(const HepRotation &r, const HepLorentzRotation <)
HepDiagMatrix dsum(const HepDiagMatrix &s1, const HepDiagMatrix &s2)
HepDiagMatrix & operator=(const HepDiagMatrix &m2)
double determinant() const
HepDiagMatrix apply(double(*f)(double, int, int)) const
friend class HepDiagMatrix_row_const
friend HepDiagMatrix operator*(const HepDiagMatrix &m1, const HepDiagMatrix &m2)
HepDiagMatrix_row(HepDiagMatrix &, int)
double & fast(int row, int col)
HepDiagMatrix_row_const(const HepDiagMatrix &, int)
Hep3Vector operator-(const Hep3Vector &, const Hep3Vector &)
HepDiagMatrix inverse(int &ierr) const
double & operator()(int row, int col)
std::ostream & operator<<(std::ostream &os, const HepAxisAngle &aa)
friend class HepDiagMatrix_row
HepDiagMatrix & operator*=(double t)