I am trying to use SPGL1 to solve the Basis Pursuit Denoise problem:
minimize ||x||_1 subject to ||Ax - b||_2 <= sigma.
When I run spgl1 with the sigma keyword argument, it sometimes stops with exit status 1 (root found), but the sigma criterion is not met. I am confused why this is. It seems to depend on the opt_tol keyword argument, but the effect of this parameter is not clear from the BPDN equation nor from the spgl1 documentation.
I have attached a dataset and sample script to show the behavior I am talking about.
Furthermore, I noticed while preparing this script that the output of the Python and Matlab libraries is not identical. Is this to be expected?
spgl1_bug.zip