47 #include <visp3/core/vpColVector.h>
48 #include <visp3/core/vpConfig.h>
49 #include <visp3/core/vpMath.h>
63 typedef enum { TUKEY, CAUCHY, HUBER } vpRobustEstimatorType;
74 double NoiseThreshold;
86 explicit vpRobust(
unsigned int n_data);
97 void MEstimator(
const vpRobustEstimatorType method,
const vpColVector &residues,
const vpColVector &all_residues,
101 #ifdef VISP_HAVE_CPP11_COMPATIBILITY
106 void resize(
unsigned int n_data);
109 void setIteration(
const unsigned int iter) { it = iter; }
115 inline void setThreshold(
const double noise_threshold) { NoiseThreshold = noise_threshold; }
150 double simult_chi_huber(
double x);
157 double constrainedChi(vpRobustEstimatorType method,
double x);
160 double constrainedChiTukey(
double x);
162 double constrainedChiCauchy(
double x);
164 double constrainedChiHuber(
double x);
167 #if !defined(VISP_HAVE_FUNC_ERFC) && !defined(VISP_HAVE_FUNC_STD_ERFC)
173 double erf(
double x);
174 double gammp(
double a,
double x);
175 void gser(
double *gamser,
double a,
double x,
double *gln);
176 void gcf(
double *gammcf,
double a,
double x,
double *gln);
177 double gammln(
double xx);
183 void exch(
double &A,
double &B)
193 double select(
vpColVector &a,
int l,
int r,
int k);