Public Types | |
typedef ResidualModelAbstractTpl< Scalar > | Base |
typedef ResidualDataNumDiffTpl< Scalar > | Data |
typedef DataCollectorAbstractTpl< Scalar > | DataCollectorAbstract |
typedef MathBaseTpl< Scalar > | MathBase |
typedef MathBaseTpl< Scalar >::MatrixXs | MatrixXs |
typedef boost::function< void(const VectorXs &, const VectorXs &)> | ReevaluationFunction |
typedef ResidualDataAbstractTpl< Scalar > | ResidualDataAbstract |
typedef MathBaseTpl< Scalar >::VectorXs | VectorXs |
Public Member Functions | |
ResidualModelNumDiffTpl (const boost::shared_ptr< Base > &model) | |
Initialize the numdiff residual model. More... | |
virtual | ~ResidualModelNumDiffTpl () |
Initialize the numdiff residual model. | |
virtual void | calc (const boost::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) |
Compute the residual vector. More... | |
virtual void | calcDiff (const boost::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) |
Compute the Jacobian of the residual vector. More... | |
virtual boost::shared_ptr< ResidualDataAbstract > | createData (DataCollectorAbstract *const data) |
Create a data object. More... | |
const Scalar | get_disturbance () const |
Return the disturbance value used by the numdiff routine. | |
const boost::shared_ptr< Base > & | get_model () const |
Return the original residual model. | |
void | set_disturbance (const Scalar disturbance) |
Modify the disturbance value used by the numdiff routine. | |
void | set_reevals (const std::vector< ReevaluationFunction > &reevals) |
Register functions that updates the shared data computed for a system rollout The updated data is used to evaluate of the gradient and hessian. More... | |
Public Attributes | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar | Scalar |
Protected Attributes | |
Scalar | disturbance_ |
Numerical disturbance used in the numerical differentiation. | |
boost::shared_ptr< Base > | model_ |
Model of the residual. | |
std::size_t | nu_ |
Control dimension. | |
std::vector< ReevaluationFunction > | reevals_ |
Functions that needs execution before calc or calcDiff. | |
boost::shared_ptr< StateAbstract > | state_ |
State description. | |
VectorXs | unone_ |
No control vector. | |
|
explicit |
Initialize the numdiff residual model.
model |
|
virtual |
Compute the residual vector.
[in] | data | Residual data |
[in] | x | State point \(\mathbf{x}\in\mathbb{R}^{ndx}\) |
[in] | u | Control input \(\mathbf{u}\in\mathbb{R}^{nu}\) |
|
virtual |
Compute the Jacobian of the residual vector.
It computes the Jacobian the residual function. It assumes that calc()
has been run first.
[in] | data | Residual data |
[in] | x | State point \(\mathbf{x}\in\mathbb{R}^{ndx}\) |
[in] | u | Control input \(\mathbf{u}\in\mathbb{R}^{nu}\) |
|
virtual |
Create a data object.
data | Data collector used by the original model |
void set_reevals | ( | const std::vector< ReevaluationFunction > & | reevals | ) |
Register functions that updates the shared data computed for a system rollout The updated data is used to evaluate of the gradient and hessian.
reevals | are the registered functions. |