Projects / levmar


levmar is a robust and efficient C/C++ implementation of the Levenberg - Marquardt (LM) optimization algorithm. LM solves the non-linear least squares problem, i.e. fitting a set of m observations with a model that is non-linear in n unknown parameters (m>=n). levmar includes double and single precision LM variants, both with analytic and finite difference approximated Jacobians. It also has some support for constrained non-linear least squares, allowing linear equation and box constraints to be imposed. For problems with sparse Jacobians, the sparseLM project might be more efficient.

Operating Systems

Recent releases

  •  29 Nov 2011 22:03

    Release Notes: This release adds support for diagonal scaling to xlevmar_bc_der(), which can improve convergence when the starting point is far from the true minimizer. A linear systems solver supporting parallel Cholesky decomposition with PLASMA, the linear algebra library for multi-core processors. Linear solvers have been fixed so that they operate on lower triangles of symmetric matrices, which results in better cache performance. The CMake configuration files for building the project have been revised. Several other minor changes have been made.

    •  09 Dec 2009 21:35

      Release Notes: This release adds support for minimization under simultaneous box, linear equation, and inequality constraints. It adds a linear systems solver based on the UDUt decomposition. It removes some unnecessary memory copying from most linear solvers. It makes a few other minor changes.

      •  29 Apr 2009 12:00

        Release Notes: A more cache-efficient scheme was implemented for computing the approximate Hessian J^T*J and J^T*e for small-sized minimization problems. The code now ensures that linear solvers employ the minimum required amount of auxiliary memory, avoiding occasional over-allocations. A loop unrolling scheme was implemented for speeding up the computation of e=x-hx. A couple of issues with memory alignment on 64-bit systems were fixed. Functions were added for the computation of the coefficient of determination. A few minor issues were dealt with.

        •  09 May 2008 21:05

          Release Notes: Improved support for problems with zero measurement vectors. Memory retained among invocations of the linear solvers is released when levmar terminates. The option of compiling only the single or only the double precision functions of levmar has been added. A new error code 7 signaling infinite values in the function provided by the user has been introduced. A couple of minor problems in the line search procedure of box constrained optimization have been fixed. A detailed example on using levmar for fitting a non-linear model to noisy data has been added.

          •  17 Dec 2007 17:14

            Release Notes: Routines were added for minimization under simultaneous box and linear equality constraints. levmar now includes a matlab MEX interface. Error handling was improved in various routines. An error with the linking order in the Makefiles that was causing errors under cygwin was fixed. A few more minor bugs were fixed.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.