Third-party libraries

PSOPT requires the following third party software libraries. The specific versions employed are given in the PSOPT documentation. Please consult the PSOPT documentation before installing any of the required third party libraries.


IPOPT is an open source C++ package for large-scale nonlinear optimization, which uses an interior point method. IPOPT is the default nonlinear programming algorithm used by PSOPT. It can be downloaded from


ADOL-C is a library for the automatic differentiation of C++ code. It allows to compute automatically the gradients and sparse Jacobians required by PSOPT . At the heart of the ADOL-C library is the “adouble” data type, which can be mostly treated as a C++ “double”. Some current Linux distrubutions, such as Ubuntu, make it very easy to install the ADOL-C library and headers using a package manager. It can also be downloaded from:


COLPACK is a software package for sparse derivative computation and colouring, which is required by ADOL-C. It can be downloaded from:


Eigen is a community maintained lightweight, comprehensive and powerful linear algebra package for C++. It consists only of header files, so there is no need to link to it, only to include the relevant header files. Eigen's documentation and source code can be accessed through its webpage:

Optionally, PSOPT interfaces with the following software packages:

GNUplot (optional)

Gnuplot is a portable command-line driven interactive data and function plotting utility which runs on many computer platforms. The software is freely distributed. The source code can be downloaded from the following page:

SNOPT (optional)

SNOPT is a Sequential Quadratic Programming algorithm for the optimisation of constrained large-scale problem. For further details, see: