ROOT   Reference Guide
Searching...
No Matches
LaOuterProduct.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 MA_LaOuterProd_H_
11#define MA_LaOuterProd_H_
12
14#include "Minuit2/ABSum.h"
15#include "Minuit2/LAVector.h"
16#include "Minuit2/LASymMatrix.h"
17
18namespace ROOT {
19
20namespace Minuit2 {
21
22/// LAPACK Algebra function
23/// specialize the Outer_product function for LAVector;
24
25inline ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, double>, double>, double>
27{
28 // std::cout<<"ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, double>, double>, double> Outer_product(const
29 // ABObj<vec, LAVector, double>& obj)"<<std::endl;
32}
33
34// f*outer
35template <class T>
36inline ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>
38{
39 // std::cout<<"ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T> operator*(T f, const ABObj<sym,
40 // VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>& obj)"<<std::endl;
41 return ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>(obj.Obj(), obj.f() * f);
42}
43
44// outer/f
45template <class T>
46inline ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>
48{
49 // std::cout<<"ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T> operator/(const ABObj<sym,
50 // VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>& obj, T f)"<<std::endl;
51 return ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>(obj.Obj(), obj.f() / f);
52}
53
54// -outer
55template <class T>
56inline ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>
58{
59 // std::cout<<"ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T> operator/(const ABObj<sym,
60 // VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>& obj, T f)"<<std::endl;
61 return ABObj<sym, VectorOuterProduct<ABObj<vec, LAVector, T>, T>, T>(obj.Obj(), T(-1.) * obj.f());
62}
63
64void Outer_prod(LASymMatrix &, const LAVector &, double f = 1.);
65
66} // namespace Minuit2
67
68} // namespace ROOT
69
70#endif // MA_LaOuterProd_H_
#define f(i)
Definition RSha256.hxx:104
ABObj< mt, M, T > operator*(T f, const M &obj)
Definition ABObj.h:135
ABObj< sym, VectorOuterProduct< ABObj< vec, LAVector, double >, double >, double > Outer_product(const ABObj< vec, LAVector, double > &obj)
LAPACK Algebra function specialize the Outer_product function for LAVector;.
ABObj< mt, M, T > operator-(const M &obj)
Definition ABObj.h:149
void Outer_prod(LASymMatrix &, const LAVector &, double f=1.)
ABObj< mt, M, T > operator/(const M &obj, T f)
Definition ABObj.h:142
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.