43 #include <visp3/core/vpColVector.h> 44 #include <visp3/core/vpDebug.h> 45 #include <visp3/vs/vpAdaptiveGain.h> 97 : coeff_a(), coeff_b(), coeff_c(), lambda(1.)
99 initStandard(gain_at_zero, gain_at_infinity, slope_at_zero);
149 this->coeff_a = gain_at_zero - gain_at_infinity;
151 if (std::fabs(this->coeff_a) <= std::numeric_limits<double>::epsilon()) {
154 this->coeff_b = slope_at_zero / (this->coeff_a);
156 this->coeff_c = gain_at_infinity;
176 double res = this->coeff_a + this->coeff_c;
206 double res = this->coeff_a * exp(-this->coeff_b * x) + this->coeff_c;
220 double res = this->coeff_c;
321 os <<
"Zero= " << lambda.coeff_a + lambda.coeff_c <<
"\tInf= " << lambda.coeff_c
322 <<
"\tSlope= " << lambda.coeff_a * lambda.coeff_b;
Adaptive gain computation.
static const double DEFAULT_LAMBDA_ZERO
static const double DEFAULT_LAMBDA_INFINITY
static const double DEFAULT_LAMBDA_SLOPE
double limitValue(void) const
void initStandard(double gain_at_zero, double gain_at_infinity, double slope_at_zero)
double infinityNorm() const
void initFromConstant(double c)
double operator()(void) const
Implementation of column vector and the associated operations.
friend VISP_EXPORT std::ostream & operator<<(std::ostream &os, const vpAdaptiveGain &lambda)
double value_const(double x) const
double value(double x) const
double limitValue_const(void) const