An implementation of the Levenberg-Marquardt algorithm
Haskell Nix Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Bindings/LevMar
Numeric
.gitignore
LICENSE
README.markdown
Setup.hs
clean.sh
default.nix
levmar.cabal
levmar.nix
shell.nix

README.markdown

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.

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.