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
IPOPT is an open-source C++ package for large-scale nonlinear optimisation, which uses an interior point method. IPOPT is the default nonlinear programming algorithm used by PSOPT. It can be downloaded from:
https://github.com/coin-or/Ipopt
CppAD
CppAD is an open-source library for the automatic differentiation of C++ code. PSOPT uses CppAD to compute the first and second derivatives (sparse Jacobians and Hessians) required by the nonlinear programming solver. At the heart of CppAD is an “AD” data type that records the operations performed on it, allowing derivatives to be evaluated in forward or reverse mode. CppAD is available through the package managers of several Linux distributions, and it can also be downloaded from:
https://github.com/coin-or/CppAD
As an alternative to automatic differentiation, PSOPT can compute derivatives numerically using sparse finite differences.
EIGEN
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 headers. Eigen’s documentation and source code can be accessed through its webpage:
Build tools
PSOPT is built using CMake (version 3.12 or later) together with ‘make’, and it uses ‘pkg-config’ to locate its dependencies during configuration.
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: