Proximal operator of the nuclear norm, aka trace norm
strength : float
Level of penalization
n_rows : int
Number of rows in the matrix on which we apply this penalization. The number of columns is then given by (start - end) / n_rows
range : tuple of two int, default=`None`
Range on which the prox is applied. If
Nonethen the prox is applied on the whole vector
positive : bool, default=`False`
If True, apply nuclear-norm penalization followed by a truncation to make all entries non-negative
rank_max : int, default=`None`
Maximum rank to be used in the SVD (not used yet…)
Notes
The coeffs on which we apply this prox must be flattened (using
np.ravel for instance), and not two-dimensional.
This operator is not usable from a solver with wrapped C++ code.
It is based on scipy.linalg.svd SVD routine and is not intended
for use on large matrices