I am solving a MILP with JuMP and have a set of valid cuts for the linear relaxation. I would like to add all these inequalities as a pool of possible cuts before launching the solving and the branching procedure. The aim is to avoid implementation of callback where I test all these cuts manually to find the ones violated by a fractional solution. I used to work in C where the function AddCuts would do this (https://www.ibm.com/support/knowledgecenter/SSSA5P_12.6.0/ilog.odms.cplex.help/refdotnetcplex/html/M_ILOG_CPLEX_Cplex_AddCuts.htm) but I cannot find anything equivalent in JuMP.

I need something equivalent to usercuts, not lazy constraints. This is because this set of constraints is of big cardinality but are not necessary for my formulation. We observed a smaller LP gap with these cuts but when adding all of them from the start the solving time is much bigger. Plus I suspect that many of these constraints are not necessary during the resolution. So wanted to try the â€śaddCutsâ€ť version.

If there is nothing generic in JuMP, it could be worth adding it to CPLEX.jl. If I manage to make it work with @cpx_ccall, Iâ€™ll propose the piece of code

The current version of JuMP does support user cuts (see the docs); however, I did not mention it because the new version of JuMP is removing solver-independent callbacks since there is plenty of evidence that callbacks are not solver-independent.

You can read more about the upcoming changes here.