Program Listing for File parameter_dynamics.h

Return to documentation for file (dynamics/parameter_dynamics.h)

#pragma once

#include "lupnt/dynamics/dynamics.h"
#include "lupnt/states/params.h"

namespace lupnt {

  class ParameterDynamics : public Dynamics {
  public:
    ParameterDynamics() = default;
    ParameterDynamics(Config& config) : Dynamics(config) {}

    State Propagate(const State& x0, Real t0, Real tf, const State* u = nullptr) override {
      (void)t0;
      (void)tf;
      (void)u;
      return x0;  // Parameters are constant
    }

    State Propagate(const State& x0, Real t0, Real tf, const State* u, MatXd* stm) override {
      (void)t0;
      (void)tf;
      (void)u;
      if (stm != nullptr) {
        *stm = MatXd::Identity(x0.size(), x0.size());
      }
      return x0;  // Parameters are constant
    }

    StateType GetStateType() const override { return "Params"; }
  };

}  // namespace lupnt