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

HessianGradientCalculator: class to calculate Gradient for Hessian.

Definition at line 30 of file HessianGradientCalculator.h.

Public Member Functions

 HessianGradientCalculator (const MnFcn &fcn, const MnUserTransformation &par, const MnStrategy &stra)
std::pair< FunctionGradient, MnAlgebraicVectorDeltaGradient (const MinimumParameters &, const FunctionGradient &) const
const MnFcnFcn () const
virtual bool G2 (const MinimumParameters &, MnAlgebraicVector &) const
virtual bool Hessian (const MinimumParameters &, MnAlgebraicSymMatrix &) const
unsigned int Ncycle () const
FunctionGradient operator() (const MinimumParameters &) const override
FunctionGradient operator() (const MinimumParameters &, const FunctionGradient &) const override
const MnMachinePrecisionPrecision () const
const MnStrategyStrategy () const
const MnUserTransformationTrafo () const

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/HessianGradientCalculator.h>

Inheritance diagram for ROOT::Minuit2::HessianGradientCalculator:
ROOT::Minuit2::GradientCalculator

Constructor & Destructor Documentation

◆ HessianGradientCalculator()

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

Definition at line 33 of file HessianGradientCalculator.h.

Member Function Documentation

◆ DeltaGradient()

std::pair< FunctionGradient, MnAlgebraicVector > ROOT::Minuit2::HessianGradientCalculator::DeltaGradient ( const MinimumParameters & par,
const FunctionGradient & Gradient ) const

Definition at line 59 of file HessianGradientCalculator.cxx.

◆ Fcn()

const MnFcn & ROOT::Minuit2::HessianGradientCalculator::Fcn ( ) const
inline

Definition at line 45 of file HessianGradientCalculator.h.

◆ G2()

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

◆ Hessian()

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

◆ Ncycle()

unsigned int ROOT::Minuit2::HessianGradientCalculator::Ncycle ( ) const

Definition at line 52 of file HessianGradientCalculator.cxx.

◆ operator()() [1/2]

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

Implements ROOT::Minuit2::GradientCalculator.

Definition at line 29 of file HessianGradientCalculator.cxx.

◆ operator()() [2/2]

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

Implements ROOT::Minuit2::GradientCalculator.

Definition at line 37 of file HessianGradientCalculator.cxx.

◆ Precision()

const MnMachinePrecision & ROOT::Minuit2::HessianGradientCalculator::Precision ( ) const

Definition at line 46 of file HessianGradientCalculator.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.

◆ Strategy()

const MnStrategy & ROOT::Minuit2::HessianGradientCalculator::Strategy ( ) const
inline

Definition at line 48 of file HessianGradientCalculator.h.

◆ Trafo()

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

Definition at line 46 of file HessianGradientCalculator.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 MnFcn& ROOT::Minuit2::HessianGradientCalculator::fFcn
private

Definition at line 53 of file HessianGradientCalculator.h.

◆ fStrategy

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

Definition at line 55 of file HessianGradientCalculator.h.

◆ fTransformation

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

Definition at line 54 of file HessianGradientCalculator.h.


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