Ceres Solver

Ceres Solver [1] is an open source C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. Ceres Solver can solve two kinds of problems.

  1. Non-linear Least Squares problems with bounds constraints.
  2. General unconstrained optimization problems.

Getting started

Cite Us

If you use Ceres Solver for a publication, please cite it as:

  author = "Sameer Agarwal and Keir Mierle and Others",
  title = "Ceres Solver",
  howpublished = "\url{http://ceres-solver.org}",


[1]While there is some debate as to who invented the method of Least Squares [Stigler], there is no questioning the fact that it was Carl Friedrich Gauss who brought it to the attention of the world. Using just 22 observations of the newly discovered asteroid Ceres, Gauss used the method of least squares to correctly predict when and where the asteroid will emerge from behind the Sun [TenenbaumDirector]. We named our solver after Ceres to celebrate this seminal event in the history of astronomy, statistics and optimization.