name: levmar
version: 0.2
cabal-version: >= 1.6
build-type: Simple
stability: experimental
tested-with: GHC ==6.10.4
author: Roel van Dijk & Bas van Dijk
maintainer: vandijk.roel@gmail.com, v.dijk.bas@gmail.com
copyright: (c) 2009 Roel van Dijk & Bas van Dijk
license: BSD3
license-file: LICENSE
category: Numerical, Math
synopsis: An implementation of the Levenberg-Marquardt algorithm
description: 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. See:
.
.
This library consists of two layers:
.
* LevMar.Intermediate: A medium-level layer that wraps
the low-level functions from bindings-levmar to
provide a more Haskell friendly interface.
.
* LevMar: A high-level layer that uses type-level
programming to add extra type safety.
.
Each layer also has special curve-fitting variants:
.
* LevMar.Intermediate.Fitting
.
* LevMar.Fitting
.
Each layer also has special variants that automatically compute
the jacobian using automatic differentiation using Conal
Elliott's vector-space library:
.
* LevMar.Intermediate.AD
.
* LevMar.Intermediate.Fitting.AD
.
* LevMar.AD
.
* LevMar.Fitting.AD
.
Note however that this feature is still very experimental!
.
All modules are self-contained; i.e. each module
re-exports all the things you need to work with it.
.
For an example how to use this library see Demo.hs
which is included in this package. Demo.hs is a Haskell
translation of lmdemo.c from the C levmar library.
.
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.
extra-source-files: Demo.hs
source-repository head
Type: darcs
Location: http://code.haskell.org/levmar
library
build-depends: base >= 3 && < 4.2
, bindings-levmar == 0.1.*
, vector-space >= 0.5.7 && < 0.6
, MemoTrie >= 0.4.5 && < 0.5
exposed-modules: LevMar
, LevMar.AD
, LevMar.Fitting
, LevMar.Fitting.AD
, LevMar.Intermediate
, LevMar.Intermediate.AD
, LevMar.Intermediate.Fitting
, LevMar.Intermediate.Fitting.AD
, TypeLevelNat
, SizedList
, NFunction
other-modules: LevMar.Utils
, LevMar.Utils.AD
ghc-options: -Wall -O2