10 #ifndef __SOT_INTEGRATOR_ABSTRACT_H__ 11 #define __SOT_INTEGRATOR_ABSTRACT_H__ 18 #include <dynamic-graph/linear-algebra.h> 21 #include <dynamic-graph/all-signals.h> 22 #include <dynamic-graph/command-bind.h> 23 #include <dynamic-graph/entity.h> 24 #include <dynamic-graph/pool.h> 44 template <
class sigT,
class coefT>
49 SIN(NULL,
"sotIntegratorAbstract(" + name +
")::input(vector)::sin"),
52 SIN,
"sotIntegratorAbstract(" + name +
")::output(vector)::sout") {
53 signalRegistration(
SIN <<
SOUT);
55 using namespace dynamicgraph::command;
57 const std::string typeName =
58 Value::typeName(dynamicgraph::command::ValueHelper<coefT>::TypeID);
64 docCommandVoid1(
"Push a new numerator coefficient", typeName)));
69 docCommandVoid1(
"Push a new denominator coefficient", typeName)));
74 docCommandVoid0(
"Pop a new numerator coefficient")));
78 docCommandVoid0(
"Pop a new denominator coefficient")));
83 virtual sigT &
integrate(sigT &res,
int time) = 0;
100 dynamicgraph::SignalPtr<sigT, int>
SIN;
102 dynamicgraph::SignalTimeDependent<sigT, int>
SOUT;
104 virtual void display(std::ostream &os)
const {
105 os << this->getClassName() <<
": " << getName() <<
'\n' <<
" ";
111 for (std::size_t i = 1; i < numerator.size(); ++i)
112 os <<
" + " << numerator[i] <<
" s^" << i;
114 for (std::size_t i = 1; i < denominator.size(); ++i)
115 os <<
" + " << denominator[i] <<
" s^" << i;
const std::vector< coefT > & denomCoeffs() const
Definition: integrator-abstract.hh:96
const std::vector< coefT > & numCoeffs() const
Definition: integrator-abstract.hh:93
dynamicgraph::SignalPtr< sigT, int > SIN
Definition: integrator-abstract.hh:100
void popDenomCoef()
Definition: integrator-abstract.hh:91
std::vector< coefT > numerator
Definition: integrator-abstract.hh:119
void pushDenomCoef(const coefT &denomCoef)
Definition: integrator-abstract.hh:87
void denomCoeffs(const std::vector< coefT > &coeffs)
Definition: integrator-abstract.hh:97
std::vector< coefT > denominator
Definition: integrator-abstract.hh:120
integrates an ODE. If Y is the output and X the input, the following equation is integrated: a_p * d(...
Definition: integrator-abstract.hh:45
virtual sigT & integrate(sigT &res, int time)=0
virtual ~IntegratorAbstract()
Definition: integrator-abstract.hh:81
void numCoeffs(const std::vector< coefT > &coeffs)
Definition: integrator-abstract.hh:94
dynamicgraph::SignalTimeDependent< sigT, int > SOUT
Definition: integrator-abstract.hh:102
void popNumCoef()
Definition: integrator-abstract.hh:90
IntegratorAbstract(const std::string &name)
Definition: integrator-abstract.hh:47
virtual void display(std::ostream &os) const
Definition: integrator-abstract.hh:104
Definition: abstract-sot-external-interface.hh:17
void pushNumCoef(const coefT &numCoef)
Definition: integrator-abstract.hh:86