Changes in lmfit-9.0, released 10jun21:

- Correct parameter error estimates (analysed and implemented by Janike Katter)
- Correct sign error in minor term in directional derivative (thanks to Jannik Schürg)
- Provide C++ wrapper (implemented by Janike Katter)
- Add CPack support for Windows

Changes in lmfit-8.3, released 17aug20:

- Add parameter file for continuous integration tests
- Add dllimport/export attributes for use under Windows
- Correct print statements (thanks to Chris Pearson, Teledyne Tekmar)
- Correct symlinks to installed library
- Add CMake option CMAKE_CROSSCOMPILING_EMULATOR (for JavaScript, suggested by Jan Vaillant)

- Homepage moved to https://jugit.fz-juelich.de/mlz/lmfit, 17mar19

Changes in lmfit-8.2.2, released 7feb19:

- Set option LIB_MAN only if variable LIB_MAN is not set (for CMake<3.13)

Changes in lmfit-8.2.1, released 1feb19:

- Require C99 (otherwise some constructs are refused by gcc 4.8.5)

Changes in lmfit-8.2, released 8jan19:

- Relax precision requirement in test (failed ppc64le, aarch64 and s390x in Fedora)

Changes in lmfit-8.1, released 20dec18:

- Restore lmfit.pc
- Don't try to link -lm if math functions are already available (for MSVC)
- Don't require C++ compiler in CMake project command
- Uniform *const declarations in lmmin.h and lmmin.c
- Modernize CMakeLists.txt
- Put three tests under CTest control

Changes in lmfit-8.0, released 19sep18:
- Most generic API call is now lmmin2,
  which estimates parameter errors and the covariance matrix

Changes in lmfit-7.0, released 27feb18:
- Automake support removed
- API changed:
  - compute f-y only when needed
- Man page built under CMake

Changes in lmfit-6.4, released 22nov17:

- First version with CMake
- First version with fittest
- Probably last version with automake support

Changes in lmfit-6.3, released 3nov17:

- two small corrections in core algorithm:
  - 0.5 had become .55 at some point in the past
  - Delta was initialized more than once
- also changed verbosity codes and deep info formats

Changes in lmfit-6.2, released 27oct17:

- algorithm improvement:
  - removed test for infinity in one case where we can proceed nonetheless
- code cleanup:
  - added 'const' qualifiers

Changes in lmfit-6.1, released 2dec15:

- docs:
  - new man page lmfit(7)
  - 'BUGS' section in man pages
- code cleanup:
  - lmcurve_tyd in separate source file

Changes in lmfit-6.0, released 24nov15:

- API changes:
  - a few more 'const' qualifiers in lmmin and lmcurve.
  - new wrapper function lmcurve_tyd, for use in GROMACS
- code cleanup:
  - further unify code layout
  - use temporary variable for readability in lmcurve (suggested by T. Klauser)

Changes in lmfit-5.3, released 24nov15:

- autotools:
  - set default optimization -O3
- monitoring:
  - detect if norm is not finite, new outcome code 12 = "found nan"
  - print parameters before invoking callback functiion
- docs:
  - correct typo in lmmin(3)
- code cleanup:
  - correct and improve comments in qrfac

Changes in lmfit-5.2, released 23oct14:

- bug fix:
  - correct man page (5.0 API change)
- acceleration(?):
  - revert to just one malloc for all workspaces, now based on a char array

Changes in lmfit-5.1, released 29aug13:

- bug fix:
  - FILE** initialization from &stdout was not standard compliant
    (report by Jan Krieger, cf http://stackoverflow.com/questions/18505530);
    now FILE* initialized to NULL
- code cleanup:
  - better wrapper for "extern C" declaration

Changes in lmfit-5.0, released 9aug13:

- API changes:
  - removed callback function for printout
  - removed control structure for printout; some par's go to lm_control_struct
  - pivoting can no longer be switched off
  - from now on, addition of par's to lm_control_struct is not an API change
- bug fix:
  - correct memory leak introduced by reversal of mallock trick
  - restore default scale_diag=1
- monitoring:
  - improved text messages ("success" -> "converged", we should not say more)
- demo: reworked examples
  - new example nonlin1: solution of 2 nonlinear equations in 2 variables
  - example surface1 improved and included in man page lmmin(3)
  - otherwise testsuite started as new project fittest
- packaging: configure now supports pkg-config

Changes in lmfit-4.0, released 16jul13:

- binary library renamed: lmmin -> lmfit
- API changes:
  - lmcurve.h no longer depends on lmmin.h, but only on new lmstruct.h
  - low-level API lmdif is removed (code integrated in lmmin)
  - lmcurve_fit -> lmcurve
  - new control parameter 'pivot' (default: pivoting is used, as before)
  - new structure lm_princon_struct, generalizing printflags
  - in consequence thereof, new parameter lists for lmcurve and lmmin
- code cleanup:
  - ensure strict C90 compliance: no C++ comments; replace non-standard
    struct assignement (reported by Elio Mazzocca, using LCC)
  - revert malloc trick of release 3.4 (readability is more important)
  - source code comment blocks moved around, to reduce duplications
- build scripts cleanup:
  - demo programs are no longer installed to $bindir
  - configure.ac: cleaned up, and inserted comments
- documentation:
  - new web location: apps.jcns.fz-juelich.de/lmfit
  - new entry page (dokuwiki) instead of man page
  - man page split and largely rewritten: lmcurve(3), lmmin(3)

Changes in lmfit-3.5, released 3feb13:

- changed overall license to FreeBSD to facilitate inclusion in Linux
  distributions (request by M. Hroncok)
- directory doc renamed man

Changes in lmfit-3.4, released 21jan13:

- only one malloc call to allocate all arrays (proposal by F. Polchow)
- liblmmin_la_LDFLAGS += -lm (required by Ubuntu, report by J. M. Agosta)
- there is now an alternative ruby binding, using inline instead of swig
  (contribution by I. Drozdov)
- long message for degenerate case now suggests increasing epsilon
  (suggestion by Nghia Ho)

Changes in lmfit-3.3, released 12sep12:

- moved "int" declarations to top of lm_printout_std() and lmmin()
  (required by Visual Studio 2005: bug report M. Beek)
- corrected typo 0.55 -> 0.5 (bug reports M. Kardas and D. Pescia)
- man pages now produced by make; finally got rid of dmake
- untabified code (hint by W. Pimenta)

Changes in lmfit-3.2, released 28mar10 (preview 27mar10):

- shared library is given correct version number (set in configure.ac)
- man page lmfit(3) is copied by dmake to lmmin(3) and lmcurve_fit(3)

Changes in lmfit-3.1, released 12mar10:

- debian directory not part of tgz distribution
- temporarily removed lmmin.3 (was symlink -> lmfit.3)

Changes in lmfit-3.0, released 2mar10 (preview 27feb10):

- for parameter close to zero, change step width for calculation of jabobian
- outer iteration counter starting at zero (C style)
- replace BUG by LMFIT_DEBUG_MESSAGES and .._MATRIX to allow control by -D
- remove redundant calculation by exchanging workspaces and lm_lmpar output
- eliminate unncessary wa1 = -wa1 computation
- avoid passing wa3 to wa1, choose better names for work arrays in lm_par
- migrate documentation from brain-damaged asciidoc to pod
- rewrote interface documentation
- API changes:
  -- eliminate lm_initialize_control, provide defaults for float and double
  -- separate limits and status records
  -- separate generic minimization and one-dimensional curve fitting
  -- simplify the latter
- replace curve-fitting demo
- provide surface-fitting demo (correspondence M. Rudolphi)
- provide vector minimization demos
- test for fnorm<=LM_DWARF, renumbered info values 0, 10, 11

Changes in lmfit-2.6, released 29sep09:

- nfev incrementation even if printout=0 (bug report C. Tanner)
- correct t->tvec, y->yvec in man page  (bug report C. Tanner)

Changes in lmfit-2.5, released 20sep09:

- malloc==NULL ? (suggestion R. Strickland)
- allow printout=NULL (suggestion J. Lodewyck)
- improve infmsg (correspondence B. McHoull)
- eliminate some static variables (p25, p5, p75, ..)
- eliminate function data types; they obscure more than they help

Changes in lmfit-2.4, released 27jul08:

- clearer file headers
- clearer licence (everything has ever been in the public domain)
- machine-dependent arithmetic constants from float.h (suggestion M. Bydder)
- minor improvements of comments

Changes in lmfit-2.3, released 5apr08:

- fixed bug sf#1817631: replaced confusing variable names in lmmin.c:lm_qrsolv()
- accepted feature request 1814970: inclusion protection in headers
- accepted feature request 1814976: cplusplus wrapper in headers
- fixed bug sf#1868399: typos in debug messages
- accepted proposal from M. Bydder:
     improved calculation of differences in lmmin, lines 415-417
- reverted comments in lmmin.c to pure C style
- improved documentation of interfaces

Changes up to lmfit-2.2, released 20sep07:

- no change log has been maintained,
  there are just the sourceforge release notes
