Projects / sparseLM

sparseLM

sparseLM is a software package for efficiently solving arbitrarily sparse non-linear least squares problems. It offers a generic implementation of the Levenberg - Marquardt optimization algorithm on top of a variety of sparse direct solvers, thus being applicable to problems with arbitrary sparseness. sparseLM accepts sparse Jacobians encoded in either compressed row storage (CRS) or compressed column storage (CCS, aka Harwell-Boeing) format. It is also possible to supply it just with the Jacobian's sparsity pattern and have its values be numerically approximated using finite differences, or even instruct it to attempt the automatic detection of the sparsity pattern corresponding to the Jacobian of the function to be minimized. Note that for dense non-linear least squares problems, project levmar is more appropriate.

Tags
Licenses
Operating Systems
Implementation

Recent releases

  •  04 Dec 2011 21:47

    Release Notes: This release fixes a bug related to the allocation of memory for the sparse Jacobian in the case in which the former is unknown and its non-zero structure is determined via finite differencing, adds CMake configuration files for cross-platform compilation, and makes a few other minor changes.

    •  03 May 2011 14:10

      Release Notes: Various parts of the code were rewritten and cleaned up. Support was added to the matlab MEX interface for expicitly specifying the sparsity structure of an analytic Jacobian.

      •  31 Jan 2011 11:32

        Release Notes: Routines for checking the correctness of a sparse Jacobian implementation were added. The sparselm_spsolvr MEX utility was added, which maps alphanumeric sparse solvers' names to integer codes for use in the options argument of sparselm. A few minor additional changes were made.

        Screenshot

        Project Spotlight

        OpenStack4j

        A Fluent OpenStack client API for Java.

        Screenshot

        Project Spotlight

        TurnKey TWiki Appliance

        A TWiki appliance that is easy to use and lightweight.