Logo ROOT   6.08/07
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 
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 
29 }
30 
31 template<class T>
33  return ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>, double>, double>(inv.Obj(), f*inv.f());
34 }
35 
36 template<class T>
38  return ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>, double>, double>(inv.Obj(), inv.f()/f);
39 }
40 
41 template<class T>
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 
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
int Invert(LASymMatrix &)
Definition: LaInverse.cxx:22
This namespace contains pre-defined functions to be used in conjuction with TExecutor::Map and TExecu...
Definition: StringConv.hxx:21
double T(double x)
Definition: ChebyshevPol.h:34
Class describing a symmetric matrix of size n.
Definition: LASymMatrix.h:51
double inv(double x)
For comparisons.
Definition: inv.h:58
ABObj< mt, M, T > operator*(T f, const M &obj)
Definition: ABObj.h:140
ABObj< mt, M, T > operator-(const M &obj)
Definition: ABObj.h:152
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
int Invert_undef_sym(LASymMatrix &)
double f(double x)
ABObj< mt, M, T > operator/(const M &obj, T f)
Definition: ABObj.h:146