ROOT
v6-32
Reference Guide
Loading...
Searching...
No Matches
LaInverse.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_LaInverse
11
#define ROOT_Minuit2_LaInverse
12
13
#include "
Minuit2/MatrixInverse.h
"
14
#include "
Minuit2/LASymMatrix.h
"
15
16
namespace
ROOT
{
17
18
namespace
Minuit2 {
19
20
/// LAPACK Algebra functions
21
/// specialize the Invert function for LASymMatrix
22
23
inline
ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>,
double
>
24
Inverse
(
const
ABObj<sym, LASymMatrix, double>
&obj)
25
{
26
return
ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>,
double
>(
27
MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>(obj));
28
}
29
30
template
<
class
T>
31
inline
ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>,
double
>
32
operator*
(T
f
,
const
ABObj
<
sym
,
MatrixInverse
<
sym
,
ABObj<sym, LASymMatrix, double>
,
double
>,
double
> &
inv
)
33
{
34
return
ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>,
double
>(
inv
.Obj(),
f
*
inv
.f());
35
}
36
37
template
<
class
T>
38
inline
ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>,
double
>
39
operator/
(
const
ABObj
<
sym
,
MatrixInverse
<
sym
,
ABObj<sym, LASymMatrix, double>
,
double
>,
double
> &
inv
, T
f
)
40
{
41
return
ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>,
double
>(
inv
.Obj(),
inv
.f() /
f
);
42
}
43
44
template
<
class
T>
45
inline
ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>,
double
>
46
operator-
(
const
ABObj
<
sym
,
MatrixInverse
<
sym
,
ABObj<sym, LASymMatrix, double>
,
double
>,
double
> &
inv
)
47
{
48
return
ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>,
double
>(
inv
.Obj(), T(-1.) *
inv
.f());
49
}
50
51
int
Invert
(LASymMatrix &);
52
53
int
Invert_undef_sym
(
LASymMatrix
&);
54
55
/*
56
template<class M>
57
inline ABObj<sym, MatrixInverse<sym, ABObj<sym, M, double>, double>, double> Inverse(const ABObj<sym, M, double>& obj) {
58
return ABObj<sym, MatrixInverse<sym, ABObj<sym, M, double>, double>, double>(MatrixInverse<sym, ABObj<sym, M, double>,
59
double>(obj));
60
}
61
62
inline ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>, double>, double> Inverse(const ABObj<sym,
63
LASymMatrix, double>& obj) { return ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>, double>,
64
double>(MatrixInverse<sym, ABObj<sym, LASymMatrix, double>, double>(obj));
65
}
66
*/
67
68
}
// namespace Minuit2
69
70
}
// namespace ROOT
71
72
#endif
// ROOT_Minuit2_LaInverse
LASymMatrix.h
MatrixInverse.h
f
#define f(i)
Definition
RSha256.hxx:104
ROOT::Detail::TRangeCast
Definition
TCollection.h:311
ROOT::Minuit2::ABObj
Definition
ABObj.h:20
ROOT::Minuit2::LASymMatrix
Class describing a symmetric matrix of size n.
Definition
LASymMatrix.h:45
ROOT::Minuit2::MatrixInverse
Definition
MatrixInverse.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::Invert_undef_sym
int Invert_undef_sym(LASymMatrix &)
ROOT::Minuit2::Invert
int Invert(LASymMatrix &)
Definition
LaInverse.cxx:21
ROOT::Minuit2::operator-
ABObj< mt, M, T > operator-(const M &obj)
Definition
ABObj.h:149
ROOT::Minuit2::operator/
ABObj< mt, M, T > operator/(const M &obj, T f)
Definition
ABObj.h:142
ROOT::Minuit2::Inverse
ABObj< sym, MatrixInverse< sym, ABObj< sym, LASymMatrix, double >, double >, double > Inverse(const ABObj< sym, LASymMatrix, double > &obj)
LAPACK Algebra functions specialize the Invert function for LASymMatrix.
Definition
LaInverse.h:24
ROOT
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
Definition
EExecutionPolicy.hxx:4
inv
void inv(rsa_NUMBER *, rsa_NUMBER *, rsa_NUMBER *)
Definition
rsaaux.cxx:949
math
minuit2
inc
Minuit2
LaInverse.h
ROOT v6-32 - Reference Guide Generated on Sun Feb 16 2025 14:32:25 (GVA Time) using Doxygen 1.10.0