Note that currently LAPACK is only required if you intend to use the quasi-Newton options in IPOPT. You can compile the code without LAPACK, but an error message will then occur if you try to run the code with an option that requires LAPACK. Currently, the LAPACK routines that are used by IPOPT are only DPOTRF, DPOTRS, and DSYEV.
Currently, the following linear solvers can be used:
~agupta/wsmp.html)
The IPOPT library also has mechanisms to load the MA27, MA57, and Pardiso linear solvers from a shared library at runtime, if the library has not been compiled with them (see Section 2.2.6).
NOTE: The solution of the linear systems is a central ingredient in IPOPT and the optimizer's performance and robustness depends on your choice. Please keep this in mind, particularly when you are comparing IPOPT with other optimization codes.
Interfaces to other linear solvers might be added in the future; if you are interested in contributing such an interface please contact us! Note that IPOPT requires that the linear solver is able to provide the inertia (number of positive and negative eigenvalues) of the symmetric matrix that is factorized.
Since the IPOPT code is written in C++, you will need a C++ compiler to build the IPOPT library. We tried very hard to write the code as platform and compiler independent as possible.
In addition, the configuration script currently also searches for a Fortran, since some of the dependencies above are written in Fortran. If all third party dependencies are available as self-contained libraries, those compilers are in principle not necessary. Also, it is possible to use the Fortran-to-C compiler f2c from www.netlib.org/f2c to convert Fortran code to C, and compile the resulting C files with a C compiler and create a library containing the required third party dependencies. We have tested and used this in connection with the Microsoft Visual C++ compiler, and instructions on how to use it in this context are given below.