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;
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;
382 const T& At(
unsigned int i,
unsigned int j)
const;
387 T& At(
unsigned int i,
unsigned int j);
419 SMatrixRow_const
operator[](
unsigned int i)
const {
return SMatrixRow_const(*
this, i); }
423 SMatrixRow
operator[](
unsigned int i) {
return SMatrixRow(*
this, i); }
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);
Bool_t operator<(const TDatime &d1, const TDatime &d2)
int Invert(LASymMatrix &)
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
TRObject operator()(const T1 &t1) const
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.
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.
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
const T & operator[](int j) const
Namespace for new Math classes and functions.
Binding & operator=(OUT(*fun)(void))
Expression wrapper class for Vector objects.
Bool_t operator==(const TDatime &d1, const TDatime &d2)
decltype(auto) constexpr apply(F &&f, Tuple &&t)
std::string & operator+=(std::string &left, const TString &right)
SVector: a generic fixed size Vector class.