Optimo  0.1.0
A C++ header library for optimization
 All Classes Functions Variables Pages
Optimo: A C++ header library for optimization

The main goal of Optimo si to provide a simple C++ interface for optimization algorithms. The library implements commonly used algorithms for convex optimization, such as Newton, as well as other optimization methods such as BFGS. This library has been developed following closely the algorithms described by the Convex Optimization book from S. Boydh and L. Vandenberghe.


There are two options to install Optimo:

  1. Copy the headers preserving the structure directory in optimo/ to some desired installation directory.
  2. If you have cmake (easiest way):

    i) Invoke CMake:


    Here <DESTINATION> is the installation path, e.g., /usr/local/include/.

    ii). Install:

    $ make install

    Make sure you have permissions to write to the destination directory.

If you want to remove optimo, then simply delete the <DESTINATION>/optimo directory.


  1. Eigen 3: http://eigen.tuxfamily.org/

Optional dependencies:

If interested in using the sparse primal dual LP solvers, then you require the following libraries from SuiteSparse:

  1. SuiteSparse: https://www.cise.ufl.edu/research/sparse/SuiteSparse/
  2. Cholmod: https://www.cise.ufl.edu/research/sparse/cholmod/
  3. Umfpack: https://www.cise.ufl.edu/research/sparse/umfpack/

Unit tests

To build this the testing examples this library requires:

a) CMake: http://www.cmake.org

b) Google Flags: https://code.google.com/p/gflags/

c) Google Glog: https://code.google.com/p/google-glog/

Building the Unit Tests

  1. Invoke CMake: $ cmake -DBUILD_TESTING=TRUE .
  2. Invoke Makefile: $ make
  3. Run tests $ ./bin/<component>_tests


To report bugs or suggestions please contact Victor Fragoso at vfrag.nosp@m.oso@.nosp@m.cs.uc.nosp@m.sb.e.nosp@m.du