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

Ceres Solver 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.

Please see [ceres-solver.org](http://ceres-solver.org/) for more
information.

WARNING - Do not make GitHub pull requests!
-------------------------------------------

Ceres development happens on
[Gerrit](https://ceres-solver.googlesource.com/), including both
repository hosting and code reviews. The GitHub Repository is a
continuously updated mirror which is primarily meant for issue
tracking. Please see our [Contributing to Ceres Guide](http://ceres-solver.org/contributing.html) for more details.

The upstream Gerrit repository is

    https://ceres-solver.googlesource.com/ceres-solver
