alpaqa develop
Nonconvex constrained optimization
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
Classes | Variables
Functions and operators

Detailed Description

(Proximable) functions and operators.

Classes

struct  L1Norm< Conf, Weight >
 ℓ₁-norm. More...
 
struct  L1NormComplex< Conf, Weight >
 ℓ₁-norm of complex numbers. More...
 
struct  NuclearNorm< Conf, SVD >
 Nuclear norm (ℓ₁-norm of singular values). More...
 

Variables

struct alpaqa::prox_fn prox
 Compute the proximal mapping.
 
struct alpaqa::prox_step_fn prox_step
 Compute a generalized forward-backward step.
 

Variable Documentation

◆ prox

Compute the proximal mapping.

outproxγfunc(in).

Parameters
funcThe proximable function h:IRnIRn to apply the proximal mapping of.
[in]inInput vector or matrix x, e.g. current iterate.
[out]outProximal mapping of (γh) at x.
x^proxγh(x)
[in]γProximal step size γ.
Returns
The value of the function evaluated in the output, h(x^).

◆ prox_step

Compute a generalized forward-backward step.

outproxγfunc(in+γfwdfwd_step)fb_stepoutin.

Parameters
funcThe proximable function h:IRnIRn to apply the proximal mapping of.
[in]inInput vector or matrix x, e.g. current iterate.
[in]fwd_stepStep d to add to x before computing the proximal mapping. Scaled by γfwd.
[out]outProximal mapping of (γh) at x+γfwdd.
x^proxγh(x+γfwdd)
[out]fb_stepForward-backward step p.
p=x^x^
[in]γProximal step size γ.
[in]γ_fwdForward step size γfwd.
Returns
The value of the function evaluated in the output, h(x^).

This function can be used to implement the TypeErasedProblem::eval_prox_grad_step function:

struct Problem {
real_t eval_prox_grad_step(real_t γ, crvec x, crvec grad_ψ, rvec x̂, rvec p) const {
return alpaqa::prox_step(h, x, grad_ψ, x̂, p, γ, -γ);
}
};
struct alpaqa::prox_step_fn prox_step
Compute a generalized forward-backward step.
Nuclear norm (ℓ₁-norm of singular values).

Note the negative sign for the forward step size.

Examples
C++/Advanced/lasso-fbs.cpp.