4 #ifndef ROOT_Math_SMatrix 5 #define ROOT_Math_SMatrix 42 #ifndef ROOT_Math_MnConfig 86 #ifndef ROOT_Math_Expression 89 #ifndef ROOT_Math_MatrixRepresentationsStatic 99 template <
class T,
unsigned int D>
class SVector;
128 unsigned int D2 = D1,
181 template <
class A,
class R2>
198 template<
class InputIterator>
199 SMatrix(InputIterator begin, InputIterator end,
bool triang =
false,
bool lower =
true);
212 template<
class InputIterator>
213 SMatrix(InputIterator begin,
unsigned int size,
bool triang =
false,
bool lower =
true);
219 #ifndef UNSUPPORTED_TEMPLATE_EXPRESSION 222 template<
unsigned int N>
230 explicit SMatrix(
const T& rhs);
242 template <
class A,
class R2>
277 T apply(
unsigned int i)
const;
305 const_iterator begin()
const;
308 const_iterator end()
const;
323 template<
class InputIterator>
324 void SetElements(InputIterator begin, InputIterator end,
bool triang =
false,
bool lower =
true);
337 template<
class InputIterator>
338 void SetElements(InputIterator begin,
unsigned int size,
bool triang =
false,
bool lower =
true);
352 template <
class A,
class R2>
355 template <
class A,
class R2>
367 bool operator<(const SMatrix<T,D1,D2,R2>& rhs)
const;
369 template <
class A,
class R2>
372 template <
class A,
class R2>
373 bool operator<(const Expr<A,T,D1,D2,R2>& rhs)
const;
378 const T& operator()(
unsigned int i,
unsigned int j)
const;
382 T& operator()(
unsigned int i,
unsigned int j);
388 const T& At(
unsigned int i,
unsigned int j)
const;
393 T& At(
unsigned int i,
unsigned int j);
425 SMatrixRow_const
operator[](
unsigned int i)
const {
return SMatrixRow_const(*
this, i); }
429 SMatrixRow
operator[](
unsigned int i) {
return SMatrixRow(*
this, i); }
446 template <
class A,
class R2>
463 template <
class A,
class R2>
484 template <
class A,
class R2>
570 bool Det2(
T& det)
const;
576 template <
unsigned int D>
581 template <
class A,
unsigned int D>
586 template <
unsigned int D>
591 template <
class A,
unsigned int D>
596 template <
unsigned int D3,
unsigned int D4,
class R2>
601 template <
class A,
unsigned int D3,
unsigned int D4,
class R2>
621 template <
class SubVector>
622 SubVector SubRow(
unsigned int therow,
unsigned int col0 = 0 )
const;
629 template <
class SubVector>
630 SubVector SubCol(
unsigned int thecol,
unsigned int row0 = 0)
const;
637 template <
class SubMatrix >
638 SubMatrix Sub(
unsigned int row0,
unsigned int col0)
const;
651 template <
class Vector>
652 void SetDiagonal(
const Vector & v);
666 #ifndef UNSUPPORTED_TEMPLATE_EXPRESSION 667 SVector<
T, D1 * (D2 +1)/2> UpperBlock()
const;
669 template<
class SubVector>
670 SubVector UpperBlock()
const;
678 #ifndef UNSUPPORTED_TEMPLATE_EXPRESSION 679 SVector<
T, D1 * (D2 +1)/2> LowerBlock()
const;
681 template<
class SubVector>
682 SubVector LowerBlock()
const;
696 bool IsInUse(
const T* p)
const;
701 std::ostream&
Print(std::ostream& os)
const;
723 template <
class T,
unsigned int D1,
unsigned int D2,
class R>
724 inline std::ostream& operator<<(std::ostream& os, const ROOT::Math::SMatrix<T,D1,D2,R>& rhs) {
725 return rhs.Print(os);
740 #ifndef ROOT_Math_SMatrix_icc 744 #ifndef ROOT_Math_MatrixFunctions Bool_t operator<(const TDatime &d1, const TDatime &d2)
int Invert(LASymMatrix &)
This namespace contains pre-defined functions to be used in conjuction with TExecutor::Map and TExecu...
T * iterator
STL iterator interface.
SMatrix< T, D1, D2, R > * fMat
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.
const T & operator[](int j) const
Bool_t operator!=(const TDatime &d1, const TDatime &d2)
R rep_type
storage representation type
Expression wrapper class for Matrix objects.
R fRep
Matrix Storage Object containing matrix data.
SMatrixRow_const operator[](unsigned int i) const
read only access to matrix element, with indices starting from 0 : m[i][j]
Bool_t operator>(const TDatime &d1, const TDatime &d2)
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)
const SMatrix< T, D1, D2, R > * fMat
Namespace for new Math classes and functions.
Expression wrapper class for Vector objects.
Bool_t operator==(const TDatime &d1, const TDatime &d2)
decltype(auto) constexpr apply(F &&f, Tuple &&t)
SVector: a generic fixed size Vector class.