proxsuite-nlp  0.10.0
A primal-dual augmented Lagrangian-type solver for nonlinear programming on manifolds.
Loading...
Searching...
No Matches
pdal.hpp
Go to the documentation of this file.
1
3#pragma once
4
7
8namespace proxsuite {
9namespace nlp {
10
23template <typename _Scalar> struct ALMeritFunctionTpl {
24public:
25 using Scalar = _Scalar;
30
31 ALMeritFunctionTpl(const Problem &prob, const Scalar &beta);
32
33 Scalar evaluate(const ConstVectorRef &x, const std::vector<VectorRef> &lams,
34 Workspace &workspace) const;
35
36 void computeGradient(const std::vector<VectorRef> &lams,
37 Workspace &workspace) const;
38
39private:
40 // fraction of mu to use in linesearch; reference to outer algorithm param
41 const Scalar &beta_;
42 const Problem &problem_;
43};
44
45} // namespace nlp
46} // namespace proxsuite
47
48#include "proxsuite-nlp/pdal.hxx"
49
50#ifdef PROXSUITE_NLP_ENABLE_TEMPLATE_INSTANTIATION
51#include "proxsuite-nlp/pdal.txx"
52#endif
Forward declarations and configuration macros.
#define PROXSUITE_NLP_DYNAMIC_TYPEDEFS(Scalar)
Definition math.hpp:26
Main package namespace.
Definition bcl-params.hpp:5
Primal-dual augmented Lagrangian-type merit function.
Definition pdal.hpp:23
void computeGradient(const std::vector< VectorRef > &lams, Workspace &workspace) const
Scalar evaluate(const ConstVectorRef &x, const std::vector< VectorRef > &lams, Workspace &workspace) const
ALMeritFunctionTpl(const Problem &prob, const Scalar &beta)
Packs a ConstraintSetTpl and C2FunctionTpl together.
Definition fwd.hpp:112