MP library is a set of solver drivers and tools recommended to create
new AMPL solver drivers. It provides type-safe and flexible interfaces
suitable for linear and mixed-integer, non-linear, and
Constraint Programming solvers.
Moreover, MP library provides
a lightweight NL writer.
MP replaces the previous
AMPL Solver Library for solvers not requiring automatic differentiation.
It is implemented in C++, parts of the API are exported in C.
Why MP library?
MP library aims to provide efficient, simple-to-use and highly
configurable solver drivers and tools. Benefits of MP include:
Automatic reformulation of some expressions: problems containing such expressions
can be seamlessly solved using solver drivers developed with MP, although the
underlying solver might natively not support them
Consistency: many solver options are supported via Features guide for MP-based AMPL solvers at framework level,
requiring only the implementation of an API in the solver driver. This ensures
consistency in options naming and semantics across solvers
Speed of development: modern design patterns and a declarative approach to features
implementation greatly reduce development effort: for a typical MIP solver, a few days
are enough to code a driver
On this documentation
The documentation is divided in two sections: