lmfit-6.1, released 2dec15:

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

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)

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:
  - uniform code layout, starting from clang-format
  - correct and improve comments, especially in qrfac
  - uppercase matrix names
- testing:
  - new unit test directory test/, for development purposes only

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

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

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

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)

lmfit-3.5, released 3feb13:

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

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)

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)

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)

lmfit-3.1, released 12mar10:

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

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

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)

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

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

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

lmfit-2.2, released 20sep07:

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