ROOT
master
Reference Guide
Loading...
Searching...
No Matches
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
#include "
Minuit2/VectorOuterProduct.h
"
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
>
26
Outer_product
(
const
ABObj<vec, LAVector, double>
&obj)
27
{
28
// std::cout<<"ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, double>, double>, double> Outer_product(const
29
// ABObj<vec, LAVector, double>& obj)"<<std::endl;
30
return
ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, double>
,
double
>,
double
>(
31
VectorOuterProduct<ABObj<vec, LAVector, double>
,
double
>(obj));
32
}
33
34
// f*outer
35
template
<
class
T>
36
inline
ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>
, T>, T>
37
operator*
(T
f
,
const
ABObj
<
sym
,
VectorOuterProduct
<
ABObj<vec, LAVector, T>
, T>, T> &obj)
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>
47
operator/
(
const
ABObj
<
sym
,
VectorOuterProduct
<
ABObj<vec, LAVector, T>
, T>, T> &obj, T
f
)
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>
57
operator-
(
const
ABObj
<
sym
,
VectorOuterProduct
<
ABObj<vec, LAVector, T>
, T>, T> &obj)
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_
ABSum.h
LASymMatrix.h
LAVector.h
f
#define f(i)
Definition
RSha256.hxx:104
VectorOuterProduct.h
ROOT::Detail::TRangeCast
Definition
TCollection.h:311
ROOT::Minuit2::ABObj
Definition
ABObj.h:20
ROOT::Minuit2::VectorOuterProduct
Definition
VectorOuterProduct.h:21
ROOT::Minuit2::sym
Definition
ABTypes.h:19
ROOT::Minuit2::operator*
ABObj< mt, M, T > operator*(T f, const M &obj)
Definition
ABObj.h:135
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::Minuit2::Outer_prod
void Outer_prod(LASymMatrix &, const LAVector &, double f=1.)
Definition
LaOuterProduct.cxx:55
ROOT::Minuit2::operator/
ABObj< mt, M, T > operator/(const M &obj, T f)
Definition
ABObj.h:142
ROOT
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
Definition
EExecutionPolicy.hxx:4
math
minuit2
inc
Minuit2
LaOuterProduct.h
ROOT master - Reference Guide Generated on Mon Feb 17 2025 15:03:29 (GVA Time) using Doxygen 1.10.0