Vector Functions

These functions apply to SVector types (and also to Vector expressions) and can return a vector expression or a scalar, like in the Dot product, or a matrix, like in the Tensor product. More...

Functions

template<class T, unsigned int D>
VecExpr< BinaryOp< AddOp<
T >, SVector< T, D >, SVector<
T, D >, T >, T, D > 
ROOT::Math::operator+ (const SVector< T, D > &lhs, const SVector< T, D > &rhs)
 Addition of two vectors v3 = v1+v2 returning a vector expression.
template<class A, class T, unsigned int D>
VecExpr< BinaryOpCopyR< AddOp<
T >, SVector< T, D >, Constant<
A >, T >, T, D > 
ROOT::Math::operator+ (const SVector< T, D > &lhs, const A &rhs)
 Addition of a scalar to a each vector element: v2(i) = v1(i) + a returning a vector expression.
template<class A, class T, unsigned int D>
VecExpr< BinaryOpCopyL< AddOp<
T >, Constant< A >, SVector<
T, D >, T >, T, D > 
ROOT::Math::operator+ (const A &lhs, const SVector< T, D > &rhs)
 Addition of a scalar to each vector element v2(i) = a + v1(i) returning a vector expression.
template<class T, unsigned int D>
VecExpr< BinaryOp< MinOp<
T >, SVector< T, D >, SVector<
T, D >, T >, T, D > 
ROOT::Math::operator- (const SVector< T, D > &lhs, const SVector< T, D > &rhs)
 Vector Subtraction: v3 = v1 - v2 returning a vector expression.
template<class A, class T, unsigned int D>
VecExpr< BinaryOpCopyR< MinOp<
T >, SVector< T, D >, Constant<
A >, T >, T, D > 
ROOT::Math::operator- (const SVector< T, D > &lhs, const A &rhs)
 Subtraction of a scalar from each vector element: v2(i) = v1(i) - a returning a vector expression.
template<class A, class T, unsigned int D>
VecExpr< BinaryOpCopyL< MinOp<
T >, Constant< A >, SVector<
T, D >, T >, T, D > 
ROOT::Math::operator- (const A &lhs, const SVector< T, D > &rhs)
 Subtraction scalar vector (for each vector element) v2(i) = a - v1(i) returning a vector expression.
template<class T, unsigned int D>
VecExpr< BinaryOp< MulOp<
T >, SVector< T, D >, SVector<
T, D >, T >, T, D > 
ROOT::Math::operator * (const SVector< T, D > &lhs, const SVector< T, D > &rhs)
 Element by element vector product v3(i) = v1(i)*v2(i) returning a vector expression.
template<class T, unsigned int D>
VecExpr< BinaryOp< DivOp<
T >, SVector< T, D >, SVector<
T, D >, T >, T, D > 
ROOT::Math::operator/ (const SVector< T, D > &lhs, const SVector< T, D > &rhs)
 Element by element division of vectors of the same dimension: v3(i) = v1(i)/v2(i) returning a vector expression.
template<class A, class T, unsigned int D>
VecExpr< BinaryOpCopyR< DivOp<
T >, SVector< T, D >, Constant<
A >, T >, T, D > 
ROOT::Math::operator/ (const SVector< T, D > &lhs, const A &rhs)
 Division of the vector element by a scalar value: v2(i) = v1(i)/a returning a vector expression.
template<class A, class T, unsigned int D>
VecExpr< BinaryOpCopyL< DivOp<
T >, Constant< A >, SVector<
T, D >, T >, T, D > 
ROOT::Math::operator/ (const A &lhs, const SVector< T, D > &rhs)
 Division of a scalar value by the vector element: v2(i) = a/v1(i) returning a vector expression.
template<class T, unsigned int D>
ROOT::Math::Dot (const SVector< T, D > &lhs, const SVector< T, D > &rhs)
 Vector dot product.
template<class T, unsigned int D>
ROOT::Math::Mag2 (const SVector< T, D > &rhs)
 Vector magnitude square Template to compute $|\vec{v}|^2 = \sum_iv_i^2 $.
template<class T, unsigned int D>
ROOT::Math::Mag (const SVector< T, D > &rhs)
 Vector magnitude (Euclidian norm) Compute : $ |\vec{v}| = \sqrt{\sum_iv_i^2} $.
template<class T>
ROOT::Math::Lmag2 (const SVector< T, 4 > &rhs)
 Lmag2: Square of Minkowski Lorentz-Vector norm (only for 4D Vectors) Template to compute $ |\vec{v}|^2 = v_0^2 - v_1^2 - v_2^2 -v_3^2 $.
template<class T>
ROOT::Math::Lmag (const SVector< T, 4 > &rhs)
 Lmag: Minkowski Lorentz-Vector norm (only for 4-dim vectors) Length of a vector Lorentz-Vector: $ |\vec{v}| = \sqrt{v_0^2 - v_1^2 - v_2^2 -v_3^2} $.
template<class T>
SVector< T, 3 > ROOT::Math::Cross (const SVector< T, 3 > &lhs, const SVector< T, 3 > &rhs)
 Vector Cross Product (only for 3-dim vectors) $ \vec{c} = \vec{a}\times\vec{b} $.
template<class T, unsigned int D>
SVector< T, D > ROOT::Math::Unit (const SVector< T, D > &rhs)
 Unit.
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 D>
VecExpr< UnaryOp< Minus< T >,
SVector< T, D >, T >, T,
D > 
ROOT::Math::operator- (const SVector< T, D > &rhs)
 Unary - operator v2 = -v1 .
template<class T, unsigned int D>
VecExpr< UnaryOp< Fabs< T >,
SVector< T, D >, T >, T,
D > 
ROOT::Math::fabs (const SVector< T, D > &rhs)
 abs of a vector : v2(i) = | v1(i) | returning a vector expression
template<class T, unsigned int D>
VecExpr< UnaryOp< Sqr< T >,
SVector< T, D >, T >, T,
D > 
ROOT::Math::sqr (const SVector< T, D > &rhs)
 square of a vector v2(i) = v1(i)*v1(i) .
template<class T, unsigned int D>
VecExpr< UnaryOp< Sqrt< T >,
SVector< T, D >, T >, T,
D > 
ROOT::Math::sqrt (const SVector< T, D > &rhs)
 square root of a vector (element by element) v2(i) = sqrt( v1(i) ) returning a vector expression

Detailed Description

These functions apply to SVector types (and also to Vector expressions) and can return a vector expression or a scalar, like in the Dot product, or a matrix, like in the Tensor product.


Function Documentation

template<class T>
SVector<T,3> ROOT::Math::Cross const SVector< T, 3 > &  lhs,
const SVector< T, 3 > &  rhs
[inline]
 

Vector Cross Product (only for 3-dim vectors) $ \vec{c} = \vec{a}\times\vec{b} $.

Author:
T. Glebe

Definition at line 322 of file Functions.h.

References ROOT::Math::SVector< T, D >::apply().

template<class T, unsigned int D>
T ROOT::Math::Dot const SVector< T, D > &  lhs,
const SVector< T, D > &  rhs
[inline]
 

Vector dot product.

Template to compute $\vec{a}\cdot\vec{b} = \sum_i a_i\cdot b_i $.

Author:
T. Glebe

Definition at line 164 of file Functions.h.

Referenced by ROOT::Math::Similarity().

template<class T, unsigned int D>
VecExpr<UnaryOp<Fabs<T>, SVector<T,D>, T>, T, D> ROOT::Math::fabs const SVector< T, D > &  rhs  )  [inline]
 

abs of a vector : v2(i) = | v1(i) | returning a vector expression

Definition at line 147 of file UnaryOperators.h.

template<class T>
T ROOT::Math::Lmag const SVector< T, 4 > &  rhs  )  [inline]
 

Lmag: Minkowski Lorentz-Vector norm (only for 4-dim vectors) Length of a vector Lorentz-Vector: $ |\vec{v}| = \sqrt{v_0^2 - v_1^2 - v_2^2 -v_3^2} $.

Author:
T. Glebe

Definition at line 299 of file Functions.h.

References ROOT::Math::Lmag2(), and ROOT::Math::sqrt().

template<class T>
T ROOT::Math::Lmag2 const SVector< T, 4 > &  rhs  )  [inline]
 

Lmag2: Square of Minkowski Lorentz-Vector norm (only for 4D Vectors) Template to compute $ |\vec{v}|^2 = v_0^2 - v_1^2 - v_2^2 -v_3^2 $.

Author:
T. Glebe

Definition at line 275 of file Functions.h.

References ROOT::Math::Square().

Referenced by ROOT::Math::Lmag().

template<class T, unsigned int D>
T ROOT::Math::Mag const SVector< T, D > &  rhs  )  [inline]
 

Vector magnitude (Euclidian norm) Compute : $ |\vec{v}| = \sqrt{\sum_iv_i^2} $.

Author:
T. Glebe

Definition at line 252 of file Functions.h.

References ROOT::Math::Mag2(), and ROOT::Math::sqrt().

Referenced by ROOT::Math::SVector< T, D >::Unit().

template<class T, unsigned int D>
T ROOT::Math::Mag2 const SVector< T, D > &  rhs  )  [inline]
 

Vector magnitude square Template to compute $|\vec{v}|^2 = \sum_iv_i^2 $.

Author:
T. Glebe

Definition at line 229 of file Functions.h.

Referenced by ROOT::Math::Mag().

template<class T, unsigned int D>
VecExpr<BinaryOp<MulOp<T>, SVector<T,D>, SVector<T,D>, T>, T, D> ROOT::Math::operator * const SVector< T, D > &  lhs,
const SVector< T, D > &  rhs
[inline]
 

Element by element vector product v3(i) = v1(i)*v2(i) returning a vector expression.

Note this is NOT the Dot, Cross or Tensor product.

Definition at line 549 of file BinaryOperators.h.

template<class A, class T, unsigned int D>
VecExpr<BinaryOpCopyL<AddOp<T>, Constant<A>, SVector<T,D>, T>, T, D> ROOT::Math::operator+ const A &  lhs,
const SVector< T, D > &  rhs
[inline]
 

Addition of a scalar to each vector element v2(i) = a + v1(i) returning a vector expression.

Definition at line 134 of file BinaryOperators.h.

template<class A, class T, unsigned int D>
VecExpr<BinaryOpCopyR<AddOp<T>, SVector<T,D>, Constant<A>, T>, T, D> ROOT::Math::operator+ const SVector< T, D > &  lhs,
const A &  rhs
[inline]
 

Addition of a scalar to a each vector element: v2(i) = v1(i) + a returning a vector expression.

Definition at line 117 of file BinaryOperators.h.

template<class T, unsigned int D>
VecExpr<BinaryOp<AddOp<T>, SVector<T,D>, SVector<T,D>, T>, T, D> ROOT::Math::operator+ const SVector< T, D > &  lhs,
const SVector< T, D > &  rhs
[inline]
 

Addition of two vectors v3 = v1+v2 returning a vector expression.

Definition at line 63 of file BinaryOperators.h.

template<class T, unsigned int D>
VecExpr<UnaryOp<Minus<T>, SVector<T,D>, T>, T, D> ROOT::Math::operator- const SVector< T, D > &  rhs  )  [inline]
 

Unary - operator v2 = -v1 .

returning a vector expression

Definition at line 72 of file UnaryOperators.h.

template<class A, class T, unsigned int D>
VecExpr<BinaryOpCopyL<MinOp<T>, Constant<A>, SVector<T,D>, T>, T, D> ROOT::Math::operator- const A &  lhs,
const SVector< T, D > &  rhs
[inline]
 

Subtraction scalar vector (for each vector element) v2(i) = a - v1(i) returning a vector expression.

Definition at line 378 of file BinaryOperators.h.

template<class A, class T, unsigned int D>
VecExpr<BinaryOpCopyR<MinOp<T>, SVector<T,D>, Constant<A>, T>, T, D> ROOT::Math::operator- const SVector< T, D > &  lhs,
const A &  rhs
[inline]
 

Subtraction of a scalar from each vector element: v2(i) = v1(i) - a returning a vector expression.

Definition at line 361 of file BinaryOperators.h.

template<class T, unsigned int D>
VecExpr<BinaryOp<MinOp<T>, SVector<T,D>, SVector<T,D>, T>, T, D> ROOT::Math::operator- const SVector< T, D > &  lhs,
const SVector< T, D > &  rhs
[inline]
 

Vector Subtraction: v3 = v1 - v2 returning a vector expression.

Definition at line 307 of file BinaryOperators.h.

template<class A, class T, unsigned int D>
VecExpr<BinaryOpCopyL<DivOp<T>, Constant<A>, SVector<T,D>, T>, T, D> ROOT::Math::operator/ const A &  lhs,
const SVector< T, D > &  rhs
[inline]
 

Division of a scalar value by the vector element: v2(i) = a/v1(i) returning a vector expression.

Definition at line 855 of file BinaryOperators.h.

template<class A, class T, unsigned int D>
VecExpr<BinaryOpCopyR<DivOp<T>, SVector<T,D>, Constant<A>, T>, T, D> ROOT::Math::operator/ const SVector< T, D > &  lhs,
const A &  rhs
[inline]
 

Division of the vector element by a scalar value: v2(i) = v1(i)/a returning a vector expression.

Definition at line 838 of file BinaryOperators.h.

template<class T, unsigned int D>
VecExpr<BinaryOp<DivOp<T>, SVector<T,D>, SVector<T,D>, T>, T, D> ROOT::Math::operator/ const SVector< T, D > &  lhs,
const SVector< T, D > &  rhs
[inline]
 

Element by element division of vectors of the same dimension: v3(i) = v1(i)/v2(i) returning a vector expression.

Definition at line 785 of file BinaryOperators.h.

template<class T, unsigned int D>
VecExpr<UnaryOp<Sqr<T>, SVector<T,D>, T>, T, D> ROOT::Math::sqr const SVector< T, D > &  rhs  )  [inline]
 

square of a vector v2(i) = v1(i)*v1(i) .

returning a vector expression

Definition at line 222 of file UnaryOperators.h.

template<class T, unsigned int D>
VecExpr<UnaryOp<Sqrt<T>, SVector<T,D>, T>, T, D> ROOT::Math::sqrt const SVector< T, D > &  rhs  )  [inline]
 

square root of a vector (element by element) v2(i) = sqrt( v1(i) ) returning a vector expression

Definition at line 297 of file UnaryOperators.h.

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
[inline]
 

Tensor Vector Product : M(i,j) = v(i) * v(j) returning a matrix expression.

Definition at line 861 of file MatrixFunctions.h.

template<class T, unsigned int D>
SVector<T,D> ROOT::Math::Unit const SVector< T, D > &  rhs  )  [inline]
 

Unit.

Return a vector of unit lenght: $ \vec{e}_v = \vec{v}/|\vec{v}| $.

Author:
T. Glebe

Definition at line 381 of file Functions.h.

Referenced by ROOT::Math::Unit().


Generated on Fri Jun 29 11:35:50 2007 for SMatrix by  doxygen 1.4.6