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

Detailed Description

template<class Backend>
struct cyqlone::qpalm::SolverImplementation< Backend >

Definition at line 20 of file solver.tpp.

Public Types

using backend_type = Backend
using active_set_t = typename backend_type::active_set_t
using ineq_vec_t = typename backend_type::ineq_constr_vec_t
using eq_vec_t = typename backend_type::eq_constr_vec_t
using var_vec_t = typename backend_type::var_vec_t

Public Member Functions

void ensure_storage (backend_type &backend)
SolverStatus do_main_loop (Backend::Context &ctx, backend_type &backend, const Settings &settings, guanaqo::AtomicStopSignal &stop_signal, SolverStats &stats)

Static Public Member Functions

static void initialize_penalty_y (Backend::Context &ctx, backend_type &backend, real_t f0, const ineq_vec_t &e0, ineq_vec_t &Σ, const Settings &settings)
static index_t update_penalty_y (Backend::Context &ctx, backend_type &backend, ineq_vec_t &Σ, const ineq_vec_t &e, const ineq_vec_t &e_old, const Settings &settings)
static real_t update_penalty_x (real_t S, const Settings &settings)

Public Attributes

LineSearch< ineq_vec_tlinesearch
active_set_t active_set
active_set_t active_set_old
ineq_vec_t Σ
ineq_vec_t y
ineq_vec_t ŷ
ineq_vec_t e
ineq_vec_t e_old
ineq_vec_t Ax
ineq_vec_t Ad
eq_vec_t Mxb
eq_vec_t Δλ
eq_vec_t λ
var_vec_t x
var_vec_t grad
var_vec_t Mᵀλ
var_vec_t Aᵀŷ
var_vec_t x_outer
var_vec_t MᵀΔλ
var_vec_t d
var_vec_t ξ
var_vec_t grad_add

Member Typedef Documentation

◆ backend_type

template<class Backend>
using cyqlone::qpalm::SolverImplementation< Backend >::backend_type = Backend

Definition at line 21 of file solver.tpp.

◆ active_set_t

template<class Backend>
using cyqlone::qpalm::SolverImplementation< Backend >::active_set_t = typename backend_type::active_set_t

Definition at line 24 of file solver.tpp.

◆ ineq_vec_t

template<class Backend>
using cyqlone::qpalm::SolverImplementation< Backend >::ineq_vec_t = typename backend_type::ineq_constr_vec_t

Definition at line 25 of file solver.tpp.

◆ eq_vec_t

template<class Backend>
using cyqlone::qpalm::SolverImplementation< Backend >::eq_vec_t = typename backend_type::eq_constr_vec_t

Definition at line 26 of file solver.tpp.

◆ var_vec_t

template<class Backend>
using cyqlone::qpalm::SolverImplementation< Backend >::var_vec_t = typename backend_type::var_vec_t

Definition at line 27 of file solver.tpp.

Member Function Documentation

◆ initialize_penalty_y()

template<class Backend>
void cyqlone::qpalm::SolverImplementation< Backend >::initialize_penalty_y ( Backend::Context & ctx,
backend_type & backend,
real_t f0,
const ineq_vec_t & e0,
ineq_vec_t & Σ,
const Settings & settings )
inlinestatic

Definition at line 30 of file solver.tpp.

◆ update_penalty_y()

template<class Backend>
index_t cyqlone::qpalm::SolverImplementation< Backend >::update_penalty_y ( Backend::Context & ctx,
backend_type & backend,
ineq_vec_t & Σ,
const ineq_vec_t & e,
const ineq_vec_t & e_old,
const Settings & settings )
inlinestatic

Definition at line 44 of file solver.tpp.

◆ update_penalty_x()

template<class Backend>
real_t cyqlone::qpalm::SolverImplementation< Backend >::update_penalty_x ( real_t S,
const Settings & settings )
inlinestatic

Definition at line 76 of file solver.tpp.

◆ ensure_storage()

template<class Backend>
void cyqlone::qpalm::SolverImplementation< Backend >::ensure_storage ( backend_type & backend)
inline

Definition at line 81 of file solver.tpp.

◆ do_main_loop()

template<class Backend>
SolverStatus cyqlone::qpalm::SolverImplementation< Backend >::do_main_loop ( Backend::Context & ctx,
backend_type & backend,
const Settings & settings,
guanaqo::AtomicStopSignal & stop_signal,
SolverStats & stats )

Definition at line 124 of file solver.tpp.

Member Data Documentation

◆ linesearch

template<class Backend>
LineSearch<ineq_vec_t> cyqlone::qpalm::SolverImplementation< Backend >::linesearch

Definition at line 28 of file solver.tpp.

◆ active_set

template<class Backend>
active_set_t cyqlone::qpalm::SolverImplementation< Backend >::active_set

Definition at line 93 of file solver.tpp.

◆ active_set_old

template<class Backend>
active_set_t cyqlone::qpalm::SolverImplementation< Backend >::active_set_old

Definition at line 93 of file solver.tpp.

◆ Σ

template<class Backend>
ineq_vec_t cyqlone::qpalm::SolverImplementation< Backend >::Σ

Definition at line 94 of file solver.tpp.

◆ y

template<class Backend>
ineq_vec_t cyqlone::qpalm::SolverImplementation< Backend >::y

Definition at line 94 of file solver.tpp.

◆ ŷ

template<class Backend>
ineq_vec_t cyqlone::qpalm::SolverImplementation< Backend >::ŷ

Definition at line 94 of file solver.tpp.

◆ e

template<class Backend>
ineq_vec_t cyqlone::qpalm::SolverImplementation< Backend >::e

Definition at line 94 of file solver.tpp.

◆ e_old

template<class Backend>
ineq_vec_t cyqlone::qpalm::SolverImplementation< Backend >::e_old

Definition at line 94 of file solver.tpp.

◆ Ax

template<class Backend>
ineq_vec_t cyqlone::qpalm::SolverImplementation< Backend >::Ax

Definition at line 94 of file solver.tpp.

◆ Ad

template<class Backend>
ineq_vec_t cyqlone::qpalm::SolverImplementation< Backend >::Ad

Definition at line 94 of file solver.tpp.

◆ Mxb

template<class Backend>
eq_vec_t cyqlone::qpalm::SolverImplementation< Backend >::Mxb

Definition at line 95 of file solver.tpp.

◆ Δλ

template<class Backend>
eq_vec_t cyqlone::qpalm::SolverImplementation< Backend >::Δλ

Definition at line 95 of file solver.tpp.

◆ λ

template<class Backend>
eq_vec_t cyqlone::qpalm::SolverImplementation< Backend >::λ

Definition at line 95 of file solver.tpp.

◆ x

template<class Backend>
var_vec_t cyqlone::qpalm::SolverImplementation< Backend >::x

Definition at line 96 of file solver.tpp.

◆ grad

template<class Backend>
var_vec_t cyqlone::qpalm::SolverImplementation< Backend >::grad

Definition at line 96 of file solver.tpp.

◆ Mᵀλ

template<class Backend>
var_vec_t cyqlone::qpalm::SolverImplementation< Backend >::Mᵀλ

Definition at line 96 of file solver.tpp.

◆ Aᵀŷ

template<class Backend>
var_vec_t cyqlone::qpalm::SolverImplementation< Backend >::Aᵀŷ

Definition at line 96 of file solver.tpp.

◆ x_outer

template<class Backend>
var_vec_t cyqlone::qpalm::SolverImplementation< Backend >::x_outer

Definition at line 96 of file solver.tpp.

◆ MᵀΔλ

template<class Backend>
var_vec_t cyqlone::qpalm::SolverImplementation< Backend >::MᵀΔλ

Definition at line 96 of file solver.tpp.

◆ d

template<class Backend>
var_vec_t cyqlone::qpalm::SolverImplementation< Backend >::d

Definition at line 96 of file solver.tpp.

◆ ξ

template<class Backend>
var_vec_t cyqlone::qpalm::SolverImplementation< Backend >::ξ

Definition at line 96 of file solver.tpp.

◆ grad_add

template<class Backend>
var_vec_t cyqlone::qpalm::SolverImplementation< Backend >::grad_add

Definition at line 96 of file solver.tpp.


The documentation for this struct was generated from the following file:
  • src/qpalm/include/cyqlone/qpalm/implementation/solver.tpp