Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
FunctionGradient.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_FunctionGradient
11#define ROOT_Minuit2_FunctionGradient
12
13#include "Minuit2/MnMatrix.h"
14
15#include <memory>
16
17namespace ROOT {
18
19namespace Minuit2 {
20
22
23private:
24public:
25 explicit FunctionGradient(unsigned int n)
27 {
28 }
29
31 : fPtr{new Data{grd, MnAlgebraicVector(grd.size()), MnAlgebraicVector(grd.size()), true, true}}
32 {
33 }
34
36 : fPtr{new Data{grd, g2, gstep, true, false}}
37 {
38 }
39
40 const MnAlgebraicVector &Grad() const { return fPtr->fGradient; }
41 const MnAlgebraicVector &Vec() const { return Grad(); }
42 bool IsValid() const { return fPtr->fValid; }
43
44 bool IsAnalytical() const { return fPtr->fAnalytical; }
45 const MnAlgebraicVector &G2() const { return fPtr->fG2ndDerivative; }
46 const MnAlgebraicVector &Gstep() const { return fPtr->fGStepSize; }
47
48private:
49 struct Data {
53 bool fValid;
55 };
56
57 std::shared_ptr<Data> fPtr;
58};
59
60} // namespace Minuit2
61
62} // namespace ROOT
63
64#endif // ROOT_Minuit2_FunctionGradient
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
std::shared_ptr< Data > fPtr
const MnAlgebraicVector & Gstep() const
const MnAlgebraicVector & Grad() const
FunctionGradient(const MnAlgebraicVector &grd, const MnAlgebraicVector &g2, const MnAlgebraicVector &gstep)
const MnAlgebraicVector & Vec() const
const MnAlgebraicVector & G2() const
FunctionGradient(const MnAlgebraicVector &grd)
const Int_t n
Definition legend1.C:16
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...