Access to QP solvers hyper-parameters within projections
As noticed in this discussion the default hyper-parameters for EqualityConstrainedQP might cause divergence in some circumstances for projection_affine_set It would be nice to let the user access those hyper-parameters.
Similarly, the function projection_polyhedron checks feasibility by default - this is not jittable. The user must change this attribute manually. Is there a better way ?
Sounds good about exposing options in projection_affine_set.
An alternative way would be to use classes instead of functions. Projections with a closed form would be instances of Solver (i.e. with a run method) and projections without a closed form would be an instance of IterativeSolver (i.e. with run and update methods). Then, ProjectedGradient would accept either functions (for backward compatibility) or Solver objects. This is a bit more ambitious but potentially cleaner.
Regarding the second issue, one way would be to disable feasibility checks if we detect that we are within a jitted scope but I don't know how to do this.