cyqlone develop
Fast, parallel and vectorized solver for linear systems with optimal control structure.
Loading...
Searching...
No Matches
cyqlone::qpalm::LineSearch< Vec > Struct Template Reference

Detailed Description

template<class Vec>
struct cyqlone::qpalm::LineSearch< Vec >

Definition at line 35 of file linesearch.tpp.

Classes

struct  Result

Public Types

using vec_t = Vec

Public Member Functions

Result operator() (auto &ctx, auto &backend, real_t η, real_t β, const vec_t &Σ, const vec_t &y, const vec_t &Ad, const vec_t &Ax, const vec_t &b_min, const vec_t &b_max)
 Perform an exact line search on the augmented Lagrangian.

Static Public Member Functions

static Result find_stepsize_base (ABSum_t a, ABSum_t b, size_t i0, std::span< Breakpoint > pos_bp)
static Result find_stepsize (ABSum_t a, ABSum_t b, size_t i0, std::span< Breakpoint > pos_bp, bool partition_1=true)

Public Attributes

LineSearchSettings settings
std::vector< Breakpointbreakpoints

Class Documentation

◆ cyqlone::qpalm::LineSearch::Result

struct cyqlone::qpalm::LineSearch::Result
Class Members
real_t τ
size_t index

Member Typedef Documentation

◆ vec_t

template<class Vec>
using cyqlone::qpalm::LineSearch< Vec >::vec_t = Vec

Definition at line 36 of file linesearch.tpp.

Member Function Documentation

◆ operator()()

template<class Vec>
auto cyqlone::qpalm::LineSearch< Vec >::operator() ( auto & ctx,
auto & backend,
real_t η,
real_t β,
const vec_t & Σ,
const vec_t & y,
const vec_t & Ad,
const vec_t & Ax,
const vec_t & b_min,
const vec_t & b_max )

Perform an exact line search on the augmented Lagrangian.

Implements Algorithm 2 in the QPALM paper.

Returns
τ Optimal step size \( \tau_\star \)
Parameters
η\( \eta = \inprod{d}{\xi} \)
β\( \beta = \inprod{d}{\grad\tilde f_k(x^{k,\nu})} \)
ΣPenalty factor \( \Sigma_k \) (diagonal)
yLagrange multipliers \( y^k \)
AdMatrix-vector product \( A d \)
AxMatrix-vector product \( A x^{k,\nu} \)
b_minConstraint lower bound \( b_\mathrm{min} \)
b_maxConstraint upper bound \( b_\mathrm{max} \)

Definition at line 123 of file linesearch.tpp.

◆ find_stepsize_base()

template<class Vec>
auto cyqlone::qpalm::LineSearch< Vec >::find_stepsize_base ( ABSum_t a,
ABSum_t b,
size_t i0,
std::span< Breakpoint > pos_bp )
static

Definition at line 54 of file linesearch.tpp.

◆ find_stepsize()

template<class Vec>
auto cyqlone::qpalm::LineSearch< Vec >::find_stepsize ( ABSum_t a,
ABSum_t b,
size_t i0,
std::span< Breakpoint > pos_bp,
bool partition_1 = true )
static

Definition at line 77 of file linesearch.tpp.

Member Data Documentation

◆ settings

template<class Vec>
LineSearchSettings cyqlone::qpalm::LineSearch< Vec >::settings

Definition at line 37 of file linesearch.tpp.

◆ breakpoints

template<class Vec>
std::vector<Breakpoint> cyqlone::qpalm::LineSearch< Vec >::breakpoints

Definition at line 38 of file linesearch.tpp.


The documentation for this struct was generated from the following file: