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

interface class for gradient calculators

Definition at line 25 of file GradientCalculator.h.

Public Member Functions

virtual ~GradientCalculator ()
 
virtual bool G2 (const MinimumParameters &, MnAlgebraicVector &) const
 
virtual bool Hessian (const MinimumParameters &, MnAlgebraicSymMatrix &) const
 
virtual FunctionGradient operator() (const MinimumParameters &) const =0
 
virtual FunctionGradient operator() (const MinimumParameters &, const FunctionGradient &) const =0
 

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
 

#include <Minuit2/GradientCalculator.h>

Inheritance diagram for ROOT::Minuit2::GradientCalculator:
[legend]

Constructor & Destructor Documentation

◆ ~GradientCalculator()

virtual ROOT::Minuit2::GradientCalculator::~GradientCalculator ( )
inlinevirtual

Definition at line 28 of file GradientCalculator.h.

Member Function Documentation

◆ G2()

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

◆ Hessian()

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

◆ operator()() [1/2]

◆ operator()() [2/2]

◆ SetParallelOMP()

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

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
inlinestaticprotected

flag to indicate if parallel OpenMP processing is used

Definition at line 41 of file GradientCalculator.h.

Libraries for ROOT::Minuit2::GradientCalculator:

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