proximal_operators: Proximal Mapping Operators and Moreau-Yosida Envelope...

proximal_operatorsR Documentation

Proximal Mapping Operators and Moreau-Yosida Envelope Gradients

Description

Evaluates proximal operators for common non-smooth penalties (L1 norm, nuclear norm, L2 norm, elastic net) and computes the gradient of the Moreau-Yosida envelope as described in Shukla, Vats, and Chi (2025).

Usage

prox_l1(x, tau)

prox_l2(x, tau)

prox_elastic_net(x, tau, alpha = 0.5)

prox_nuclear(x, tau)

grad_my_envelope(x, prox_fn = "l1", lambda_g = 0.01, ...)

Arguments

x

Numeric vector or matrix. Parameter value at which to evaluate the operator.

tau

Numeric scalar. Thresholding parameter (typically lambda_g * scale).

alpha

Numeric scalar in [0, 1]. Mixing parameter for elastic net penalty.

prox_fn

Function or character string. Proximal mapping function or name of built-in proximal operator ("l1", "l2", "elastic_net", "nuclear_norm", "none").

lambda_g

Numeric scalar > 0. Moreau-Yosida regularization parameter.

...

Additional arguments passed to the proximal operator.

Details

The Moreau-Yosida envelope of a proper, lower-semicontinuous, convex function g with scaling parameter \lambda_g > 0 is defined as

g_{\lambda_g}(x) = \inf_y \{g(y) + \frac{1}{2\lambda_g} \|y - x\|^2\}.

Its gradient is given by

\nabla g_{\lambda_g}(x) = \frac{1}{\lambda_g}(x - \mathrm{prox}_{\lambda_g}^{g}(x)).

Value

For prox_l1, prox_l2, prox_elastic_net, and prox_nuclear, returns a numeric vector or matrix of class "numeric" or "matrix" (matching the shape and dimensions of input x) representing the evaluated proximal point operator. For grad_my_envelope, returns a numeric vector or matrix of class "numeric" or "matrix" containing the computed gradient of the Moreau-Yosida envelope at x.

References

Shukla A, Vats D, Chi EC (2025). “Proximal Hamiltonian Monte Carlo.” arXiv preprint, \Sexpr[results=rd]{tools:::Rd_expr_doi("10.48550/arXiv.2510.22252")}.


pHMC documentation built on Aug. 21, 2026, 5:18 p.m.