Logo ROOT  
Reference Guide
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>
25 {
28 }
29 
30 template <class T>
31 inline ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>, double>, double>
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>
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>
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 
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
ROOT::Minuit2::operator*
ABObj< mt, M, T > operator*(T f, const M &obj)
Definition: ABObj.h:135
ROOT::Minuit2::Invert
int Invert(LASymMatrix &)
Definition: LaInverse.cxx:21
f
#define f(i)
Definition: RSha256.hxx:104
LASymMatrix.h
ROOT::Minuit2::ABObj
Definition: ABObj.h:20
ROOT::Minuit2::LASymMatrix
Class describing a symmetric matrix of size n.
Definition: LASymMatrix.h:45
inv
void inv(rsa_NUMBER *, rsa_NUMBER *, rsa_NUMBER *)
Definition: rsaaux.cxx:949
ROOT::Minuit2::MatrixInverse
Definition: MatrixInverse.h:21
ROOT::Minuit2::ABObj< sym, LASymMatrix, double >
Definition: ABObj.h:102
ROOT::Minuit2::Invert_undef_sym
int Invert_undef_sym(LASymMatrix &)
ROOT::Minuit2::operator/
ABObj< mt, M, T > operator/(const M &obj, T f)
Definition: ABObj.h:142
MatrixInverse.h
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::Minuit2::sym
Definition: ABTypes.h:19
ROOT::Math::Chebyshev::T
double T(double x)
Definition: ChebyshevPol.h:34
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