README.md
1C/C++ Minpack [![Build Status](https://api.travis-ci.org/devernay/cminpack.png?branch=master)](https://travis-ci.org/devernay/cminpack) [![Build Status](https://drone.io/github.com/devernay/cminpack/status.png)](https://drone.io/github.com/devernay/cminpack/latest) [![Coverage Status](https://coveralls.io/repos/devernay/cminpack/badge.png?branch=master)](https://coveralls.io/r/devernay/cminpack?branch=master) [![Coverity Scan Build Status](https://scan.coverity.com/projects/2942/badge.svg)](https://scan.coverity.com/projects/2942 "Coverity Badge")
2==========
3
4This is a C version of the minpack minimization package.
5It has been derived from the fortran code using f2c and
6some limited manual editing. Note that you need to link
7against libf2c to use this version of minpack. Extern "C"
8linkage permits the package routines to be called from C++.
9Check ftp://netlib.bell-labs.com/netlib/f2c for the latest
10f2c version. For general minpack info and test programs, see
11the accompanying readme.txt and http://www.netlib.org/minpack/.
12
13Type `make` to compile and `make install` to install in /usr/local
14or modify the makefile to suit your needs.
15
16This software has been tested on a RedHat 7.3 Linux machine -
17usual 'use at your own risk' warnings apply.
18
19Manolis Lourakis -- lourakis at ics forth gr, July 2002
20 Institute of Computer Science,
21 Foundation for Research and Technology - Hellas
22 Heraklion, Crete, Greece
23
24Repackaging by Frederic Devernay -- frederic dot devernay at m4x dot org
25
26The project home page is at http://devernay.free.fr/hacks/cminpack/
27
28History
29------
30
31* version 1.3.6 (24/02/2017):
32 - Fix FreeBSD build #6
33 - CMake: install CMinpackConfig.cmake rather than FindCMinpack.cmake #8
34 - CMake: add option USE_BLAS to compile with blas #9
35
36* version 1.3.5 (28/05/2016):
37 - Add support for compiling a long double version (Makefile only).
38 - CMake: static libraries now have the suffix _s.
39
40* version 1.3.4 (28/05/2014):
41 - Add FindCMinpack.cmake cmake module. If you use the cmake install,
42 finding CMinpack from your `CMakeLists.txt` is as easy as
43 `find_package(CMinpack)`.
44
45* version 1.3.3 (04/02/2014):
46 - Add documentation and examples abouts how to add box constraints to the variables.
47 - continuous integration https://travis-ci.org/devernay/cminpack
48
49* version 1.3.2 (27/10/2013):
50 - Minor change in the CMake build: also set SOVERSION.
51
52* version 1.3.1 (02/10/2013):
53 - Fix CUDA examples compilation, and remove non-free files.
54
55* version 1.3.0 (09/06/2012):
56 - Optionally use LAPACK and CBLAS in lmpar, qrfac, and qrsolv. Added
57 "make lapack" to build the LAPACK-based cminpack and "make
58 checklapack" to test it (results of the test may depend on the
59 underlying LAPACK and BLAS implementations).
60 On 64-bits architectures, the preprocessor symbol __LP64__ must be
61 defined (see cminpackP.h) if the LAPACK library uses the LP64
62 interface (i.e. 32-bits integer, vhereas the ILP interface uses 64
63 bits integers).
64
65* version 1.2.2 (16/05/2012):
66 - Update Makefiles and documentation (see "Using CMinpack" above) for
67 easier building and testing.
68
69* version 1.2.1 (15/05/2012):
70 - The library can now be built as double, float or half
71 versions. Standard tests in the "examples" directory can now be
72 lauched using "make check" (to run common tests, including against
73 the float version), "make checkhalf" (to test the half version) and
74 "make checkfail" (to run all the tests, even those that fail).
75
76* version 1.2.0 (14/05/2012):
77- Added original FORTRAN sources for better testing (type "make" in
78 directory fortran, then "make" in examples and follow the
79 instructions). Added driver tests lmsdrv, chkdrv, hyjdrv,
80 hybdrv. Typing "make alltest" in the examples directory will run all
81 possible test combinations (make sure you have gfortran installed).
82
83* version 1.1.5 (04/05/2012):
84 - cminpack now works in CUDA, thanks to Jordi Bataller Mascarell, type
85 "make" in the "cuda" subdir (be careful, though: this is a
86 straightforward port from C, and each problem is solved using a
87 single thread). cminpack can now also be compiled with
88 single-precision floating point computation (define
89 __cminpack_real__ to float when compiling and using the
90 library). Fix cmake support for CMINPACK_LIB_INSTALL_DIR. Update the
91 reference files for tests.
92
93* version 1.1.4 (30/10/2011):
94 - Translated all the Levenberg-Marquardt code (lmder, lmdif, lmstr,
95 lmder1, lmdif1, lmstr1, lmpar, qrfac, qrsolv, fdjac2, chkder) to use
96 C-style indices.
97
98* version 1.1.3 (16/03/2011):
99 - Minor fix: Change non-standard strnstr() to strstr() in
100 genf77tests.c.
101
102* version 1.1.2 (07/01/2011):
103 - Fix Windows DLL building (David Graeff) and document covar in
104 cminpack.h.
105
106* version 1.1.1 (04/12/2010):
107 - Complete rewrite of the C functions (without trailing underscore in
108 the function name). Using the original FORTRAN code, the original
109 algorithms structure was recovered, and many goto's were converted
110 to if...then...else. The code should now be both more readable and
111 easier to optimize, both for humans and for compilers. Added lmddrv
112 and lmfdrv test drivers, which test a lot of difficult functions
113 (these functions are explained in Testing Unconstrained Optimization
114 Software by Moré et al.). Also added the pkg-config files to the
115 cmake build, as well as an "uninstall" target, contributed by
116 Geoffrey Biggs.
117
118* version 1.0.4 (18/10/2010):
119 - Support for shared library building using CMake, thanks to Goeffrey
120 Biggs and Radu Bogdan Rusu from Willow Garage. Shared libraries can be
121 enabled using cmake options, as in;
122 cmake -DUSE_FPIC=ON -DSHARED_LIBS=ON -DBUILD_EXAMPLES=OFF path_to_sources
123
124* version 1.0.3 (18/03/2010):
125 - Added CMake support.
126 - XCode build is now Universal.
127 - Added tfdjac2_ and tfdjac2c examples, which test the accuracy of a
128 finite-differences approximation of the Jacobian.
129 - Bug fix in tlmstr1 (signaled by Thomas Capricelli).
130
131* version 1.0.2 (27/02/2009):
132 - Added Xcode and Visual Studio project files
133
134* version 1.0.1 (17/12/2007):
135 - bug fix in covar() and covar_(), the computation of tolr caused a
136 segfault (signaled by Timo Hartmann).
137
138* version 1.0.0 (24/04/2007):
139 - Added fortran and C examples
140 - Added documentation from Debian man pages
141 - Wrote pure C version
142 - Added covar() and covar_(), and use it in tlmdef/tlmdif
143