Many thanks for the OSQP developers for sharing this beautiful piece of code !

I have ~1’500 instances of QP’s with identical structure, where I compare the solvers

quadprog (Matlab, interior point)

OSQP (class based)

EMOSQP (code generated)

7 problem instances are known to be primal infeasible.

quadprog and OSQP class based detect properly these 7 primal infeasibility condition.

But EMOSQP (code generated), with identical setup runs into MAX_ITER instead of detecting primal infeasibility !?

Code snippet :

prob.setup(P, q, AA, l, u, ‘eps_abs’, 1e-3, ‘eps_rel’, 1e-3, ‘eps_prim_inf’, 1e-4, ‘eps_dual_inf’, 1e-4, ‘scaling’, 1, ‘rho’, 5e-4, ‘adaptive_rho’, 1, ‘adaptive_rho_interval’, 25, ‘polish’, 0, ‘warm_start’, 1, ‘verbose’, 1, ‘sigma’, 1e-6, ‘delta’, 1e4, ‘max_iter’, 4000);

prob.codegen(‘OSQP’, ‘parameters’, ‘matrices’);

Many thanks in advance for advice,

Raoul