ROOT
6.06/09
Reference Guide
ROOT Home Page
Main Page
Related Pages
User's Classes
Namespaces
All Classes
Files
Release Notes
File List
File Members
math
minuit2
inc
Minuit2
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
13
14
15
#include "
Minuit2/VectorOuterProduct.h
"
16
#include "
Minuit2/ABSum.h
"
17
#include "
Minuit2/LAVector.h
"
18
#include "
Minuit2/LASymMatrix.h
"
19
20
namespace
ROOT
{
21
22
namespace
Minuit2 {
23
24
25
/// LAPACK Algebra function
26
/// specialize the Outer_product function for LAVector;
27
28
inline
ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, double>
,
double
>,
double
>
Outer_product
(
const
ABObj<vec, LAVector, double>
&
obj
) {
29
// std::cout<<"ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, double>, double>, double> Outer_product(const ABObj<vec, LAVector, double>& obj)"<<std::endl;
30
return
ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, double>
,
double
>,
double
>(
VectorOuterProduct<ABObj<vec, LAVector, double>
,
double
>(
obj
));
31
}
32
33
// f*outer
34
template
<
class
T>
35
inline
ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>
,
T
>, T>
operator*
(T
f
,
const
ABObj
<
sym
,
VectorOuterProduct
<
ABObj<vec, LAVector, T>
, T>, T>&
obj
) {
36
// std::cout<<"ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T> operator*(T f, const ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>& obj)"<<std::endl;
37
return
ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>
, T>, T>(
obj
.Obj(),
obj
.f()*
f
);
38
}
39
40
// outer/f
41
template
<
class
T>
42
inline
ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>
, T>, T>
operator/
(
const
ABObj
<
sym
,
VectorOuterProduct
<
ABObj<vec, LAVector, T>
, T>, T>&
obj
, T
f
) {
43
// std::cout<<"ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T> operator/(const ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>& obj, T f)"<<std::endl;
44
return
ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>
, T>, T>(
obj
.Obj(),
obj
.f()/
f
);
45
}
46
47
// -outer
48
template
<
class
T>
49
inline
ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>
, T>, T>
operator-
(
const
ABObj
<
sym
,
VectorOuterProduct
<
ABObj<vec, LAVector, T>
, T>, T>&
obj
) {
50
// std::cout<<"ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T> operator/(const ABObj<sym, 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(),
T
(-1.)*
obj
.f());
52
}
53
54
void
Outer_prod
(LASymMatrix&,
const
LAVector&,
double
f
= 1.);
55
56
}
// namespace Minuit2
57
58
}
// namespace ROOT
59
60
#endif //MA_LaOuterProd_H_
ROOT
Namespace for new ROOT classes and functions.
Definition:
ROOT.py:1
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:28
ROOT::Minuit2::ABObj
Definition:
ABObj.h:21
ROOT::Math::Chebyshev::T
double T(double x)
Definition:
ChebyshevPol.h:34
ROOT::Minuit2::operator*
ABObj< mt, M, T > operator*(T f, const M &obj)
Definition:
ABObj.h:140
ROOT::Minuit2::ABObj< vec, LAVector, double >
Definition:
ABObj.h:65
ROOT::Minuit2::operator-
ABObj< mt, M, T > operator-(const M &obj)
Definition:
ABObj.h:152
ROOT::Minuit2::sym
Definition:
ABTypes.h:19
ROOT::Minuit2::Outer_prod
void Outer_prod(LASymMatrix &, const LAVector &, double f=1.)
Definition:
LaOuterProduct.cxx:50
ABSum.h
LASymMatrix.h
VectorOuterProduct.h
f
double f(double x)
Definition:
testIntegration.cxx:12
ROOT::Minuit2::VectorOuterProduct
Definition:
VectorOuterProduct.h:22
ROOT::Minuit2::operator/
ABObj< mt, M, T > operator/(const M &obj, T f)
Definition:
ABObj.h:146
LAVector.h
obj
TObject * obj
Definition:
TStreamerInfo.cxx:83