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
14#include "Minuit2/LASymMatrix.h"
15
16namespace ROOT {
17
18namespace Minuit2 {
19
20/// LAPACK Algebra functions
21/// specialize the Invert function for LASymMatrix
22
23inline ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>, double>, double>
25{
28}
29
30template <class T>
31inline 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
37template <class T>
38inline 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
44template <class T>
45inline 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
51int Invert(LASymMatrix &);
52
54
55/*
56template<class M>
57inline 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>,
59double>(obj));
60}
61
62inline ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>, double>, double> Inverse(const ABObj<sym,
63LASymMatrix, double>& obj) { return ABObj<sym, MatrixInverse<sym, ABObj<sym, LASymMatrix, double>, double>,
64double>(MatrixInverse<sym, ABObj<sym, LASymMatrix, double>, double>(obj));
65}
66*/
67
68} // namespace Minuit2
69
70} // namespace ROOT
71
72#endif // ROOT_Minuit2_LaInverse
#define f(i)
Definition: RSha256.hxx:104
Class describing a symmetric matrix of size n.
Definition: LASymMatrix.h:45
double T(double x)
Definition: ChebyshevPol.h:34
ABObj< mt, M, T > operator*(T f, const M &obj)
Definition: ABObj.h:135
int Invert_undef_sym(LASymMatrix &)
int Invert(LASymMatrix &)
Definition: LaInverse.cxx:21
ABObj< mt, M, T > operator-(const M &obj)
Definition: ABObj.h:149
ABObj< mt, M, T > operator/(const M &obj, T f)
Definition: ABObj.h:142
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
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
void inv(rsa_NUMBER *, rsa_NUMBER *, rsa_NUMBER *)
Definition: rsaaux.cxx:949