Nl (format)

nl is a file format for presenting and archiving mathematical programming problems. Initially, this format has been invented for connecting solvers to AMPL. It has also been adopted by other systems such as COIN-OR (as one of the input formats), FortSP (for interacting with external solvers), and Coopr (as one of its output formats).

The nl format supports a wide range of problem types, among them:
 * Linear programming
 * Quadratic programming
 * Nonlinear programming
 * Mixed-integer programming
 * Mixed-integer quadratic programming with or without convex quadratic constraints
 * Mixed-integer nonlinear programming
 * Second-order cone programming
 * Global optimization
 * Semidefinite programming problems with bilinear matrix inequalities
 * Complementarity problems (MPECs) in discrete or continuous variables
 * Constraint programming

The nl format is low-level and is designed for compactness, not for readability. It has both binary and textual representation. Most commercial and academic solvers accept this format either directly or through special driver programs.

The open-source AMPL Solver Library distributed via Netlib and AMPL/MP library provide nl parsers that are used in many solvers.

AMPL/MP library contains an NL writer and SOL reader.