.. title:: A Large Scale Non-linear Optimization Library

============
Ceres Solver
============

Ceres Solver [#f1]_ is an open source C++ library for modeling and
solving large, complicated optimization problems. It can be used to
solve `Non-linear Least Squares`_ problems with bounds constraints and
general unconstrained optimization problems. It is a mature, feature
rich, and performant library that has been used in production at
Google since 2010. For more, see :doc:`features`.

`ceres-solver@googlegroups.com
<https://groups.google.com/forum/?fromgroups#!forum/ceres-solver>`_ is
the place for discussions and questions about Ceres Solver. We use the
`GitHub Issue Tracker
<https://github.com/ceres-solver/ceres-solver/issues>`_ to manage bug
reports and feature requests.


.. toctree::
   :maxdepth: 1
   :hidden:

   features
   installation
   tutorial
   derivatives
   nnls_modeling
   nnls_solving
   nnls_covariance
   gradient_solver
   faqs
   users
   contributing
   version_history
   bibliography
   license

.. _Non-linear Least Squares: https://en.wikipedia.org/wiki/Non-linear_least_squares


Cite Us
=======

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

.. parsed-literal::

  @software{Agarwal_Ceres_Solver_2022,
    author = {Agarwal, Sameer and Mierle, Keir and The Ceres Solver Team},
    title = {{Ceres Solver}},
    license = {BSD-3-Clause},
    url = {https://github.com/ceres-solver/ceres-solver},
    version = {|stable_version|},
    year = {|stable_year|},
    month = {|stable_month|}
  }

.. rubric:: Footnotes

.. [#f1] 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
         <https://mathshistory.st-andrews.ac.uk/Biographies/Gauss/>`_
         who brought it to the attention of the world. Using just 22
         observations of the newly discovered asteroid `Ceres
         <https://en.wikipedia.org/wiki/Ceres_(dwarf_planet)>`_, 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.
