ROOT
6.30.04
Reference Guide
All
Namespaces
Files
Pages
LaProd.h
Go to the documentation of this file.
1
// @(#)root/minuit2:$Id$
2
// Authors: M. Winkler, F. James, L. Moneta, A. Zsenei 2003-2005
3
4
/**********************************************************************
5
* *
6
* Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT *
7
* *
8
**********************************************************************/
9
10
#ifndef ROOT_Minuit2_LaProd
11
#define ROOT_Minuit2_LaProd
12
13
#include "
Minuit2/ABProd.h
"
14
#include "
Minuit2/LAVector.h
"
15
#include "
Minuit2/LASymMatrix.h
"
16
17
namespace
ROOT {
18
19
namespace
Minuit2 {
20
21
22
/*
23
LM" remove this for fixing alpha poblem
24
#define OP_MULT1(MT1,MT2,MAT1,MAT2,T) \
25
template<class B> \
26
inline ABObj<AlgebraicProdType<MT1,MT2>::Type,ABProd<ABObj<MT1,MAT1,T>, ABObj<MT2,B,T> >,T> operator*(const ABObj<MT1,MAT1,T>& a, const ABObj<MT2,B,T>& b) { return ABObj<AlgebraicProdType<MT1,MT2>::Type,ABProd<ABObj<MT1,MAT1,T>, ABObj<MT2,B,T> >,T>(ABProd<ABObj<MT1,MAT1,T>, ABObj<MT2,B,T> >(a, b)); } \
27
template<class A> \
28
inline ABObj<AlgebraicProdType<MT1,MT2>::Type,ABProd<ABObj<MT1,A,T>, ABObj<MT2,MAT2,T> >,T> operator*(const ABObj<MT1,A,T>& a, const ABObj<MT2,MAT2,T>& b) { \
29
return ABObj<AlgebraicProdType<MT1,MT2>::Type,ABProd<ABObj<MT1,A,T>, ABObj<MT2,MAT2,T> >,T>(ABProd<ABObj<MT1,A,T>, ABObj<MT2,MAT2,T> >(a, b)); \
30
} \
31
\
32
*/
33
34
#define OP_MULT1(MT1,MT2,MAT1,MAT2,T) \
35
inline ABObj<AlgebraicProdType<MT1,MT2>::Type,ABProd<ABObj<MT1,MAT1,T>, ABObj<MT2,MAT2,T> >,T> operator*(const ABObj<MT1,MAT1,T>& a, const ABObj<MT2,MAT2,T>& b) { \
36
return ABObj<AlgebraicProdType<MT1,MT2>::Type,ABProd<ABObj<MT1,MAT1,T>, ABObj<MT2,MAT2,T> >,T>(ABProd<ABObj<MT1,MAT1,T>, ABObj<MT2,MAT2,T> >(a, b)); \
37
}
38
39
OP_MULT1(sym,vec,LASymMatrix,LAVector,
double
)
40
// OP_MULT1(sym,gen,LASymMatrix,LAGenMatrix,double)
41
// OP_MULT1(sym,sym,LASymMatrix,LASymMatrix,double)
42
// OP_MULT1(gen,vec,LAGenMatrix,LAVector,double)
43
// OP_MULT1(gen,sym,LAGenMatrix,LASymMatrix,double)
44
// OP_MULT1(gen,gen,LAGenMatrix,LAGenMatrix,double)
45
46
}
// namespace Minuit2
47
48
}
// namespace ROOT
49
50
#endif // ROOT_Minuit2_LaProd
ABProd.h
LASymMatrix.h
LAVector.h
math
minuit2
inc
Minuit2
LaProd.h
Generated on Tue May 5 2020 14:03:06 for ROOT by
1.8.5