Go to the documentation of this file.
193 #include "CLHEP/Matrix/defs.h"
194 #include "CLHEP/Matrix/GenMatrix.h"
209 class HepMatrix :
public HepGenMatrix {
242 virtual const double &
operator()(
int row,
int col)
const;
243 virtual double &
operator()(
int row,
int col);
280 HepMatrix sub(
int min_row,
int max_row,
int min_col,
int max_col)
const;
294 virtual void invert(
int& ierr);
310 double trace()
const;
376 double s,
int k1,
int k2,
377 int rowmin,
int rowmax);
380 double s,
int k1,
int k2,
381 int colmin,
int colmax);
390 int dfact_matrix(
double &det,
int *ir);
395 int dfinv_matrix(
int *ir);
399 std::vector<double > m;
401 std::vector<double,Alloc<double,25> >
m;
410 HepMatrix
operator*(
const HepMatrix &,
const HepMatrix &);
411 HepMatrix
operator*(
double t,
const HepMatrix &);
412 HepMatrix
operator*(
const HepMatrix &,
double );
416 HepMatrix
operator/(
const HepMatrix &,
double );
419 HepMatrix
operator+(
const HepMatrix &hm1,
const HepMatrix &hm2);
423 HepMatrix
operator-(
const HepMatrix &hm1,
const HepMatrix &hm2);
427 HepMatrix
dsum(
const HepMatrix&,
const HepMatrix&);
432 HepVector
solve(
const HepMatrix &,
const HepVector &);
435 std::ostream&
operator<<(std::ostream &s,
const HepMatrix &q);
442 HepVector
qr_solve(
const HepMatrix &A,
const HepVector &
b);
443 HepVector
qr_solve(HepMatrix *A,
const HepVector &
b);
444 HepMatrix
qr_solve(
const HepMatrix &A,
const HepMatrix &
b);
445 HepMatrix
qr_solve(HepMatrix *A,
const HepMatrix &
b);
456 void qr_decomp(HepMatrix *A, HepMatrix *hsm);
466 void col_house(HepMatrix *
a,
const HepMatrix &
v,
double vnormsq,
467 int row,
int col,
int row_start,
int col_start);
468 void col_house(HepMatrix *
a,
const HepMatrix &
v,
int row,
int col,
469 int row_start,
int col_start);
472 void col_givens(HepMatrix *A,
double c,
double s,
473 int k1,
int k2,
int row_min=1,
int row_max=0);
476 void row_givens(HepMatrix *A,
double c,
double s,
477 int k1,
int k2,
int col_min=1,
int col_max=0);
480 void givens(
double a,
double b,
double *c,
double *s);
483 HepVector
house(
const HepMatrix &
a,
int row=1,
int col=1);
490 void row_house(HepMatrix *
a,
const HepVector &
v,
double vnormsq,
491 int row=1,
int col=1);
492 void row_house(HepMatrix *
a,
const HepMatrix &
v,
double vnormsq,
493 int row,
int col,
int row_start,
int col_start);
494 void row_house(HepMatrix *
a,
const HepMatrix &
v,
int row,
int col,
495 int row_start,
int col_start);
500 #ifdef ENABLE_BACKWARDS_COMPATIBILITY
502 using namespace CLHEP;
505 #ifndef HEP_DEBUG_INLINE
506 #include "CLHEP/Matrix/Matrix.icc"
void row_givens(HepMatrix *A, double c, double s, int k1, int k2, int col_min=1, int col_max=0)
HepVector house(const HepMatrix &a, int row=1, int col=1)
HepMatrix inverse() const
void house_with_update(HepMatrix *a, int row=1, int col=1)
HepVector solve(const HepMatrix &, const HepVector &)
friend void col_house(HepMatrix *, const HepMatrix &, double, int, int, int, int)
friend HepMatrix operator*(const HepMatrix &hm1, const HepMatrix &hm2)
friend void row_givens(HepMatrix *A, double c, double s, int k1, int k2, int colmin, int colmax)
friend class HepMatrix_row_const
friend void house_with_update2(HepSymMatrix *a, HepMatrix *v, int row, int col)
HepMatrix qr_inverse(const HepMatrix &A)
void back_solve(const HepMatrix &R, HepVector *b)
virtual int num_row() const
friend void row_house(HepMatrix *, const HepMatrix &, double, int, int, int, int)
friend HepMatrix operator+(const HepMatrix &hm1, const HepMatrix &hm2)
friend HepVector house(const HepMatrix &a, int row, int col)
friend void col_givens(HepMatrix *A, double c, double s, int k1, int k2, int rowmin, int rowmax)
HepMatrix operator-() const
HepMatrix_row operator[](int)
HepMatrix_row_const(const HepMatrix &, int)
friend void house_with_update(HepMatrix *a, int row, int col)
friend class HepMatrix_row
HepVector qr_solve(const HepMatrix &A, const HepVector &b)
HepMatrix & operator=(const HepMatrix &)
friend class HepSymMatrix
double determinant() const
friend void back_solve(const HepMatrix &R, HepVector *b)
friend void tridiagonal(HepSymMatrix *a, HepMatrix *hsm)
HepMatrix & operator+=(const HepMatrix &)
void qr_decomp(HepMatrix *A, HepMatrix *hsm)
HepLorentzVector operator/(const HepLorentzVector &, double a)
HepMatrix apply(double(*f)(double, int, int)) const
Hep3Vector operator-(const Hep3Vector &, const Hep3Vector &)
they are gone ZOOM Features Discontinued The following features of the ZOOM package were felt to be extreme overkill These have been after checking that no existing user code was utilizing as in SpaceVector v
HepMatrix sub(int min_row, int max_row, int min_col, int max_col) const
virtual void invertHaywood6(int &ierr)
HepMatrix_row(HepMatrix &, int)
void row_house(HepMatrix *a, const HepVector &v, double vnormsq, int row=1, int col=1)
const double & operator[](int) const
friend HepVector solve(const HepMatrix &, const HepVector &)
virtual void invertHaywood4(int &ierr)
HepMatrix & operator-=(const HepMatrix &)
virtual void invertHaywood5(int &ierr)
friend HepVector qr_solve(HepMatrix *, const HepVector &)
virtual const double & operator()(int row, int col) const
void col_house(HepMatrix *a, const HepMatrix &v, double vnormsq, int row, int col, int row_start, int col_start)
Hep3Vector operator+(const Hep3Vector &, const Hep3Vector &)
HepMatrix & operator*=(double t)
friend void swap(HepMatrix &hm1, HepMatrix &hm2)
Application of Rotations and LorentzTransformations to containers of and as in Rotation R
std::ostream & operator<<(std::ostream &os, const HepAxisAngle &aa)
void givens(double a, double b, double *c, double *s)
friend class HepDiagMatrix
void col_givens(HepMatrix *A, double c, double s, int k1, int k2, int row_min=1, int row_max=0)
HepLorentzRotation operator*(const HepRotation &r, const HepLorentzRotation <)
HepDiagMatrix dsum(const HepDiagMatrix &s1, const HepDiagMatrix &s2)
virtual int num_col() const
HepMatrix & operator/=(double t)
virtual int num_size() const