Logo ROOT   6.12/07
Reference Guide
Classes | Namespaces | Functions
MatrixFunctions.h File Reference
#include "Math/BinaryOpPolicy.h"
#include "Math/Expression.h"
#include "Math/HelperOps.h"
#include "Math/CholeskyDecomp.h"
Include dependency graph for MatrixFunctions.h:
This graph shows which files directly or indirectly include this file:

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::SVector< T, D >
 SVector: a generic fixed size Vector class. More...
 
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

 ROOT
 Namespace for new ROOT classes and functions.
 
 ROOT::Math
 

Functions

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. More...
 
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< 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 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 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 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 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 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. More...
 
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 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 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 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)\). More...
 
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 T , unsigned int D, class R >
ROOT::Math::Similarity (const SMatrix< T, D, D, R > &lhs, const VecExpr< A, T, D > &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 D, class R >
ROOT::Math::Similarity (const SVector< T, D > &lhs, const Expr< A, T, D, D, 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 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 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) \). More...
 
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 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) \). More...
 
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 D>
bool ROOT::Math::SolveChol (SMatrix< T, D, D, MatRepSym< T, D > > &mat, SVector< T, D > &vec)
 
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) More...
 
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. More...
 
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 >
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 , 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 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. More...
 
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)