pyproximal.GenericIntersectionProx

class pyproximal.GenericIntersectionProx(projections: list[Callable[[ndarray[tuple[Any, ...], dtype[_ScalarT]]], ndarray[tuple[Any, ...], dtype[_ScalarT]]]], niter: int = 1000, tol: float = 1e-06, use_parallel: bool = False)[source]

The proximal operator corresponding to the convex projection to the intersection of convex sets using Dykstra’s algorithm.

Parameters:
projectionslist

A list of projection functions \(P_1, \ldots, P_m\).

niterint, optional, default=1000

The maximum number of iterations.

tolfloat, optional, default=1e-6

Tolerance on change of the solution (used as stopping criterion). If tol=0, run until niter is reached.

use_parallelbool, optional, default=False

If True, use the parallel version when $m=2$.

See also

pyproximal.projection.GenericIntersectionProj

The corresponding convex projection.

Notes

As the intersection of convex sets is an indicator function, the proximal operator corresponds to its convex projection (see pyproximal.projection.GenericIntersectionProj for details).

Methods

__init__(projections[, niter, tol, use_parallel])

affine_addition(v)

Affine addition

chain(g)

Chain

grad(x)

Gradient of the Moreau envelope of the function.

postcomposition(sigma)

Postcomposition

precomposition(a, b)

Precomposition

prox(**kwargs)

proxdual(**kwargs)

Examples using pyproximal.GenericIntersectionProx

Dykstra’s algorithms

Dykstra's algorithms