Go to the documentation of this file.
10 #ifndef __SOT_INTEGRATOR_EULER_H__
11 #define __SOT_INTEGRATOR_EULER_H__
31 template <
class coefT>
50 template <
class sigT,
class coefT>
69 "sotIntegratorEuler(" +
name +
70 ")::output(vector)::derivativesout") {
80 "Set the time during two sampling."));
84 "Get the time during two sampling."));
91 "Initialize internal memory from current value of input")));
107 sotDEBUG(15) <<
"# In {" << std::endl;
111 const std::vector<coefT> &num =
numerator;
149 sotDEBUG(15) <<
"# Out }" << std::endl;
157 "Integrator does not compute the derivative.");
159 SOUT.recompute(time);
175 "The numerator or the denominator is empty.");
181 "The coefficient of the highest order derivative of denominator "
182 "should be 1 (the last pushDenomCoef should be the identity).");
188 for (std::size_t
i = 1;
i < numsize; ++
i) {
194 for (std::size_t
i = 0;
i < denomsize; ++
i) {
virtual const std::string & getClassName(void) const
dynamicgraph::SignalTimeDependent< sigT, sigtime_t > SOUT
std::vector< coefT > denominator
virtual const T & accessCopy() const
sigT & integrate(sigT &res, sigtime_t time)
static std::string getTypeName(void)
dynamicgraph::SignalPtr< sigT, sigtime_t > SIN
static const std::string CLASS_NAME
sigT & derivative(sigT &res, sigtime_t time)
integrates an ODE using a naive Euler integration. TODO: change the integration method....
double getSamplingPeriod() const
IntegratorEuler(const std::string &name)
std::string docCommandVoid0(const std::string &doc)
void setSamplingPeriod(const double &period)
virtual ~IntegratorEuler(void)
CommandVoid0< E > * makeCommandVoid0(E &entity, boost::function< void(E *)> function, const std::string &docString)
virtual const T & access(const Time &t)
std::vector< coefT > numerator
std::vector< sigT > inputMemory
std::vector< sigT > outputMemory
integrates an ODE. If Y is the output and X the input, the following equation is integrated: a_p * d(...
dynamicgraph::SignalTimeDependent< sigT, sigtime_t > derivativeSOUT
void addCommand(const std::string &name, command::Command *command)
void signalRegistration(const SignalArray< sigtime_t > &signals)
bool integratorEulerCoeffIsIdentity(const coefT c)
sot-core
Author(s): Olivier Stasse, ostasse@laas.fr
autogenerated on Tue Oct 24 2023 02:26:31