TVM  0.9.4
LinearizedTaskConstraint.h
Go to the documentation of this file.
1 
3 #pragma once
4 
5 #include <tvm/Task.h>
7 #include <tvm/utils/ProtoTask.h>
8 
9 namespace tvm
10 {
11 
12 namespace constraint
13 {
14 
15 namespace internal
16 {
17 
148 {
149 public:
150  SET_UPDATES(LinearizedTaskConstraint, UpdateRHS, UpdateRHS2)
151 
152 
154 
156  template<constraint::Type T>
157  LinearizedTaskConstraint(const utils::ProtoTask<T> & pt, const task_dynamics::abstract::TaskDynamics & td);
158 
160  void updateLKin();
162  void updateLDyn();
164  void updateUKin();
166  void updateUDyn();
168  void updateEKin();
170  void updateEDyn();
172  void updateU2Kin();
174  void updateU2Dyn();
175 
177  tvm::internal::MatrixConstRefWithProperties jacobian(const Variable & x) const override;
178 
179 private:
180  FunctionPtr f_;
181  TaskDynamicsPtr td_;
182  TaskDynamicsPtr td2_; // for double sided constraints only;
183 };
184 
185 template<constraint::Type T>
187  const task_dynamics::abstract::TaskDynamics & td)
189 {}
190 
191 } // namespace internal
192 
193 } // namespace constraint
194 
195 } // namespace tvm
#define SET_UPDATES(SelfT,...)
Definition: AbstractNode.h:138
#define TVM_DLLAPI
Definition: api.h:35
Definition: Task.h:20
Definition: Variable.h:49
Definition: LinearConstraint.h:56
Definition: LinearizedTaskConstraint.h:148
Type
Definition: enums.h:15
ObjectWithProperties< Eigen::Ref< const Eigen::MatrixXd > > MatrixConstRefWithProperties
Definition: MatrixWithProperties.h:164
ProtoTaskCommon< T, FunctionPtr > ProtoTask
Definition: ProtoTask.h:21
Definition: Clock.h:12
std::shared_ptr< task_dynamics::abstract::TaskDynamicsImpl > TaskDynamicsPtr
Definition: defs.h:64
std::shared_ptr< function::abstract::Function > FunctionPtr
Definition: defs.h:57