ROOT
6.07/01
Reference Guide
ROOT Home Page
Main Page
Tutorials
User's Classes
Namespaces
All Classes
Files
Release Notes
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
math
minuit2
inc
Minuit2
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
14
15
16
#include "
Minuit2/MatrixInverse.h
"
17
#include "
Minuit2/LASymMatrix.h
"
18
19
namespace
ROOT {
20
21
namespace
Minuit2 {
22
23
24
/// LAPACK Algebra functions
25
/// specialize the Invert function for LASymMatrix
26
27
inline
ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>,
double
>
Inverse
(
const
ABObj<sym, LASymMatrix, double>
&
obj
) {
28
return
ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>,
double
>(
MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>(
obj
));
29
}
30
31
template
<
class
T>
32
inline
ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>,
double
>
operator*
(
T
f
,
const
ABObj
<
sym
,
MatrixInverse
<
sym
,
ABObj<sym, LASymMatrix, double>
,
double
>,
double
>&
inv
) {
33
return
ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>,
double
>(
inv
.Obj(), f*
inv
.f());
34
}
35
36
template
<
class
T>
37
inline
ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>,
double
>
operator/
(
const
ABObj
<
sym
,
MatrixInverse
<
sym
,
ABObj<sym, LASymMatrix, double>
,
double
>,
double
>&
inv
,
T
f
) {
38
return
ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>,
double
>(
inv
.Obj(),
inv
.f()/
f
);
39
}
40
41
template
<
class
T>
42
inline
ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>,
double
>
operator-
(
const
ABObj
<
sym
,
MatrixInverse
<
sym
,
ABObj<sym, LASymMatrix, double>
,
double
>,
double
>&
inv
) {
43
return
ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>
,
double
>,
double
>(
inv
.Obj(),
T
(-1.)*
inv
.f());
44
}
45
46
int
Invert
(LASymMatrix&);
47
48
int
Invert_undef_sym
(LASymMatrix&);
49
50
/*
51
template<class M>
52
inline ABObj<sym, MatrixInverse<sym, ABObj<sym, M, double>, double>, double> Inverse(const ABObj<sym, M, double>& obj) {
53
return ABObj<sym, MatrixInverse<sym, ABObj<sym, M, double>, double>, double>(MatrixInverse<sym, ABObj<sym, M, double>, double>(obj));
54
}
55
56
inline ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>, double>, double> Inverse(const ABObj<sym, LASymMatrix, double>& obj) {
57
return ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>, double>, double>(MatrixInverse<sym, ABObj<sym, LASymMatrix, double>, double>(obj));
58
}
59
*/
60
61
}
// namespace Minuit2
62
63
}
// namespace ROOT
64
65
#endif // ROOT_Minuit2_LaInverse
ROOT::Minuit2::Invert
int Invert(LASymMatrix &)
Definition:
LaInverse.cxx:22
ROOT::Minuit2::ABObj
Definition:
ABObj.h:21
ROOT::Minuit2::MatrixInverse
Definition:
MatrixInverse.h:22
vdt::inv
double inv(double x)
For comparisons.
Definition:
inv.h:58
ROOT::Minuit2::operator*
ABObj< mt, M, T > operator*(T f, const M &obj)
Definition:
ABObj.h:140
ROOT::Minuit2::operator-
ABObj< mt, M, T > operator-(const M &obj)
Definition:
ABObj.h:152
f
TFile * f
Definition:
memstatExample.C:52
ROOT::Minuit2::sym
Definition:
ABTypes.h:19
T
TTree * T
Definition:
memstatExample.C:53
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:27
ROOT::Minuit2::Invert_undef_sym
int Invert_undef_sym(LASymMatrix &)
ROOT::Minuit2::ABObj< sym, LASymMatrix, double >
Definition:
ABObj.h:103
LASymMatrix.h
ROOT::Minuit2::operator/
ABObj< mt, M, T > operator/(const M &obj, T f)
Definition:
ABObj.h:146
MatrixInverse.h
obj
TObject * obj
Definition:
TStreamerInfo.cxx:83