aligator  0.6.1
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
merit-function.hpp
Go to the documentation of this file.
1
3#pragma once
4
5#include "aligator/fwd.hpp"
8
9namespace aligator {
10
11template <typename Scalar>
12Scalar costDirectionalDerivative(const WorkspaceTpl<Scalar> &workspace,
13 const TrajOptDataTpl<Scalar> &prob_data);
14
46template <typename _Scalar> struct PDALFunction {
47 using Scalar = _Scalar;
49 using StageModel = StageModelTpl<Scalar>;
50 using StageData = StageDataTpl<Scalar>;
51 using StageFunctionData = StageFunctionDataTpl<Scalar>;
52 using ConstraintStack = ConstraintStackTpl<Scalar>;
53 using Workspace = WorkspaceTpl<Scalar>;
54 using TrajOptProblem = TrajOptProblemTpl<Scalar>;
55 using TrajOptData = TrajOptDataTpl<Scalar>;
56 using CstrProximalScaler = ConstraintProximalScalerTpl<Scalar>;
57
60 static Scalar evaluate(const Scalar mu, const TrajOptProblem &problem,
61 const std::vector<VectorXs> &lams,
62 const std::vector<VectorXs> &vs, Workspace &workspace);
63
65 const TrajOptProblem &problem,
66 const std::vector<VectorXs> &lams,
67 const std::vector<VectorXs> &vs,
68 Workspace &workspace);
69};
70
71} // namespace aligator
72
73#include "merit-function.hxx"
74
75#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
76#include "merit-function.txx"
77#endif
Forward declarations.
Main package namespace.
Scalar costDirectionalDerivative(const WorkspaceTpl< Scalar > &workspace, const TrajOptDataTpl< Scalar > &prob_data)
Primal-dual augmented Lagrangian merit function.
ConstraintStackTpl< Scalar > ConstraintStack
TrajOptProblemTpl< Scalar > TrajOptProblem
static Scalar evaluate(const Scalar mu, const TrajOptProblem &problem, const std::vector< VectorXs > &lams, const std::vector< VectorXs > &vs, Workspace &workspace)
Compute the merit function at the trial point.
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
WorkspaceTpl< Scalar > Workspace
ConstraintProximalScalerTpl< Scalar > CstrProximalScaler
static Scalar directionalDerivative(const Scalar mu, const TrajOptProblem &problem, const std::vector< VectorXs > &lams, const std::vector< VectorXs > &vs, Workspace &workspace)