Returns a prox-capable wrapper for the ordered and weighted l1-norm function f(x) = sum(lambda * sort(abs(x), 'descend'))


lambda (jax.numpy.ndarray) – A strictly positive vector which is sorted in decreasing order


A prox-capable function

Return type


Let \(x \in \RR^n\). Let \(|x|\) represent a vector of absolute values of entries in \(x\). Let \(|x|_{\downarrow}\) represent a vector consisting of entries in \(|x|\) sorted in descending order. Let \(|x|_{(1)} \geq |x|_{(2)} \geq |x|_{(3)} \geq \dots \geq |x|_{(n)}\) represent the order statistic of \(x\), i.e. entries in \(x\) arranged in descending order by magnitude.

Let \(\lambda \in \RR^n_{+}\) be a weight vector such that \(\lambda_1 \geq \lambda_2 \geq \dots \geq \lambda_n\) and \(\lambda \neq 0\) i.e. not all entries in \(\lambda\) are zero.

Then the ordered weighted \(\ell_1\) norm of \(x\) w.r.t. the weight vector \(\lambda\) is defined as:

(1)\[J_{\lambda} (x) = \sum_{1}^n \lambda_i | x |_{(i)}\]

The function is computed in following steps:

  • Take absolute values of entries in x

  • Sort the entries of x in descending order

  • Multiply the sorted entries with entries in lambda (component wise)

  • Compute the sum of the entries

For the derivation of the proximal operator for the ordered and weighted l1 norm, see [lBvdBSC13].