pylops_mpi.proximal.proximal.MPIL21#
- class pylops_mpi.proximal.proximal.MPIL21(ndim, sigma=1.0)[source]#
\(L_{2,1}\) proximal operator.
Implement a distributed version of the \(L_{2,1}\) matrix norm.
- Parameters:
- ndim
int Number of dimensions \(N_{dim}\). Used to reshape the input array in a matrix of size \(N_{dim} \times N'_{x}\) where \(N'_x = \frac{N_x}{N_{dim}}\). Note that the input vector
xmust be apylops_mpi.StackedDistributedArraythat containsndimpylops_mpi.DistributedArray.- sigma
float, optional Multiplicative coefficient of \(L_{2,1}\) norm
- ndim
Notes
This is a distributed implementation of the \(L_{2,1}\) norm.
The matrix is here represented as a
pylops_mpi.StackedDistributedArraywith each column corresponding to apylops_mpi.DistributedArray.The norm evaluation simply requires the creation of an intermediate
pylops_mpi.DistributedArraythat contains the sum of the square root of the sum of the squares of the corresponding elements in thepylops_mpi.DistributedArrayof thepylops_mpi.StackedDistributedArraythe underlying distributed array. This is further reduced by computing the L1 norm.The proximal operator requires once again the creation of the same intermediate
pylops_mpi.DistributedArray, followed by a per-element independent re-scaling.Methods
__init__(ndim[, sigma])postcomposition(sigma)Postcomposition
precomposition(a, b)Precomposition
prox(**kwargs)proxdual(**kwargs)sum_squared(x)