10#ifndef ROOT_Minuit2_LaSum
11#define ROOT_Minuit2_LaSum
21#define OP_ADD1(MT, MAT1, T) \
22 inline ABObj<MT, MAT1, T> operator-(const ABObj<MT, MAT1, T> &m) \
24 return ABObj<MT, MAT1, T>(m.Obj(), T(-1.) * m.f()); \
27 inline ABObj<MT, ABSum<ABObj<MT, MAT1, T>, ABObj<MT, MAT1, T>>, T> operator+(const ABObj<MT, MAT1, T> &a, \
28 const ABObj<MT, MAT1, T> &b) \
30 return ABObj<MT, ABSum<ABObj<MT, MAT1, T>, ABObj<MT, MAT1, T>>, T>( \
31 ABSum<ABObj<MT, MAT1, T>, ABObj<MT, MAT1, T>>(a, b)); \
33 inline ABObj<MT, ABSum<ABObj<MT, MAT1, T>, ABObj<MT, MAT1, T>>, T> operator-(const ABObj<MT, MAT1, T> &a, \
34 const ABObj<MT, MAT1, T> &b) \
36 return ABObj<MT, ABSum<ABObj<MT, MAT1, T>, ABObj<MT, MAT1, T>>, T>( \
37 ABSum<ABObj<MT, MAT1, T>, ABObj<MT, MAT1, T>>(a, ABObj<MT, MAT1, T>(b.Obj(), T(-1.) * b.f()))); \
41OP_ADD1(sym, LASymMatrix,
double)
43#define OP_SCALE(MT, MAT1, T) \
44 inline ABObj<MT, MAT1, T> operator*(T f, const MAT1 &obj) { return ABObj<MT, MAT1, T>(obj, f); }
49#define OP_SCALE1(MT, MAT1, T) \
50 inline ABObj<MT, MAT1, T> operator/(const MAT1 &obj, T f) { return ABObj<MT, MAT1, T>(obj, 1. / f); }
55#define OP_MIN(MT, MAT1, T) \
56 inline ABObj<MT, MAT1, T> operator-(const MAT1 &obj) { return ABObj<MT, MAT1, T>(obj, T(-1.)); }
58OP_MIN(sym, LASymMatrix,
double)
59OP_MIN(vec, LAVector,
double)
#define OP_MIN(MT, MAT1, T)
#define OP_ADD1(MT, MAT1, T)
#define OP_SCALE1(MT, MAT1, T)
#define OP_SCALE(MT, MAT1, T)
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...