Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
ROOT::Minuit2::FumiliGradientCalculator Class Reference

Fumili gradient calculator using external gradient provided by FCN Note that the computed Hessian and G2 are an approximation valid for small residuals.

Definition at line 25 of file FumiliGradientCalculator.h.

Public Member Functions

 FumiliGradientCalculator (const FumiliFCNBase &fcn, const MnUserTransformation &trafo, int n)
bool CanComputeG2 () const override
bool CanComputeHessian () const override
bool G2 (const MinimumParameters &, MnAlgebraicVector &) const override
 compute second derivatives (diagonal of Hessian)
const MnAlgebraicSymMatrixGetHessian () const
bool Hessian (const MinimumParameters &, MnAlgebraicSymMatrix &) const override
 compute Hessian matrix
FunctionGradient operator() (const MinimumParameters &) const override
FunctionGradient operator() (const MinimumParameters &, const FunctionGradient &) const override
const MnUserTransformationTrafo () const

Static Public Member Functions

static bool SetParallelOMP (bool doParallel=true)
 Enable parallelization of gradient calculation using OpenMP.

Protected Attributes

const FCNBasefGradFunc
const MnUserTransformationfTransformation

Static Protected Attributes

static bool fDoParallelOMP = false
 flag to indicate if parallel OpenMP processing is used

Private Attributes

const FumiliFCNBasefFcn
MnAlgebraicSymMatrix fHessian

#include <Minuit2/FumiliGradientCalculator.h>

Inheritance diagram for ROOT::Minuit2::FumiliGradientCalculator:
ROOT::Minuit2::AnalyticalGradientCalculator ROOT::Minuit2::GradientCalculator

Constructor & Destructor Documentation

◆ FumiliGradientCalculator()

ROOT::Minuit2::FumiliGradientCalculator::FumiliGradientCalculator ( const FumiliFCNBase & fcn,
const MnUserTransformation & trafo,
int n )

Definition at line 26 of file FumiliGradientCalculator.cxx.

Member Function Documentation

◆ CanComputeG2()

bool ROOT::Minuit2::FumiliGradientCalculator::CanComputeG2 ( ) const
inlineoverridevirtual

Reimplemented from ROOT::Minuit2::AnalyticalGradientCalculator.

Definition at line 42 of file FumiliGradientCalculator.h.

◆ CanComputeHessian()

bool ROOT::Minuit2::FumiliGradientCalculator::CanComputeHessian ( ) const
inlineoverridevirtual

Reimplemented from ROOT::Minuit2::AnalyticalGradientCalculator.

Definition at line 44 of file FumiliGradientCalculator.h.

◆ G2()

bool ROOT::Minuit2::FumiliGradientCalculator::G2 ( const MinimumParameters & par,
MnAlgebraicVector & g2 ) const
overridevirtual

compute second derivatives (diagonal of Hessian)

Reimplemented from ROOT::Minuit2::AnalyticalGradientCalculator.

Definition at line 103 of file FumiliGradientCalculator.cxx.

◆ GetHessian()

const MnAlgebraicSymMatrix & ROOT::Minuit2::FumiliGradientCalculator::GetHessian ( ) const
inline

Definition at line 36 of file FumiliGradientCalculator.h.

◆ Hessian()

bool ROOT::Minuit2::FumiliGradientCalculator::Hessian ( const MinimumParameters & par,
MnAlgebraicSymMatrix & hmat ) const
overridevirtual

compute Hessian matrix

Reimplemented from ROOT::Minuit2::AnalyticalGradientCalculator.

Definition at line 116 of file FumiliGradientCalculator.cxx.

◆ operator()() [1/2]

FunctionGradient ROOT::Minuit2::FumiliGradientCalculator::operator() ( const MinimumParameters & par) const
overridevirtual

Reimplemented from ROOT::Minuit2::AnalyticalGradientCalculator.

Definition at line 34 of file FumiliGradientCalculator.cxx.

◆ operator()() [2/2]

FunctionGradient ROOT::Minuit2::FumiliGradientCalculator::operator() ( const MinimumParameters & par,
const FunctionGradient &  ) const
overridevirtual

Reimplemented from ROOT::Minuit2::AnalyticalGradientCalculator.

Definition at line 97 of file FumiliGradientCalculator.cxx.

◆ SetParallelOMP()

bool ROOT::Minuit2::GradientCalculator::SetParallelOMP ( bool doParallel = true)
staticinherited

Enable parallelization of gradient calculation using OpenMP.

This is different from the default parallel mechanism elsewhere (IMT, threads, TBB, ...). It can only be used to minimise thread-safe functions in Minuit2.

Parameters
doParalleltrue to enable, false to disable.
Note
Enabling this function does not guarantee that the derived gradient calculator class has implemented a OMP-parallelized version of the code. For example, the numeric Hessian computation (HessianGradientCalculator) does not make any use of OpenMP, only Numerical2PGradientCalculator makes use of OMP pragmas at the moment.
If OPENMP is not available, i.e. ROOT was built without OpenMP support (minuit2_omp), and an error is printed if doParallel=true; parallelization is disabled in any case.
Returns
false if OPENMP is not available and doParallel=true, otherwise it returns true.

Definition at line 21 of file GradientCalculator.cxx.

◆ Trafo()

const MnUserTransformation & ROOT::Minuit2::FumiliGradientCalculator::Trafo ( ) const
inline

Definition at line 34 of file FumiliGradientCalculator.h.

Member Data Documentation

◆ fDoParallelOMP

bool ROOT::Minuit2::GradientCalculator::fDoParallelOMP = false
inlinestaticprotectedinherited

flag to indicate if parallel OpenMP processing is used

Definition at line 41 of file GradientCalculator.h.

◆ fFcn

const FumiliFCNBase& ROOT::Minuit2::FumiliGradientCalculator::fFcn
private

Definition at line 48 of file FumiliGradientCalculator.h.

◆ fGradFunc

const FCNBase& ROOT::Minuit2::AnalyticalGradientCalculator::fGradFunc
protectedinherited

Definition at line 47 of file AnalyticalGradientCalculator.h.

◆ fHessian

MnAlgebraicSymMatrix ROOT::Minuit2::FumiliGradientCalculator::fHessian
mutableprivate

Definition at line 49 of file FumiliGradientCalculator.h.

◆ fTransformation

const MnUserTransformation& ROOT::Minuit2::AnalyticalGradientCalculator::fTransformation
protectedinherited

Definition at line 48 of file AnalyticalGradientCalculator.h.


The documentation for this class was generated from the following files: