提交scripts
This commit is contained in:
1 parent
82caf72036
commit
07dabbd186
224 files changed
+130146
No files matched your search
@@ -0,0 +1,115 @@
|
||||
Customized by CDC:
|
||||
|
||||
- support user Jacobian evaluation
|
||||
|
||||
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 assignment (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 unnecessary 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
|
||||
@@ -0,0 +1,30 @@
|
||||
The package lmfit is distributed under the FreeBSD License:
|
||||
|
||||
--
|
||||
Copyright (c) 1980-1999 University of Chicago,
|
||||
as operator of Argonne National Laboratory
|
||||
Copyright (c) 2004-2013 Joachim Wuttke, Forschungszentrum Juelich GmbH
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
- Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
This software is provided by the copyright holders and contributors "as is"
|
||||
and any express or implied warranties, including, but not limited to, the
|
||||
implied warranties of merchantability and fitness for a particular purpose
|
||||
are disclaimed. In no event shall the copyright holder or contributors
|
||||
be liable for any direct, indirect, incidental, special, exemplary, or
|
||||
consequential damages (including, but not limited to, procurement of
|
||||
substitute goods or services; loss of use, data, or profits; or business
|
||||
interruption) however caused and on any theory of liability, whether in
|
||||
contract, strict liability, or tort (including negligence or otherwise)
|
||||
arising in any way out of the use of this software, even if advised of the
|
||||
possibility of such damage.
|
||||
--
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
* Project: LevenbergMarquardtLeastSquaresFitting
|
||||
*
|
||||
* File: lmmin.h
|
||||
*/
|
||||
|
||||
#ifndef LMMIN_H
|
||||
#define LMMIN_H
|
||||
|
||||
|
||||
/** Compact high-level interface. **/
|
||||
|
||||
/* Collection of control (input) parameters. */
|
||||
typedef struct {
|
||||
double ftol; /* relative error desired in the sum of squares. */
|
||||
double xtol; /* relative error between last two approximations. */
|
||||
double gtol; /* orthogonality desired between fvec and its derivs. */
|
||||
double epsilon; /* step used to calculate the jacobian, or 0 for user provided jacobian. */
|
||||
double stepbound; /* initial bound to steps in the outer loop. */
|
||||
int maxcall; /* maximum number of iterations. */
|
||||
int scale_diag; /* UNDOCUMENTED, TESTWISE automatic diag rescaling? */
|
||||
#ifdef LMFIT_PRINTOUT
|
||||
int printflags; /* OR'ed to produce more noise */
|
||||
#endif
|
||||
} lm_control_struct;
|
||||
|
||||
/* Collection of status (output) parameters. */
|
||||
typedef struct {
|
||||
double fnorm; /* norm of the residue vector fvec. */
|
||||
int nfev; /* actual number of iterations. */
|
||||
int info; /* status (index for lm_infmsg and lm_shortmsg). */
|
||||
} lm_status_struct;
|
||||
|
||||
/* Recommended control parameter settings. */
|
||||
extern const lm_control_struct lm_control_double;
|
||||
extern const lm_control_struct lm_control_float;
|
||||
|
||||
#ifdef LMFIT_PRINTOUT
|
||||
/* Standard monitoring routine. */
|
||||
void lm_printout_std( int n_par, const double *par, int m_dat,
|
||||
const void *data, const double *fvec,
|
||||
int printflags, int iflag, int iter, int nfev );
|
||||
#endif
|
||||
|
||||
/* Refined calculation of Eucledian norm, typically used in printout routine. */
|
||||
double lm_enorm( int, const double * );
|
||||
|
||||
/* The actual minimization. */
|
||||
void lmmin( int n_par, double *par, int m_dat, const void *data,
|
||||
void (*evaluate) (const double *par, int m_dat, const void *data,
|
||||
double *fvec, double *fjac, int *info),
|
||||
const lm_control_struct *control, lm_status_struct *status
|
||||
#ifdef LMFIT_PRINTOUT
|
||||
, void (*printout) (int n_par, const double *par, int m_dat,
|
||||
const void *data, const double *fvec,
|
||||
int printflags, int iflag, int iter, int nfev) = NULL
|
||||
#endif
|
||||
);
|
||||
|
||||
|
||||
/** Legacy low-level interface. **/
|
||||
|
||||
/* Alternative to lm_minimize, allowing full control, and read-out
|
||||
of auxiliary arrays. For usage, see implementation of lmmin. */
|
||||
void lm_lmdif( int m, int n, double *x, double *fvec, double ftol,
|
||||
double xtol, double gtol, int maxfev, double epsfcn,
|
||||
double *diag, int mode, double factor, int& info, int& nfev,
|
||||
double *fjac, int *ipvt, double *qtf, double *wa1,
|
||||
double *wa2, double *wa3, double *wa4,
|
||||
void (*evaluate) (const double *par, int m_dat, const void *data,
|
||||
double *fvec, double *fjac, int *info),
|
||||
const void *data
|
||||
#ifdef LMFIT_PRINTOUT
|
||||
, void (*printout) (int n_par, const double *par, int m_dat,
|
||||
const void *data, const double *fvec,
|
||||
int printflags, int iflag, int iter, int nfev),
|
||||
int printflags
|
||||
#endif
|
||||
);
|
||||
|
||||
extern const char *lm_infmsg[];
|
||||
extern const char *lm_shortmsg[];
|
||||
|
||||
|
||||
#endif /* LMMIN_H */
|
||||
Reference in new issue
Block a user