#include <alpaqa/functions/prox.hpp>
Proximal mapping customization point for forward-backward steps.
- See also
- https://wg21.link/P1895R0
Definition at line 68 of file prox.hpp.
|
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.
|
◆ 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 |
◆ 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:
- src/alpaqa/include/alpaqa/functions/prox.hpp