Also, I have had some difficulties in getting the polishing step to converge. From my quick read of the paper, it seems that the algorithm does a projection into the polyhedron l <= A x <= u. That projection is much more complicated for general A than it is for the simple case x >= 0. There also, would it be simpler and more efficient to add the case x >= 0 as a specific constraint?
For example (I think this is a standard way that other packages handle this), provide a either logical vector or a list of indices indicating which components of x are required to be nonnegative.
In any case, much appreciation for a very effective solver.
O <- solve_osqp( P=A, q=-b,
A=sparseMatrix( i=1:n, j=1:n, x=1 ), l=rep(0,n), u=rep(+Inf,n),
pars=osqp_settings )
I think I had thought from reading the paper, that the algorithm could be simpler if A = I so that z = x. But I guess in practice the difference is negligible.
Let me see if I can find a clear case where I have difficulty with the polishing, and then I can share the matrices.