Rapid Optimization Library

Image of ROL_Logo_Transparent

Numerical optimization made practical:
Any application, any hardware, any problem size.

About ROL

ROL (/roʊl/, as in rock and roll) is a high-performance C++ library for numerical optimization. ROL brings an extensive collection of state-of-the-art optimization algorithms to virtually any application. Its programming interface supports any computational hardware, including heterogeneous many-core systems with digital and analog accelerators. ROL has been used with great success for optimal control, optimal design, inverse problems, image processing and mesh optimization, in application areas including geophysics, structural dynamics, fluid dynamics, electromagnetics, quantum computing, hypersonics and geospatial imaging.


ROL is open-source software, released through the Trilinos Project under a BSD-compatible license.

To browse ROL source code, visit the Github page https://github.com/trilinos/Trilinos, and navigate to packages/rol. ROL comes with a C++ interface; Python and Matlab interfaces are in the works.

Cite ROL

A. Javeed, D. Kouri, D. Ridzal, G. von Winckel (2022)  Get ROL-ing: An Introduction to Sandia’s Rapid Optimization Library, 7th International Conference on Continuous Optimization.

  author = "Javeed, A. and Kouri, D.P. and Ridzal, D. and Von Winckel, G.",
  title = "Get ROL-ing: An Introduction to Sandia’s Rapid Optimization Library",
  booktitle = "7th International Conference on Continuous Optimization",
  year = "2022"