The Levenberg-Marquardt algorithm is an iterative technique that
finds a local minimum of a function that is expressed as the sum of
squares of nonlinear functions. It has become a standard technique
for nonlinear least-squares problems and can be thought of as a
combination of steepest descent and the Gauss-Newton method. When
the current solution is far from the correct one, the algorithm
behaves like a steepest descent method: slow, but guaranteed to
converge. When the current solution is close to the correct
solution, it becomes a Gauss-Newton method.

Optional box- and linear constraints can be given. Both single and
double precision floating point types are supported.

The actual algorithm is implemented in a
C library which is
bundled with `bindings-levmar`

which this package depends on.

A note regarding the license:

This library depends on `bindings-levmar`

which is bundled together
with a C library which falls under the GPL. Please be aware of this
when distributing programs linked with this library. For details see
the description and license of `bindings-levmar`

.