1 #ifndef NPSI_MINUITLOCALLOGISTICFCN_HH_
2 #define NPSI_MINUITLOCALLOGISTICFCN_HH_
16 #include "Minuit2/FCNGradientBase.h"
24 template <
class Numeric>
33 const unsigned maxdeg,
const double up=0.05)
34 : reg_(reg), up_(up), force_(true)
43 inline void setMaxDeg(
const unsigned maxdeg)
51 npara_ = reg_->dim() + 1U;
54 npara_ = ((reg_->dim() + 1U)*(reg_->dim() + 2U))/2U;
57 assert(!
"Invalid maximum polynomial degree");
61 inline unsigned nParameters()
const {
return npara_;}
65 inline double Up()
const {
return up_;}
68 inline bool CheckGradient()
const {
return false;}
70 inline virtual double operator()(
const std::vector<double>& x)
const
76 inline std::vector<double> Gradient(
const std::vector<double>& x)
const
82 std::vector<double> result(x.size(), 0.0);
83 reg_->getGradient(&result[0], npara_);
98 void calculateMemoized(
const std::vector<double>& x)
const
100 assert(x.size() >= npara_);
102 reg_->lastCoeffs().size() != npara_ || force_;
105 const double* lastX = ®_->lastCoeffs()[0];
106 const double* px = &x[0];
107 for (
unsigned i=0; i<npara_; ++i)
108 if (px[i] != lastX[i])
117 lastResult_ = reg_->calculateLogLikelihood(&x[0], npara_);
123 mutable double lastResult_;
Facilities for performing local linear and quadratic logistic regression.
Definition: MinuitLocalLogisticFcn.hh:26
MinuitLocalLogisticFcn(npstat::LogisticRegressionBase< Numeric > *reg, const unsigned maxdeg, const double up=0.05)
Definition: MinuitLocalLogisticFcn.hh:31
Definition: LocalLogisticRegression.hh:29
Definition: fitCompositeJohnson.hh:16