1#ifndef __JFIT__JMESTIMATOR__
2#define __JFIT__JMESTIMATOR__
14namespace JPP {
using namespace JFIT; }
37 virtual double getRho(
const double z)
const = 0;
46 virtual double getPsi(
const double z)
const = 0;
58 virtual double getRho(
const double z)
const {
return 0.5*z*z; }
59 virtual double getPsi(
const double z)
const {
return z; }
71 virtual double getRho(
const double z)
const {
return log (1.0 + 0.5*z*z); }
72 virtual double getPsi(
const double z)
const {
return z / (1.0 + 0.5*z*z); }
84 virtual double getRho(
const double z)
const {
return sqrt(1.0 + 0.5*z*z) - 1.0; }
85 virtual double getPsi(
const double z)
const {
return 0.5 * z / sqrt(1.0 + 0.5*z*z); }
98 virtual double getRho(
const double z)
const {
return z; }
99 virtual double getPsi(
const double z)
const {
return 1.0; }
120 virtual double getRho(
const double z)
const override
122 const double w = 0.5 *
k*
k / 3.0;
126 const double u = z/
k;
127 const double v = 1.0 - u*u;
129 return w * (1.0 - v*v*v);
135 virtual double getPsi(
const double z)
const override
139 const double u = z/
k;
140 const double v = 1.0 - u*u;
167 virtual double getRho(
const double z)
const override
169 const double w = exp(-0.5*z*z);
174 virtual double getPsi(
const double z)
const override
176 const double w = exp(-0.5*z*z);
178 return z * w / (w +
p);
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Exception for accessing an invalid pointer.
Auxiliary classes and methods for linear and iterative data regression.
JMEstimator * getMEstimator(const int type)
Get M-Estimator.
JMEstimator_t
Definition of the various M-Estimators available to use.
@ EM_NORMALWITHBACKGROUND
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
virtual double getRho(const double z) const
Get maximum likelihood estimate.
virtual double getPsi(const double z) const
Get derivative of maximum likelihood estimate.
virtual double getPsi(const double z) const
Get derivative of maximum likelihood estimate.
virtual double getRho(const double z) const
Get maximum likelihood estimate.
Normal M-estimator with background.
virtual double getRho(const double z) const override
Get maximum likelihood estimate.
virtual double getPsi(const double z) const override
Get derivative of maximum likelihood estimate.
JMEstimatorNormalWithBackground(const double p)
Constructor.
virtual double getPsi(const double z) const
Get derivative of maximum likelihood estimate.
virtual double getRho(const double z) const
Get maximum likelihood estimate.
virtual double getRho(const double z) const
Get maximum likelihood estimate.
virtual double getPsi(const double z) const
Get derivative of maximum likelihood estimate.
Tukey's biweight M-estimator.
virtual double getRho(const double z) const override
Get maximum likelihood estimate.
virtual double getPsi(const double z) const override
Get derivative of maximum likelihood estimate.
JMEstimatorTukey(const double k)
Constructor.
Interface for maximum likelihood estimator (M-estimator).
virtual double getRho(const double z) const =0
Get maximum likelihood estimate.
virtual double getPsi(const double z) const =0
Get derivative of maximum likelihood estimate.
virtual ~JMEstimator()
Virtual destructor.