source: type: source code created: 20. Mar 2001 author: Thorsten Glebe HERA-B Collaboration Max-Planck-Institut fuer Kernphysik Saupfercheckweg 1 69117 Heidelberg Germany E-mail: T.Glebe@mpi-hd.mpg.de Description: A fixed size two dimensional Matrix class changes: 20 Mar 2001 (TG) creation 21 Mar 2001 (TG) added operators +=, -=, *=, /= 26 Mar 2001 (TG) place_in_row(), place_in_col() added 02 Apr 2001 (TG) non-const Array() added 03 Apr 2001 (TG) invert() added 07 Apr 2001 (TG) CTOR from SVertex (dyadic product) added 09 Apr 2001 (TG) CTOR from array added 11 Apr 2001 (TG) rows(), cols(), size() replaced by rows, cols, size 25 Mai 2001 (TG) row(), col() added 04 Sep 2001 (TG) moved inlined functions to .icc file 11 Jan 2002 (TG) added operator==(), operator!=() 14 Jan 2002 (TG) added more operator==(), operator!=(), operator>(), operator<() for platform specific configurations
~SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >() | |
double | apply(unsigned int i) const |
const double* | Array() const |
double* | Array() |
const double& | At(unsigned int i, unsigned int j) const |
double& | At(unsigned int i, unsigned int j) |
double* | begin() |
double* | begin() const |
ROOT::Math::SVector<double,5> | Col(unsigned int thecol) const |
bool | Det(double& det) |
bool | Det2(double& det) const |
ROOT::Math::SVector<double,5> | Diagonal() const |
double* | end() |
double* | end() const |
ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> > | Inverse(int& ifail) const |
bool | Invert() |
bool | IsInUse(const double* p) const |
ROOT::Math::SVector<double,15> | LowerBlock() const |
bool | operator!=(const double& rhs) const |
bool | operator!=(const ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >& rhs) const |
const double& | operator()(unsigned int i, unsigned int j) const |
double& | operator()(unsigned int i, unsigned int j) |
ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >& | operator*=(const double& rhs) |
ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >& | operator+=(const double& rhs) |
ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >& | operator-=(const double& rhs) |
ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >& | operator/=(const double& rhs) |
bool | operator<(const double& rhs) const |
ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >& | operator=(ROOT::Math::SMatrixIdentity) |
ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >& | operator=(const double& rhs) |
ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >& | operator=(const ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >&) |
bool | operator==(const double& rhs) const |
bool | operator>(const double& rhs) const |
ostream& | Print(ostream& os) const |
ROOT::Math::SVector<double,5> | Row(unsigned int therow) const |
ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> > | SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >() |
ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> > | SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >(ROOT::Math::SMatrixIdentity) |
ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> > | SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >(const ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >& rhs) |
ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> > | SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >(const double& rhs) |
ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> > | SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >(const ROOT::Math::SVector<double,15>& v, bool lower = true) |
ROOT::Math::SVector<double,15> | UpperBlock() const |
Assign from another compatible matrix. Possible Symmetirc to general but NOT vice-versa
@name --- Access functions --- access the parse tree with the index starting from zero and following the C convention for the order in accessing the matrix elements. Same convention for general and symmetric matrices.
@name --- STL-like interface --- The iterators access the matrix element in the order how they are stored in memory. The C (row-major) convention is used, and in the case of symmetric matrices the iterator spans only the lower diagonal block. For example for a symmetric 3x3 matrices the order of the 6 elements \f${a_0,...a_5}\f$ is: \f[ M = \left( \begin{array}{ccc} a_0 & a_1 & a_3 \\ a_1 & a_2 & a_4 \\ a_3 & a_4 & a_5 \end{array} \right) \f] STL iterator interface.
@name --- Operators --- element wise comparison element wise comparison
read only access to matrix element, with indices starting from 0 read/write access to matrix element with indices starting from 0
read only access to matrix element, with indices starting from 0. Fuction will check index values and it will assert if they are wrong read/write access to matrix element with indices starting from 0. Fuction will check index values and it will assert if they are wrong
@name --- Linear Algebra Functions --- Invert a square Matrix ( this method changes the current matrix). Return true if inversion is successfull. The method used for general square matrices is the LU factorization taken from Dinv routine from the CERNLIB (written in C++ from CLHEP authors) In case of symmetric matrices Bunch-Kaufman diagonal pivoting method is used (The implementation is the one written by the CLHEP authors)
determinant of square Matrix via Dfact. Return true when the calculation is successfull. \param det will contain the calculated determinant value \b Note: this will destroy the contents of the Matrix!
determinant of square Matrix via Dfact. Return true when the calculation is successfull. \param det will contain the calculated determinant value \b Note: this will preserve the content of the Matrix!
return a full Matrix row as a vector (copy the content in a new vector)
return a full Matrix column as a vector (copy the content in a new vector)
return diagonal elements of a matrix as a Vector. It works only for squared matrices D1 == D2, otherwise it will produce a compile error
@name --- Other Functions --- Function to check if a matrix is sharing same memory location of the passed pointer This function is used by the expression templates to avoid the alias problem during expression evaluation. When the matrix is in use, for example in operations like A = B * A, a temporary object storing the intermediate result is automatically created when evaluating the expression.