alpaqa 0.0.1
Nonconvex constrained optimization
panoc-direction-update.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <alpaqa/util/box.hpp>
4
5namespace alpaqa {
6
7template <class DirectionProviderT>
9
10 static void initialize(DirectionProviderT &dp, crvec x₀, crvec x̂₀,
11 crvec p₀, crvec grad₀) = delete;
12
13 static bool update(DirectionProviderT &dp, crvec xₖ, crvec xₖ₊₁,
14 crvec pₖ, crvec pₖ₊₁, crvec gradₖ₊₁,
15 const Box &C, real_t γₖ₊₁) = delete;
16
17 /// Apply the direction estimation in the current point.
18 /// @param[in] dp
19 /// Direction provider (e.g. LBFGS, Anderson Acceleration).
20 /// @param[in] xₖ
21 /// Current iterate.
22 /// @param[in] x̂ₖ
23 /// Result of proximal gradient step in current iterate.
24 /// @param[in] pₖ
25 /// Proximal gradient step between x̂ₖ and xₖ.
26 /// @param[in] γ
27 /// H₀ = γI for L-BFGS
28 /// @param[out] qₖ
29 /// Resulting step.
30 static bool apply(DirectionProviderT &dp, crvec xₖ, crvec x̂ₖ,
31 crvec pₖ, real_t γ, rvec qₖ) = delete;
32
33 static void changed_γ(DirectionProviderT &dp, real_t γₖ,
34 real_t old_γₖ) = delete;
35};
36
37} // namespace alpaqa
Eigen::Ref< const vec > crvec
Default type for immutable references to vectors.
Definition: vec.hpp:18
double real_t
Default floating point type.
Definition: vec.hpp:8
Eigen::Ref< vec > rvec
Default type for mutable references to vectors.
Definition: vec.hpp:16
static bool update(DirectionProviderT &dp, crvec xₖ, crvec xₖ₊₁, crvec pₖ, crvec pₖ₊₁, crvec gradₖ₊₁, const Box &C, real_t γₖ₊₁)=delete
static bool apply(DirectionProviderT &dp, crvec xₖ, crvec x̂ₖ, crvec pₖ, real_t γ, rvec qₖ)=delete
Apply the direction estimation in the current point.
static void changed_γ(DirectionProviderT &dp, real_t γₖ, real_t old_γₖ)=delete
static void initialize(DirectionProviderT &dp, crvec x₀, crvec x̂₀, crvec p₀, crvec grad₀)=delete