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

class performing the numerical gradient calculation

Definition at line 29 of file Numerical2PGradientCalculator.h.

Public Member Functions

 Numerical2PGradientCalculator (const MnFcn &fcn, const MnUserTransformation &par, const MnStrategy &stra)
virtual bool G2 (const MinimumParameters &, MnAlgebraicVector &) const
virtual bool Hessian (const MinimumParameters &, MnAlgebraicSymMatrix &) const
FunctionGradient operator() (const MinimumParameters &) const override
FunctionGradient operator() (const MinimumParameters &, const FunctionGradient &) const override

Static Public Member Functions

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

Static Protected Attributes

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

Private Attributes

const MnFcnfFcn
const MnStrategyfStrategy
const MnUserTransformationfTransformation

#include <Minuit2/Numerical2PGradientCalculator.h>

Inheritance diagram for ROOT::Minuit2::Numerical2PGradientCalculator:
ROOT::Minuit2::GradientCalculator

Constructor & Destructor Documentation

◆ Numerical2PGradientCalculator()

ROOT::Minuit2::Numerical2PGradientCalculator::Numerical2PGradientCalculator ( const MnFcn & fcn,
const MnUserTransformation & par,
const MnStrategy & stra )
inline

Definition at line 32 of file Numerical2PGradientCalculator.h.

Member Function Documentation

◆ G2()

virtual bool ROOT::Minuit2::GradientCalculator::G2 ( const MinimumParameters & ,
MnAlgebraicVector &  ) const
inlinevirtualinherited

◆ Hessian()

virtual bool ROOT::Minuit2::GradientCalculator::Hessian ( const MinimumParameters & ,
MnAlgebraicSymMatrix &  ) const
inlinevirtualinherited

◆ operator()() [1/2]

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

◆ operator()() [2/2]

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

◆ 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.

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 MnFcn& ROOT::Minuit2::Numerical2PGradientCalculator::fFcn
private

Definition at line 42 of file Numerical2PGradientCalculator.h.

◆ fStrategy

const MnStrategy& ROOT::Minuit2::Numerical2PGradientCalculator::fStrategy
private

Definition at line 44 of file Numerical2PGradientCalculator.h.

◆ fTransformation

const MnUserTransformation& ROOT::Minuit2::Numerical2PGradientCalculator::fTransformation
private

Definition at line 43 of file Numerical2PGradientCalculator.h.


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