proximal_composition

odl.solvers.nonsmooth.proximal_operators.proximal_composition(proximal, operator, mu)[source]

Proximal operator factory of functional composed with unitary operator.

For a functional F and a linear unitary Operator L this is the factory for the proximal operator of F * L.

Parameters:
proximalcallable

A factory function that, when called with a step size returns the proximal operator of F

operatorOperator

The operator to compose the functional with

muoperator.field element

Scalar such that (operator.adjoint * operator)(x) = mu * x

Returns:
prox_factoryfunction

Factory for the proximal operator to be initialized

Notes

Given a linear operator L with the property that for a scalar \mu

L^*(L(x)) = \mu * x

and a convex function F, the following identity holds

\mathrm{prox}_{\sigma F \circ L}(x) = x + \frac{1}{\mu}
L^* \left( \mathrm{prox}_{\mu \sigma F}(Lx) - Lx \right)

This factory function implements this functionality.

There is no simple formula for more general operators.

The function cannot verify that the operator is unitary, the user needs to verify this.

For reference on the identity used, see [CP2011c].

References

[CP2011c] Combettes, P L, and Pesquet, J-C. Proximal splitting methods in signal processing. In: Bauschke, H H, Burachik, R S, Combettes, P L, Elser, V, Luke, D R, and Wolkowicz, H. Fixed-point algorithms for inverse problems in science and engineering, Springer, 2011.