4 #ifndef ROOT_Math_SMatrix 5 #define ROOT_Math_SMatrix 93 template <
class T,
unsigned int D>
class SVector;
122 unsigned int D2 = D1,
175 template <
class A,
class R2>
192 template<
class InputIterator>
193 SMatrix(InputIterator begin, InputIterator end,
bool triang =
false,
bool lower =
true);
206 template<
class InputIterator>
207 SMatrix(InputIterator begin,
unsigned int size,
bool triang =
false,
bool lower =
true);
213 #ifndef UNSUPPORTED_TEMPLATE_EXPRESSION 216 template<
unsigned int N>
224 explicit SMatrix(
const T& rhs);
236 template <
class A,
class R2>
271 T apply(
unsigned int i)
const;
274 const T* Array()
const;
299 const_iterator begin()
const;
302 const_iterator end()
const;
317 template<
class InputIterator>
318 void SetElements(InputIterator begin, InputIterator end,
bool triang =
false,
bool lower =
true);
331 template<
class InputIterator>
332 void SetElements(InputIterator begin,
unsigned int size,
bool triang =
false,
bool lower =
true);
346 template <
class A,
class R2>
349 template <
class A,
class R2>
361 bool operator<(const SMatrix<T,D1,D2,R2>& rhs)
const;
363 template <
class A,
class R2>
366 template <
class A,
class R2>
367 bool operator<(const Expr<A,T,D1,D2,R2>& rhs)
const;
372 const T& operator()(
unsigned int i,
unsigned int j)
const;
376 T& operator()(
unsigned int i,
unsigned int j);
382 const T& At(
unsigned int i,
unsigned int j)
const;
387 T& At(
unsigned int i,
unsigned int j);
440 template <
class A,
class R2>
457 template <
class A,
class R2>
478 template <
class A,
class R2>
564 bool Det2(
T& det)
const;
570 template <
unsigned int D>
575 template <
class A,
unsigned int D>
580 template <
unsigned int D>
585 template <
class A,
unsigned int D>
590 template <
unsigned int D3,
unsigned int D4,
class R2>
595 template <
class A,
unsigned int D3,
unsigned int D4,
class R2>
615 template <
class SubVector>
616 SubVector SubRow(
unsigned int therow,
unsigned int col0 = 0 )
const;
623 template <
class SubVector>
624 SubVector SubCol(
unsigned int thecol,
unsigned int row0 = 0)
const;
631 template <
class SubMatrix >
632 SubMatrix Sub(
unsigned int row0,
unsigned int col0)
const;
645 template <
class Vector>
646 void SetDiagonal(
const Vector & v);
660 #ifndef UNSUPPORTED_TEMPLATE_EXPRESSION 661 SVector<
T, D1 * (D2 +1)/2> UpperBlock()
const;
663 template<
class SubVector>
664 SubVector UpperBlock()
const;
672 #ifndef UNSUPPORTED_TEMPLATE_EXPRESSION 673 SVector<
T, D1 * (D2 +1)/2> LowerBlock()
const;
675 template<
class SubVector>
676 SubVector LowerBlock()
const;
690 bool IsInUse(
const T* p)
const;
695 std::ostream&
Print(std::ostream& os)
const;
717 template <
class T,
unsigned int D1,
unsigned int D2,
class R>
718 inline std::ostream& operator<<(std::ostream& os, const ROOT::Math::SMatrix<T,D1,D2,R>& rhs) {
719 return rhs.Print(os);
int Invert(LASymMatrix &)
TMatrixT< Element > operator!=(const TMatrixT< Element > &source1, const TMatrixT< Element > &source2)
logical operation source1 != source2
Namespace for new ROOT classes and functions.
SMatrixRow_const operator[](unsigned int i) const
read only access to matrix element, with indices starting from 0 : m[i][j]
T * iterator
STL iterator interface.
SMatrix< T, D1, D2, R > * fMat
TMatrixT< Element > operator<(const TMatrixT< Element > &source1, const TMatrixT< Element > &source2)
logical operation source1 < source2
ABObj< sym, MatrixInverse< sym, ABObj< sym, LASymMatrix, double >, double >, double > Inverse(const ABObj< sym, LASymMatrix, double > &obj)
LAPACK Algebra functions specialize the Invert function for LASymMatrix.
const T * const_iterator
STL const_iterator interface.
SMatrix: a generic fixed size D1 x D2 Matrix class.
R rep_type
storage representation type
Expression wrapper class for Matrix objects.
Bool_t operator==(const TMatrixTBase< Element > &m1, const TMatrixTBase< Element > &m2)
Check to see if two matrices are identical.
R fRep
Matrix Storage Object containing matrix data.
SMatrixRow operator[](unsigned int i)
read/write access to matrix element with indices starting from 0 : m[i][j]
SMatrix(SMatrixNoInit)
construct from without initialization
SMatrixRow_const(const SMatrix< T, D1, D2, R > &rhs, unsigned int i)
T value_type
contained scalar type
SMatrixRow(SMatrix< T, D1, D2, R > &rhs, unsigned int i)
void Print(std::ostream &os, const OptionType &opt)
TMatrixT< Element > operator>(const TMatrixT< Element > &source1, const TMatrixT< Element > &source2)
logical operation source1 > source2
const SMatrix< T, D1, D2, R > * fMat
const T & operator[](int j) const
Namespace for new Math classes and functions.
Expression wrapper class for Vector objects.
constexpr Double_t R()
Universal gas constant ( ) in
SVector: a generic fixed size Vector class.