Nonconvex constrained optimization
Loading...
Searching...
No Matches
prox_step_fn Struct Reference

#include <alpaqa/functions/prox.hpp>

Detailed Description

Proximal mapping customization point for forward-backward steps.

See also
https://wg21.link/P1895R0

Definition at line 68 of file prox.hpp.

Collaboration diagram for prox_step_fn:

Public Member Functions

template<class T>
requires requires { typename T::config_t; requires is_config_v<typename T::config_t>; requires guanaqo::tag_invocable< prox_step_fn, T &, typename T::config_t::crmat, typename T::config_t::crmat, typename T::config_t::rmat, typename T::config_t::rmat, typename T::config_t::real_t, typename T::config_t::real_t>; requires std::is_same_v< guanaqo::tag_invoke_result_t< prox_step_fn, T &, typename T::config_t::crmat, typename T::config_t::crmat, typename T::config_t::rmat, typename T::config_t::rmat, typename T::config_t::real_t, typename T::config_t::real_t>, typename T::config_t::real_t>; }
auto operator() (T &func, typename T::config_t::crmat in, typename T::config_t::crmat fwd_step, typename T::config_t::rmat out, typename T::config_t::rmat fb_step, typename T::config_t::real_t γ=1, typename T::config_t::real_t γ_fwd=-1) const noexcept(guanaqo::is_nothrow_tag_invocable_v< prox_step_fn, T &, typename T::config_t::crmat, typename T::config_t::crmat, typename T::config_t::rmat, typename T::config_t::rmat, typename T::config_t::real_t, typename T::config_t::real_t >) -> typename T::config_t::real_t
template<class T>
requires requires { typename T::config_t; requires is_config_v<typename T::config_t>; requires !guanaqo::tag_invocable< prox_step_fn, T &, typename T::config_t::crmat, typename T::config_t::crmat, typename T::config_t::rmat, typename T::config_t::rmat, typename T::config_t::real_t, typename T::config_t::real_t>; requires std::invocable<prox_fn, T &, typename T::config_t::crmat, typename T::config_t::rmat, typename T::config_t::real_t>; }
auto operator() (T &func, typename T::config_t::crmat in, typename T::config_t::crmat fwd_step, typename T::config_t::rmat out, typename T::config_t::rmat fb_step, typename T::config_t::real_t γ=1, typename T::config_t::real_t γ_fwd=-1) const noexcept(std::is_nothrow_invocable_v< prox_fn, T &, typename T::config_t::crmat, typename T::config_t::rmat, typename T::config_t::real_t >) -> typename T::config_t::real_t
 Default implementation for prox_step if only prox is provided.

Member Function Documentation

◆ operator()() [1/2]

template<class T>
requires requires { typename T::config_t; requires is_config_v<typename T::config_t>; requires guanaqo::tag_invocable< prox_step_fn, T &, typename T::config_t::crmat, typename T::config_t::crmat, typename T::config_t::rmat, typename T::config_t::rmat, typename T::config_t::real_t, typename T::config_t::real_t>; requires std::is_same_v< guanaqo::tag_invoke_result_t< prox_step_fn, T &, typename T::config_t::crmat, typename T::config_t::crmat, typename T::config_t::rmat, typename T::config_t::rmat, typename T::config_t::real_t, typename T::config_t::real_t>, typename T::config_t::real_t>; }
auto operator() ( T & func,
typename T::config_t::crmat in,
typename T::config_t::crmat fwd_step,
typename T::config_t::rmat out,
typename T::config_t::rmat fb_step,
typename T::config_t::real_t γ = 1,
typename T::config_t::real_t γ_fwd = -1 ) const -> typename T::config_t::real_t
inlinenoexcept

Definition at line 91 of file prox.hpp.

◆ operator()() [2/2]

template<class T>
requires requires { typename T::config_t; requires is_config_v<typename T::config_t>; requires !guanaqo::tag_invocable< prox_step_fn, T &, typename T::config_t::crmat, typename T::config_t::crmat, typename T::config_t::rmat, typename T::config_t::rmat, typename T::config_t::real_t, typename T::config_t::real_t>; requires std::invocable<prox_fn, T &, typename T::config_t::crmat, typename T::config_t::rmat, typename T::config_t::real_t>; }
auto operator() ( T & func,
typename T::config_t::crmat in,
typename T::config_t::crmat fwd_step,
typename T::config_t::rmat out,
typename T::config_t::rmat fb_step,
typename T::config_t::real_t γ = 1,
typename T::config_t::real_t γ_fwd = -1 ) const -> typename T::config_t::real_t
inlinenoexcept

Default implementation for prox_step if only prox is provided.

Definition at line 124 of file prox.hpp.


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