aligator  0.6.1
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
log-residual-cost.hpp
Go to the documentation of this file.
1
3#pragma once
4
6
7namespace aligator {
8
10template <typename Scalar> struct LogResidualCostTpl : CostAbstractTpl<Scalar> {
12 using CostDataAbstract = CostDataAbstractTpl<Scalar>;
13 using Data = CompositeCostDataTpl<Scalar>;
14 using StageFunction = StageFunctionTpl<Scalar>;
15 using Base = CostAbstractTpl<Scalar>;
16 using Manifold = ManifoldAbstractTpl<Scalar>;
17
19 shared_ptr<StageFunction> residual_;
20
21 LogResidualCostTpl(shared_ptr<Manifold> space,
22 shared_ptr<StageFunction> function,
23 const ConstVectorRef &scale);
24
25 LogResidualCostTpl(shared_ptr<Manifold> space,
26 shared_ptr<StageFunction> function, const Scalar scale);
27
28 void evaluate(const ConstVectorRef &x, const ConstVectorRef &u,
29 CostDataAbstract &data) const;
30
31 void computeGradients(const ConstVectorRef &x, const ConstVectorRef &u,
32 CostDataAbstract &data) const;
33
34 void computeHessians(const ConstVectorRef &, const ConstVectorRef &,
35 CostDataAbstract &data) const;
36
37 shared_ptr<CostDataAbstract> createData() const {
38 return std::make_shared<Data>(this->ndx(), this->nu,
39 residual_->createData());
40 }
41};
42
43extern template struct LogResidualCostTpl<context::Scalar>;
44
45} // namespace aligator
46
47#include "./log-residual-cost.hxx"
Main package namespace.
Stage costs for control problems.
shared_ptr< Manifold > space
State dimension.
Log-barrier of an underlying cost function.
shared_ptr< StageFunction > residual_
shared_ptr< CostDataAbstract > createData() const
LogResidualCostTpl(shared_ptr< Manifold > space, shared_ptr< StageFunction > function, const Scalar scale)
CompositeCostDataTpl< Scalar > Data
LogResidualCostTpl(shared_ptr< Manifold > space, shared_ptr< StageFunction > function, const ConstVectorRef &scale)
ManifoldAbstractTpl< Scalar > Manifold
void evaluate(const ConstVectorRef &x, const ConstVectorRef &u, CostDataAbstract &data) const
Evaluate the cost function.
void computeHessians(const ConstVectorRef &, const ConstVectorRef &, CostDataAbstract &data) const
Compute the cost Hessians .
void computeGradients(const ConstVectorRef &x, const ConstVectorRef &u, CostDataAbstract &data) const
Compute the cost gradients .