1 | **************************************************************
|
---|
2 | LEVMAR
|
---|
3 | version 2.6
|
---|
4 | By Manolis Lourakis
|
---|
5 |
|
---|
6 | Institute of Computer Science
|
---|
7 | Foundation for Research and Technology - Hellas
|
---|
8 | Heraklion, Crete, Greece
|
---|
9 | **************************************************************
|
---|
10 |
|
---|
11 |
|
---|
12 | GENERAL
|
---|
13 | This is levmar, a copylefted C/C++ implementation of the Levenberg-Marquardt non-linear
|
---|
14 | least squares algorithm. levmar includes double and single precision LM versions, both
|
---|
15 | with analytic and finite difference approximated Jacobians. levmar also has some support
|
---|
16 | for constrained non-linear least squares, allowing linear equation, box and linear
|
---|
17 | inequality constraints. The following options regarding the solution of the underlying
|
---|
18 | augmented normal equations are offered:
|
---|
19 |
|
---|
20 | 1) Assuming that you have LAPACK (or an equivalent vendor library such as ESSL, MKL,
|
---|
21 | NAG, ...) installed, you can use the included LAPACK-based solvers (default).
|
---|
22 |
|
---|
23 | 2) If you don't have LAPACK or decide not to use it, undefine HAVE_LAPACK in levmar.h
|
---|
24 | and a LAPACK-free, LU-based linear systems solver will by used. Also, the line
|
---|
25 | setting the variable LAPACKLIBS in the Makefile should be commented out.
|
---|
26 |
|
---|
27 | It is strongly recommended that you *do* employ LAPACK; if you don't have it already,
|
---|
28 | I suggest getting clapack from http://www.netlib.org/clapack. However, LAPACK's
|
---|
29 | use is not mandatory and the 2nd option makes levmar totally self-contained.
|
---|
30 | See lmdemo.c for examples of use and http://www.ics.forth.gr/~lourakis/levmar
|
---|
31 | for general comments. An example of using levmar for data fitting is in expfit.c
|
---|
32 |
|
---|
33 | The mathematical theory behind levmar is described in the lecture notes entitled
|
---|
34 | "Methods for Non-Linear Least Squares Problems", by K. Madsen, H.B. Nielsen and O. Tingleff,
|
---|
35 | Technical University of Denmark (http://www.imm.dtu.dk/courses/02611/nllsq.pdf).
|
---|
36 |
|
---|
37 | LICENSE
|
---|
38 | levmar is released under the GNU Public License (GPL), which can be found in the included
|
---|
39 | LICENSE file. Note that under the terms of GPL, commercial use is allowed only if a software
|
---|
40 | employing levmar is also published in source under the GPL. However, if you are interested
|
---|
41 | in using levmar in a proprietary commercial application, a commercial license for levmar
|
---|
42 | can be obtained by contacting the author using the email address at the end of this file.
|
---|
43 |
|
---|
44 | COMPILATION
|
---|
45 | - The preferred way to build levmar is through the CMake cross-platform build
|
---|
46 | system. The included CMakeLists.txt file can be used to generate makefiles
|
---|
47 | for Unix systems or project files for Windows systems. CMakeLists.txt defines
|
---|
48 | some configuration variables that control certain aspects of levmar and can
|
---|
49 | be modified from CMake's user interface. The values of these variables are
|
---|
50 | automatically propagated to levmar.h after CMake runs.
|
---|
51 | More information on how to use CMake can be found at http://www.cmake.org
|
---|
52 |
|
---|
53 | - levmar can also be built using the supplied makefiles. Platform-specific
|
---|
54 | instructions are given below. Before compiling, you might consider setting
|
---|
55 | a few configuration options found at the top of levmar.h. See the
|
---|
56 | accompanying comments for more details.
|
---|
57 |
|
---|
58 | -- On a Linux/Unix system, typing "make" will build both levmar and the demo
|
---|
59 | program using gcc. Alternatively, if Intel's C++ compiler is installed, it
|
---|
60 | can be used by typing "make -f Makefile.icc".
|
---|
61 |
|
---|
62 | -- Under Windows and if Visual C is installed & configured for command line
|
---|
63 | use, type "nmake /f Makefile.vc" in a cmd window to build levmar and the
|
---|
64 | demo program. In case of trouble, read the comments on top of Makefile.vc
|
---|
65 |
|
---|
66 | MATLAB INTERFACE
|
---|
67 | Since version 2.2, the levmar distribution includes a matlab mex interface.
|
---|
68 | See the 'matlab' subdirectory for more information and examples of use.
|
---|
69 |
|
---|
70 | Notice that *_core.c files are not to be compiled directly; For example,
|
---|
71 | Axb_core.c is included by Axb.c, to provide single and double precision
|
---|
72 | routine versions.
|
---|
73 |
|
---|
74 |
|
---|
75 | Send your comments/bug reports to lourakis (at) ics (dot) forth (dot) gr
|
---|