4#ifndef ROOT_Math_UnaryOperators
5#define ROOT_Math_UnaryOperators
31template <
class T,
unsigned int D>
class SVector;
32template <
class T,
unsigned int D1,
unsigned int D2,
class R>
class SMatrix;
46 static inline T
apply(
const T& rhs) {
54template <
class A,
class T,
unsigned int D>
55inline VecExpr<UnaryOp<Minus<T>, VecExpr<A,T,D>, T>, T, D>
72template <
class T,
unsigned int D>
73inline VecExpr<UnaryOp<Minus<T>, SVector<T,D>, T>, T, D>
83template <
class A,
class T,
unsigned int D,
unsigned int D2,
class R>
84inline Expr<UnaryOp<Minus<T>, Expr<A,T,D,D2,R>, T>, T, D, D2,
R>
101template <
class T,
unsigned int D,
unsigned int D2,
class R>
102inline Expr<UnaryOp<Minus<T>, SMatrix<T,D,D2,R>, T>, T, D, D2,
R>
121 static inline T
apply(
const T& rhs) {
122 return std::abs(rhs);
129template <
class A,
class T,
unsigned int D>
130inline VecExpr<UnaryOp<Fabs<T>, VecExpr<A,T,D>, T>, T, D>
147template <
class T,
unsigned int D>
148inline VecExpr<UnaryOp<Fabs<T>, SVector<T,D>, T>, T, D>
158template <
class A,
class T,
unsigned int D,
unsigned int D2,
class R>
159inline Expr<UnaryOp<Fabs<T>, Expr<A,T,D,D2,R>, T>, T, D, D2,
R>
176template <
class T,
unsigned int D,
unsigned int D2,
class R>
177inline Expr<UnaryOp<Fabs<T>, SMatrix<T,D,D2,R>, T>, T, D, D2,
R>
196 static inline T
apply(
const T& rhs) {
204template <
class A,
class T,
unsigned int D>
205inline VecExpr<UnaryOp<Sqr<T>, VecExpr<A,T,D>, T>, T, D>
222template <
class T,
unsigned int D>
223inline VecExpr<UnaryOp<Sqr<T>, SVector<T,D>, T>, T, D>
233template <
class A,
class T,
unsigned int D,
unsigned int D2,
class R>
234inline Expr<UnaryOp<Sqr<T>, Expr<A,T,D,D2,R>, T>, T, D, D2,
R>
251template <
class T,
unsigned int D,
unsigned int D2,
class R>
252inline Expr<UnaryOp<Sqr<T>, SMatrix<T,D,D2,R>, T>, T, D, D2,
R>
271 static inline T
apply(
const T& rhs) {
272 return std::sqrt(rhs);
279template <
class A,
class T,
unsigned int D>
280inline VecExpr<UnaryOp<Sqrt<T>, VecExpr<A,T,D>, T>, T, D>
297template <
class T,
unsigned int D>
298inline VecExpr<UnaryOp<Sqrt<T>, SVector<T,D>, T>, T, D>
308template <
class A,
class T,
unsigned int D,
unsigned int D2,
class R>
309inline Expr<UnaryOp<Sqrt<T>, Expr<A,T,D,D2,R>, T>, T, D, D2,
R>
325template <
class T,
unsigned int D,
unsigned int D2,
class R>
326inline Expr<UnaryOp<Sqrt<T>, SMatrix<T,D,D2,R>, T>, T, D, D2,
R>
Unary abs Operation Class.
static T apply(const T &rhs)
Unary Minus Operation Class.
static T apply(const T &rhs)
SMatrix: a generic fixed size D1 x D2 Matrix class.
SVector: a generic fixed size Vector class.
Unary Square Operation Class.
static T apply(const T &rhs)
Unary Square Root Operation Class.
static T apply(const T &rhs)
UnaryOperation class A class representing unary operators in the parse tree.
Expression wrapper class for Vector objects.
Namespace for new Math classes and functions.
VecExpr< UnaryOp< Sqr< T >, VecExpr< A, T, D >, T >, T, D > sqr(const VecExpr< A, T, D > &rhs)
DisplacementVector2D< CoordSystem1, U > operator-(DisplacementVector2D< CoordSystem1, U > v1, DisplacementVector2D< CoordSystem2, U > const &v2)
Difference between two DisplacementVector2D vectors.
VecExpr< UnaryOp< Sqrt< T >, VecExpr< A, T, D >, T >, T, D > sqrt(const VecExpr< A, T, D > &rhs)
VecExpr< UnaryOp< Fabs< T >, VecExpr< A, T, D >, T >, T, D > fabs(const VecExpr< A, T, D > &rhs)
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.