|
||||
File indexing completed on 2025-01-18 10:10:23
0001 // @(#)root/minuit2:$Id$ 0002 // Authors: M. Winkler, F. James, L. Moneta, A. Zsenei, E.G.P. Bos 2003-2017 0003 0004 /********************************************************************** 0005 * * 0006 * Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT * 0007 * * 0008 **********************************************************************/ 0009 0010 #ifndef ROOT_Minuit2_ExternalInternalGradientCalculator 0011 #define ROOT_Minuit2_ExternalInternalGradientCalculator 0012 0013 #include "Minuit2/AnalyticalGradientCalculator.h" 0014 0015 namespace ROOT { 0016 0017 namespace Minuit2 { 0018 0019 class FCNGradientBase; 0020 class MnUserTransformation; 0021 0022 /// Similar to the AnalyticalGradientCalculator, the ExternalInternalGradientCalculator 0023 /// supplies Minuit with an externally calculated gradient. The main difference is that 0024 /// ExternalInternalGradientCalculator expects that the external gradient calculator does 0025 /// things in Minuit2-internal parameter space, which means many int2ext and ext2int 0026 /// transformation steps are not necessary. This avoids loss of precision in some cases, 0027 /// where trigonometrically transforming parameters back and forth can lose a few bits of 0028 /// floating point precision on every pass. 0029 0030 class ExternalInternalGradientCalculator : public AnalyticalGradientCalculator { 0031 0032 public: 0033 ExternalInternalGradientCalculator(const FCNGradientBase &fcn, const MnUserTransformation &trafo) 0034 : AnalyticalGradientCalculator(fcn, trafo) 0035 { 0036 } 0037 0038 ~ExternalInternalGradientCalculator() override {} 0039 0040 FunctionGradient operator()(const MinimumParameters &) const override; 0041 0042 FunctionGradient operator()(const MinimumParameters &, const FunctionGradient &) const override; 0043 }; 0044 0045 } // namespace Minuit2 0046 0047 } // namespace ROOT 0048 0049 #endif // ROOT_Minuit2_ExternalInternalGradientCalculator
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |