I’m reaching out as I’m trying to do some comparisons of an algorithm I’m working that uses OSQP compared to one used by ECOS. In order to make my comparison as fair as possible, I’m trying to replicate the settings used in ECOS in OSQP (as the original method was modeled using ECOS).
These are the settings in ECOS:
#define FEASTOL /* primal/dual infeasibility tolerance /
#define ABSTOL / absolute tolerance on duality gap /
#define RELTOL / relative tolerance on duality gap */
From looking over the settings and the OSQP paper, FEASTOL would be equivalent to both eps_prim_inf and eps_dual_inf (I guess ECOS does not have a way of splitting these two). However, it doesn’t look like OSQP has settings for termination based off duality gaps (and indeed looking through this link, it looks like it’s a TODO: https://github.com/oxfordcontrol/osqp/projects/1?fullscreen=true).
Just wanted to see if anything has changed by chance on that end, and also, if it even makes sense to compare the termination criteria of something like the FEASTOL from one solver to the other given that they’re different methods (first order vs. IPM). Also, as you mentioned in the paper, internal problem scaling will play a role in comparing the solvers as well.