Logo ROOT  
Reference Guide
LaOuterProduct.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 MA_LaOuterProd_H_
11 #define MA_LaOuterProd_H_
12 
14 #include "Minuit2/ABSum.h"
15 #include "Minuit2/LAVector.h"
16 #include "Minuit2/LASymMatrix.h"
17 
18 namespace ROOT {
19 
20 namespace Minuit2 {
21 
22 /// LAPACK Algebra function
23 /// specialize the Outer_product function for LAVector;
24 
25 inline ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, double>, double>, double>
27 {
28  // std::cout<<"ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, double>, double>, double> Outer_product(const
29  // ABObj<vec, LAVector, double>& obj)"<<std::endl;
32 }
33 
34 // f*outer
35 template <class T>
36 inline ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>
38 {
39  // std::cout<<"ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T> operator*(T f, const ABObj<sym,
40  // VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>& obj)"<<std::endl;
41  return ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>(obj.Obj(), obj.f() * f);
42 }
43 
44 // outer/f
45 template <class T>
46 inline ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>
48 {
49  // std::cout<<"ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T> operator/(const ABObj<sym,
50  // VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>& obj, T f)"<<std::endl;
51  return ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>(obj.Obj(), obj.f() / f);
52 }
53 
54 // -outer
55 template <class T>
56 inline ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>
58 {
59  // std::cout<<"ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T> operator/(const ABObj<sym,
60  // VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>& obj, T f)"<<std::endl;
61  return ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>(obj.Obj(), T(-1.) * obj.f());
62 }
63 
64 void Outer_prod(LASymMatrix &, const LAVector &, double f = 1.);
65 
66 } // namespace Minuit2
67 
68 } // namespace ROOT
69 
70 #endif // MA_LaOuterProd_H_
ROOT::Minuit2::operator*
ABObj< mt, M, T > operator*(T f, const M &obj)
Definition: ABObj.h:135
f
#define f(i)
Definition: RSha256.hxx:104
LASymMatrix.h
ROOT::Minuit2::ABObj
Definition: ABObj.h:20
ROOT::Minuit2::Outer_prod
void Outer_prod(LASymMatrix &, const LAVector &, double f=1.)
Definition: LaOuterProduct.cxx:55
ROOT::Minuit2::ABObj< vec, LAVector, double >
Definition: ABObj.h:66
ROOT::Minuit2::operator/
ABObj< mt, M, T > operator/(const M &obj, T f)
Definition: ABObj.h:142
ROOT::Minuit2::VectorOuterProduct
Definition: VectorOuterProduct.h:21
ABSum.h
LAVector.h
ROOT::Minuit2::sym
Definition: ABTypes.h:19
VectorOuterProduct.h
ROOT::Math::Chebyshev::T
double T(double x)
Definition: ChebyshevPol.h:34
ROOT::Minuit2::Outer_product
ABObj< sym, VectorOuterProduct< ABObj< vec, LAVector, double >, double >, double > Outer_product(const ABObj< vec, LAVector, double > &obj)
LAPACK Algebra function specialize the Outer_product function for LAVector;.
Definition: LaOuterProduct.h:26
ROOT::Minuit2::operator-
ABObj< mt, M, T > operator-(const M &obj)
Definition: ABObj.h:149
ROOT
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
Definition: EExecutionPolicy.hxx:4