Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
MatrixFunctions.h File Reference

Classes

class  ROOT::Math::MatrixMulOp< MatrixA, MatrixB, T, D >
 Class for Matrix-Matrix multiplication. More...
struct  ROOT::Math::meta_col_dot< I >
struct  ROOT::Math::meta_col_dot< 0 >
struct  ROOT::Math::meta_matrix_dot< I >
struct  ROOT::Math::meta_matrix_dot< 0 >
struct  ROOT::Math::meta_row_dot< I >
struct  ROOT::Math::meta_row_dot< 0 >
class  ROOT::Math::TensorMulOp< Vector1, Vector2 >
 Class for Tensor Multiplication (outer product) of two vectors giving a matrix. More...
class  ROOT::Math::TransposeOp< Matrix, T, D1, D2 >
 Class for Transpose Operations. More...
class  ROOT::Math::VectorMatrixColOp< Vector, Matrix, D1 >
 Class for Vector-Matrix multiplication. More...
class  ROOT::Math::VectorMatrixRowOp< Matrix, Vector, D2 >

Namespaces

namespace  ROOT
namespace  ROOT::Math

Functions

template<class A, class B, class T, unsigned int D1, unsigned int D, unsigned int D2, class R1, class R2>
Expr< MatrixMulOp< Expr< A, T, D1, D, R1 >, Expr< B, T, D, D2, R2 >, T, D >, T, D1, D2, typename MultPolicy< T, R1, R2 >::RepType > ROOT::Math::operator* (const Expr< A, T, D1, D, R1 > &lhs, const Expr< B, T, D, D2, R2 > &rhs)
template<class A, class T, unsigned int D1, unsigned int D, unsigned int D2, class R1, class R2>
Expr< MatrixMulOp< Expr< A, T, D1, D, R1 >, SMatrix< T, D, D2, R2 >, T, D >, T, D1, D2, typename MultPolicy< T, R1, R2 >::RepType > ROOT::Math::operator* (const Expr< A, T, D1, D, R1 > &lhs, const SMatrix< T, D, D2, R2 > &rhs)
template<class A, class T, unsigned int D1, unsigned int D2, class R>
VecExpr< VectorMatrixRowOp< Expr< A, T, D1, D2, R >, SVector< T, D2 >, D2 >, T, D1 > ROOT::Math::operator* (const Expr< A, T, D1, D2, R > &lhs, const SVector< T, D2 > &rhs)
template<class A, class B, class T, unsigned int D1, unsigned int D2, class R>
VecExpr< VectorMatrixRowOp< Expr< A, T, D1, D2, R >, VecExpr< B, T, D2 >, D2 >, T, D1 > ROOT::Math::operator* (const Expr< A, T, D1, D2, R > &lhs, const VecExpr< B, T, D2 > &rhs)
template<class A, class T, unsigned int D1, unsigned int D, unsigned int D2, class R1, class R2>
Expr< MatrixMulOp< SMatrix< T, D1, D, R1 >, Expr< A, T, D, D2, R2 >, T, D >, T, D1, D2, typename MultPolicy< T, R1, R2 >::RepType > ROOT::Math::operator* (const SMatrix< T, D1, D, R1 > &lhs, const Expr< A, T, D, D2, R2 > &rhs)
template<class T, unsigned int D1, unsigned int D, unsigned int D2, class R1, class R2>
Expr< MatrixMulOp< SMatrix< T, D1, D, R1 >, SMatrix< T, D, D2, R2 >, T, D >, T, D1, D2, typename MultPolicy< T, R1, R2 >::RepType > ROOT::Math::operator* (const SMatrix< T, D1, D, R1 > &lhs, const SMatrix< T, D, D2, R2 > &rhs)
 Matrix * Matrix multiplication , \( C(i,j) = \sum_{k} A(i,k) * B(k,j)\) returning a matrix expression.
template<class T, unsigned int D1, unsigned int D2, class R>
VecExpr< VectorMatrixRowOp< SMatrix< T, D1, D2, R >, SVector< T, D2 >, D2 >, T, D1 > ROOT::Math::operator* (const SMatrix< T, D1, D2, R > &lhs, const SVector< T, D2 > &rhs)
 Matrix * Vector multiplication \( a(i) = \sum_{j} M(i,j) * b(j) \) returning a vector expression.
template<class A, class T, unsigned int D1, unsigned int D2, class R>
VecExpr< VectorMatrixRowOp< SMatrix< T, D1, D2, R >, VecExpr< A, T, D2 >, D2 >, T, D1 > ROOT::Math::operator* (const SMatrix< T, D1, D2, R > &lhs, const VecExpr< A, T, D2 > &rhs)
template<class A, class T, unsigned int D1, unsigned int D2, class R>
VecExpr< VectorMatrixColOp< SVector< T, D1 >, Expr< A, T, D1, D2, R >, D1 >, T, D2 > ROOT::Math::operator* (const SVector< T, D1 > &lhs, const Expr< A, T, D1, D2, R > &rhs)
template<class T, unsigned int D1, unsigned int D2, class R>
VecExpr< VectorMatrixColOp< SVector< T, D1 >, SMatrix< T, D1, D2, R >, D1 >, T, D2 > ROOT::Math::operator* (const SVector< T, D1 > &lhs, const SMatrix< T, D1, D2, R > &rhs)
template<class A, class B, class T, unsigned int D1, unsigned int D2, class R>
VecExpr< VectorMatrixColOp< VecExpr< A, T, D1 >, Expr< B, T, D1, D2, R >, D1 >, T, D2 > ROOT::Math::operator* (const VecExpr< A, T, D1 > &lhs, const Expr< B, T, D1, D2, R > &rhs)
template<class A, class T, unsigned int D1, unsigned int D2, class R>
VecExpr< VectorMatrixColOp< VecExpr< A, T, D1 >, SMatrix< T, D1, D2, R >, D1 >, T, D2 > ROOT::Math::operator* (const VecExpr< A, T, D1 > &lhs, const SMatrix< T, D1, D2, R > &rhs)
template<class A, class T, unsigned int D, class R>
ROOT::Math::Similarity (const Expr< A, T, D, D, R > &lhs, const SVector< T, D > &rhs)
template<class A, class B, class T, unsigned int D, class R>
ROOT::Math::Similarity (const Expr< A, T, D, D, R > &lhs, const VecExpr< B, T, D > &rhs)
template<class A, class T, unsigned int D1, unsigned int D2, class R>
SMatrix< T, D1, D1, MatRepSym< T, D1 > > ROOT::Math::Similarity (const Expr< A, T, D1, D2, R > &lhs, const SMatrix< T, D2, D2, MatRepSym< T, D2 > > &rhs)
template<class T, unsigned int D, class R>
ROOT::Math::Similarity (const SMatrix< T, D, D, R > &lhs, const SVector< T, D > &rhs)
 Similarity Vector - Matrix Product: v^T * A * v returning a scalar value of type T \( s = \sum_{i,j} v(i) * A(i,j) * v(j)\).
template<class A, class T, unsigned int D, class R>
ROOT::Math::Similarity (const SMatrix< T, D, D, R > &lhs, const VecExpr< A, T, D > &rhs)
template<class T, unsigned int D1, unsigned int D2, class R>
SMatrix< T, D1, D1, MatRepSym< T, D1 > > ROOT::Math::Similarity (const SMatrix< T, D1, D2, R > &lhs, const SMatrix< T, D2, D2, MatRepSym< T, D2 > > &rhs)
 Similarity Matrix Product : B = U * A * U^T for A symmetric returning a symmetric matrix expression: \( B(i,j) = \sum_{k,l} U(i,k) * A(k,l) * U(j,l) \).
template<class A, class T, unsigned int D, class R>
ROOT::Math::Similarity (const SVector< T, D > &lhs, const Expr< A, T, D, D, R > &rhs)
template<class T, unsigned int D, class R>
ROOT::Math::Similarity (const SVector< T, D > &lhs, const SMatrix< T, D, D, R > &rhs)
template<class A, class B, class T, unsigned int D, class R>
ROOT::Math::Similarity (const VecExpr< A, T, D > &lhs, const Expr< B, T, D, D, R > &rhs)
template<class A, class T, unsigned int D, class R>
ROOT::Math::Similarity (const VecExpr< A, T, D > &lhs, const SMatrix< T, D, D, R > &rhs)
template<class A, class T, unsigned int D1, unsigned int D2, class R>
SMatrix< T, D2, D2, MatRepSym< T, D2 > > ROOT::Math::SimilarityT (const Expr< A, T, D1, D2, R > &lhs, const SMatrix< T, D1, D1, MatRepSym< T, D1 > > &rhs)
template<class T, unsigned int D1, unsigned int D2, class R>
SMatrix< T, D2, D2, MatRepSym< T, D2 > > ROOT::Math::SimilarityT (const SMatrix< T, D1, D2, R > &lhs, const SMatrix< T, D1, D1, MatRepSym< T, D1 > > &rhs)
 Transpose Similarity Matrix Product : B = U^T * A * U for A symmetric returning a symmetric matrix expression: \( B(i,j) = \sum_{k,l} U(k,i) * A(k,l) * U(l,j) \).
template<class T, unsigned int D>
SVector< T, D > ROOT::Math::SolveChol (const SMatrix< T, D, D, MatRepSym< T, D > > &mat, const SVector< T, D > &vec, int &ifail)
 same function as before but not overwriting the matrix and returning a copy of the vector (this is the slow version)
template<class T, unsigned int D>
bool ROOT::Math::SolveChol (SMatrix< T, D, D, MatRepSym< T, D > > &mat, SVector< T, D > &vec)
template<class T, unsigned int D1, unsigned int D2>
Expr< TensorMulOp< SVector< T, D1 >, SVector< T, D2 > >, T, D1, D2 > ROOT::Math::TensorProd (const SVector< T, D1 > &lhs, const SVector< T, D2 > &rhs)
 Tensor Vector Product : M(i,j) = v(i) * v(j) returning a matrix expression.
template<class T, unsigned int D1, unsigned int D2, class A>
Expr< TensorMulOp< SVector< T, D1 >, VecExpr< A, T, D2 > >, T, D1, D2 > ROOT::Math::TensorProd (const SVector< T, D1 > &lhs, const VecExpr< A, T, D2 > &rhs)
template<class T, unsigned int D1, unsigned int D2, class A>
Expr< TensorMulOp< VecExpr< A, T, D1 >, SVector< T, D2 > >, T, D1, D2 > ROOT::Math::TensorProd (const VecExpr< A, T, D1 > &lhs, const SVector< T, D2 > &rhs)
template<class T, unsigned int D1, unsigned int D2, class A, class B>
Expr< TensorMulOp< VecExpr< A, T, D1 >, VecExpr< B, T, D2 > >, T, D1, D2 > ROOT::Math::TensorProd (const VecExpr< A, T, D1 > &lhs, const VecExpr< B, T, D2 > &rhs)
template<class A, class T, unsigned int D1, unsigned int D2, class R>
Expr< TransposeOp< Expr< A, T, D1, D2, R >, T, D1, D2 >, T, D2, D1, typename TranspPolicy< T, D1, D2, R >::RepType > ROOT::Math::Transpose (const Expr< A, T, D1, D2, R > &rhs)
template<class T, unsigned int D1, unsigned int D2, class R>
Expr< TransposeOp< SMatrix< T, D1, D2, R >, T, D1, D2 >, T, D2, D1, typename TranspPolicy< T, D1, D2, R >::RepType > ROOT::Math::Transpose (const SMatrix< T, D1, D2, R > &rhs)
 Matrix Transpose B(i,j) = A(j,i) returning a matrix expression.