39 #include <visp3/core/vpColVector.h>
40 #include <visp3/core/vpDebug.h>
41 #include <visp3/vs/vpAdaptiveGain.h>
62 : coeff_a(), coeff_b(), coeff_c(), lambda(1.)
64 initStandard(gain_at_zero, gain_at_infinity, slope_at_zero);
84 this->coeff_a = gain_at_zero - gain_at_infinity;
86 if (std::fabs(this->coeff_a) <= std::numeric_limits<double>::epsilon()) {
90 this->coeff_b = slope_at_zero / (this->coeff_a);
92 this->coeff_c = gain_at_infinity;
99 double res = this->coeff_a + this->coeff_c;
110 double res = this->coeff_a * exp(-this->coeff_b * x) + this->coeff_c;
117 double res = this->coeff_c;
144 os <<
"Zero= " << lambda.coeff_a + lambda.coeff_c <<
"\tInf= " << lambda.coeff_c
145 <<
"\tSlope= " << lambda.coeff_a * lambda.coeff_b;
Adaptive gain computation.
double value_const(double x) const
double operator()(void) const
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
static const double DEFAULT_LAMBDA_ZERO
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