‘Flat API’ solvers
For solvers with traditional ‘flat’ (no expression trees) APIs,
non-linear AMPL expressions need to be reformulated.
max(a, b) is translated into a constraint
which is in turn reformulated for
MIP or passed to the solver natively (e.g., Gurobi:
See the Modeling Guide for MP-based AMPL Solvers.
There are several implementations, see Modeling overview.