10 #ifndef ROOT_Minuit2_LaSum 11 #define ROOT_Minuit2_LaSum 22 #define OP_ADD1(MT,MAT1,T) \ 23 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, const ABObj<MT,MAT1,T>& b) { \ 28 return ABObj<MT,ABSum<ABObj<MT,MAT1,T>, ABObj<MT,MAT1,T> >,T>(ABSum<ABObj<MT,MAT1,T>, ABObj<MT,MAT1,T> >(a, b)); \ 30 inline ABObj<MT,ABSum<ABObj<MT,MAT1,T>, ABObj<MT,MAT1,T> >,T> operator-(const ABObj<MT,MAT1,T>& a, const ABObj<MT,MAT1,T>& b) { \ 31 return ABObj<MT,ABSum<ABObj<MT,MAT1,T>, ABObj<MT,MAT1,T> >,T>(ABSum<ABObj<MT,MAT1,T>, ABObj<MT,MAT1,T> >(a,ABObj<MT,MAT1,T> (b.Obj(),T(-1.)*b.f()))); \ 37 #define OP_SCALE(MT,MAT1,T) \ 38 inline ABObj<MT,MAT1,T> operator*(T f, const MAT1& obj) { \ 39 return ABObj<MT,MAT1,T>(obj, f); \ 45 #define OP_SCALE1(MT,MAT1,T) \ 46 inline ABObj<MT,MAT1,T> operator/(const MAT1& obj, T f) { \ 47 return ABObj<MT,MAT1,T>(obj, 1./f); \ 53 #define OP_MIN(MT,MAT1,T) \ 54 inline ABObj<MT,MAT1,T> operator-(const MAT1& obj) { \ 55 return ABObj<MT,MAT1,T>(obj, T(-1.)); \ 59 OP_MIN(vec,LAVector,
double)
65 #endif // ROOT_Minuit2_LaSum Namespace for new ROOT classes and functions.
#define OP_SCALE(MT, MAT1, T)
#define OP_SCALE1(MT, MAT1, T)
#define OP_ADD1(MT, MAT1, T)
#define sym(otri1, otri2)
#define OP_MIN(MT, MAT1, T)