pyproximal.VStack#

class pyproximal.VStack(ops, nn=None, restr=None)[source]#

Vertical stacking.

Stack a set of N proximal operators vertically. This operator can be used for separable inputs, where the overall proximal operator can be computed as the stack of proximal operators on parts of the input vector.

Parameters
opslist

Proximal operators to be stacked

nnlist, optional

Size of each portion of the input vector (to be used when different portions are in consecutive order)

restrlist, optional

List of pylops.Restriction operators extracting the subset of interest (to be used when different portions are not in consecutive order). It is user responsibility to ensure that all elements of the input vector are used exactly once)

Notes

Given an input vector \(\mathbf{x}\) to which a number of \(N\) functions are applied to different portions of the vector as:

\[f(\mathbf{x}) = \sum_{i=1}^N f_i(\mathbf{x}_i)\]

the related proximal operator becomes:

\[\prox_{\tau f}(\mathbf{x}) = \left( \prox_{\tau f_1}(\mathbf{x}_1), \ldots, \tau f_N(\mathbf{x}_N) \right)\]

Methods

__init__(ops[, nn, restr])

affine_addition(v)

Affine addition

chain(g)

Chain

grad(x)

Compute gradient

postcomposition(sigma)

Postcomposition

precomposition(a, b)

Precomposition

prox(**kwargs)

proxdual(**kwargs)