34 #define __SOT_GAIN_HYPERBOLIC_INIT \ 35 Entity(name), coeff_a(0), coeff_b(0), coeff_c(0), coeff_d(0), \ 36 errorSIN(NULL, "sotGainHyperbolic(" + name + ")::input(vector)::error"), \ 37 gainSOUT(boost::bind(&GainHyperbolic::computeGain, this, _1, _2), \ 39 "sotGainHyperbolic(" + name + ")::output(double)::gain") 43 sotDEBUG(15) <<
"New gain <" << name <<
">" << std::endl;
55 const double &valueAtInfty,
const double &tanAt0,
58 init(valueAt0, valueAtInfty, tanAt0, decal0);
63 const double &tanAt0,
const double &decal0) {
64 coeff_a = valueAt0 - valueAtInfty;
83 os <<
"Gain Hyperbolic " <<
getName();
99 const double norm = error.norm();
virtual void display(std::ostream &os) const
void signalRegistration(const SignalArray< int > &signals)
#define sotDEBUGOUT(level)
GainHyperbolic(const std::string &name)
static const double ZERO_DEFAULT
static const double TAN_DEFAULT
DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN(FeaturePosture, "FeaturePosture")
#define sotDEBUGIN(level)
dynamicgraph::SignalTimeDependent< double, int > gainSOUT
Hyperbolic gain. It follows the law The default coefficients are:
#define __SOT_GAIN_HYPERBOLIC_INIT
static const double INFTY_DEFAULT
const std::string & getName() const
double & computeGain(double &res, int t)
virtual const T & accessCopy() const
dynamicgraph::SignalPtr< dynamicgraph::Vector, int > errorSIN