|
||||
File indexing completed on 2025-01-18 10:10:23
0001 // @(#)root/minuit2:$Id$ 0002 // Authors: M. Winkler, F. James, L. Moneta, A. Zsenei 2003-2005 0003 0004 /********************************************************************** 0005 * * 0006 * Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT * 0007 * * 0008 **********************************************************************/ 0009 0010 #ifndef ROOT_Minuit2_LaProd 0011 #define ROOT_Minuit2_LaProd 0012 0013 #include "Minuit2/ABProd.h" 0014 #include "Minuit2/LAVector.h" 0015 #include "Minuit2/LASymMatrix.h" 0016 0017 namespace ROOT { 0018 0019 namespace Minuit2 { 0020 0021 /* 0022 LM" remove this for fixing alpha poblem 0023 #define OP_MULT1(MT1,MT2,MAT1,MAT2,T) \ 0024 template<class B> \ 0025 inline ABObj<AlgebraicProdType<MT1,MT2>::Type,ABProd<ABObj<MT1,MAT1,T>, ABObj<MT2,B,T> >,T> operator*(const 0026 ABObj<MT1,MAT1,T>& a, const ABObj<MT2,B,T>& b) { return ABObj<AlgebraicProdType<MT1,MT2>::Type,ABProd<ABObj<MT1,MAT1,T>, 0027 ABObj<MT2,B,T> >,T>(ABProd<ABObj<MT1,MAT1,T>, ABObj<MT2,B,T> >(a, b)); } \ 0028 template<class A> \ 0029 inline ABObj<AlgebraicProdType<MT1,MT2>::Type,ABProd<ABObj<MT1,A,T>, ABObj<MT2,MAT2,T> >,T> operator*(const 0030 ABObj<MT1,A,T>& a, const ABObj<MT2,MAT2,T>& b) { \ 0031 return ABObj<AlgebraicProdType<MT1,MT2>::Type,ABProd<ABObj<MT1,A,T>, ABObj<MT2,MAT2,T> >,T>(ABProd<ABObj<MT1,A,T>, 0032 ABObj<MT2,MAT2,T> >(a, b)); \ 0033 } \ 0034 \ 0035 */ 0036 0037 #define OP_MULT1(MT1, MT2, MAT1, MAT2, T) \ 0038 inline ABObj<AlgebraicProdType<MT1, MT2>::Type, ABProd<ABObj<MT1, MAT1, T>, ABObj<MT2, MAT2, T>>, T> operator*( \ 0039 const ABObj<MT1, MAT1, T> &a, const ABObj<MT2, MAT2, T> &b) \ 0040 { \ 0041 return ABObj<AlgebraicProdType<MT1, MT2>::Type, ABProd<ABObj<MT1, MAT1, T>, ABObj<MT2, MAT2, T>>, T>( \ 0042 ABProd<ABObj<MT1, MAT1, T>, ABObj<MT2, MAT2, T>>(a, b)); \ 0043 } 0044 0045 OP_MULT1(sym, vec, LASymMatrix, LAVector, double) 0046 // OP_MULT1(sym,gen,LASymMatrix,LAGenMatrix,double) 0047 // OP_MULT1(sym,sym,LASymMatrix,LASymMatrix,double) 0048 // OP_MULT1(gen,vec,LAGenMatrix,LAVector,double) 0049 // OP_MULT1(gen,sym,LAGenMatrix,LASymMatrix,double) 0050 // OP_MULT1(gen,gen,LAGenMatrix,LAGenMatrix,double) 0051 0052 } // namespace Minuit2 0053 0054 } // namespace ROOT 0055 0056 #endif // ROOT_Minuit2_LaProd
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |