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.
double value_const(double x) const
double operator()(void) const
static const double DEFAULT_LAMBDA_ZERO
double limitValue_const(void) const
void initStandard(double gain_at_zero, double gain_at_infinity, double slope_at_zero)
static const double DEFAULT_LAMBDA_INFINITY
static const double DEFAULT_LAMBDA_SLOPE
void initFromConstant(double c)
double limitValue(void) const
double value(double x) const
friend std::ostream & operator<<(std::ostream &s, const vpArray2D< Type > &A)
Implementation of column vector and the associated operations.
double infinityNorm() const