SPGL1 is a Matlab solver for large-scale one-norm regularized least squares. It is designed to solve any of the following three problems:
basis pursuit denoise
SPGL1 relies only on matrix-vector operations and and accepts both explicit matrices and functions that evaluate these products. SPGL1 is suitable for problems that are in the complex domain. The theory underlying SPGL1 is described in these papers:
In version 1.6, the core SPGL1 routine was generalized to solve the above three problems with replaced by any norm on . In order to do so, it requires that routines are provided for computing the
This framework can be used to implement solvers for MMV and group-sparse BPDN (see below.) Also, Check out these demos.
Multiple measurement vectors (MMV)
The MMV version of BPDN currently implemented solves
where the mixed (1,2)-norm is defined by the sum of the two-norms of the rows of X.
In group-sparse BPDN, each entry of is assigned to a group. Denoting by the indices of group , the group-sparse BPDN problem is
We would be delighted to hear from you if you find SPGL1 useful, or if you have any suggestions, contributions, or bug reports. Please send these to
SPGL1 is distributed under the GNU Public License.
This research is supported in part by an NSERC Discovery Grant and by an NSERC Collaborative Research and Development Grant (334810-05) that funds the DNOISE project.