cr.sparse.opt.ProxCapable

class cr.sparse.opt.ProxCapable(func: Callable[[jax.Array], float], prox_op: Callable[[jax.Array, float], jax.Array], prox_vec_val: Callable[[jax.Array, float], Tuple[float, jax.Array]])[source]

Represents a function which is prox capable

The proximal operator for a function \(f\) is defined as

(1)\[p_f(x, t) = \text{arg} \min_{z \in \RR^n} f(x) + \frac{1}{2t} \| z - x \|_2^2\]

Let op be a variable of type ProxCapable which represents some prox-capable function \(f\). Then:

  • op.func(x) returns the function value \(f(x)\).

  • op.prox_op(x) returns the proximal vector for a step size: \(z = p_f(x, t)\).

  • op.prox_vec_val(x) returns the pair \(z,v = p_f(x, t), f(z)\).

Attributes

func

Definition of a prox capable function

prox_op

Proximal operator for the function

prox_vec_val

A wrapper function to evaluate the proximal vector and the function value at the vector