bindings-levmar: Low level bindings to the C levmar (Levenberg-Marquardt) library

[ ffi, library, numerical ] [ Propose Tags ]

See the levmar package for a high-level wrapper around this package.

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.

Both unconstrained and constrained (under linear equations and box constraints) Levenberg-Marquardt variants are included. All functions have Double and Float variants.

Note that the included C library is lightly patched to make it pure. This way the functions can be used inside unsafePerformIO.

A note regarding the license:

All files EXCEPT those in the levmar-2.4 directory fall under the BSD3 license. The levmar C library, which is bundled with this binding, falls under the GPL. If you build a program which is linked with this binding then it is also linked with levmar. This means such a program can only by distributed under the terms of the GPL.


[Skip to Readme]

Modules

[Index]

Flags

Automatic Flags
NameDescriptionDefault
mkl

Link with Intel's MKL optimized libraries.

Disabled
accelerate

Use the accelerate framework for LAPACK/BLAS on OS X

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1, 0.1.0.1, 0.1.1, 0.1.1.1, 0.2.0.1, 1.0, 1.0.0.1, 1.0.0.2, 1.1, 1.1.0.1, 1.1.0.2, 1.1.0.3, 1.1.0.4, 1.1.0.5
Dependencies base (>=3 && <4.8), bindings-DSL (>=1.0.15 && <1.1) [details]
License LicenseRef-OtherLicense
Copyright 2009–2012 Roel van Dijk & Bas van Dijk
Author Roel van Dijk <vandijk.roel@gmail.com> & Bas van Dijk <v.dijk.bas@gmail.com>
Maintainer Roel van Dijk <vandijk.roel@gmail.com> & Bas van Dijk <v.dijk.bas@gmail.com>
Category Numerical, FFI
Home page https://github.com/basvandijk/bindings-levmar
Bug tracker https://github.com/basvandijk/bindings-levmar/issues
Source repo head: git clone git://github.com/basvandijk/bindings-levmar.git
Uploaded by BasVanDijk at 2014-02-05T19:25:20Z
Distributions NixOS:1.1.0.5
Reverse Dependencies 2 direct, 1 indirect [details]
Downloads 11990 total (35 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Successful builds reported [all 1 reports]

Readme for bindings-levmar-1.1.0.2

[back to package description]

Low level Haskell bindings to the C levmar (Levenberg-Marquardt) library

See the levmar package for a high-level wrapper around this package.

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.

Both unconstrained and constrained (under linear equations and box constraints) Levenberg-Marquardt variants are included. All functions have Double and Float variants.

Note that the included C library is lightly patched to make it pure. This way the functions can be used inside unsafePerformIO.

License

All files except those in the levmar-2.4 directory fall under the BSD3 license. The levmar C library, which is bundled with this binding, falls under the GPL. If you build a program which is linked with this binding then it is also linked with levmar. This means such a program can only by distributed under the terms of the GPL.