mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-02-13 08:08:42 +00:00
.. Makes it easier to identify code that has been snaffled in from other repositories and check licensing .. The httpserver is now no longer optional, since it is delivered as contributed source.
82 lines
3.3 KiB
C
82 lines
3.3 KiB
C
/*
|
|
* Library: lmfit (Levenberg-Marquardt least squares fitting)
|
|
*
|
|
* File: lmstruct.h
|
|
*
|
|
* Contents: Declarations of parameter records, used in lmmin.h and lmcurve.h
|
|
*
|
|
* Copyright: Joachim Wuttke, Forschungszentrum Juelich GmbH (2004-2013)
|
|
*
|
|
* License: see ../COPYING (FreeBSD)
|
|
*
|
|
* Homepage: apps.jcns.fz-juelich.de/lmfit
|
|
*/
|
|
|
|
#ifndef LMSTRUCT_H
|
|
#define LMSTRUCT_H
|
|
#undef __BEGIN_DECLS
|
|
#undef __END_DECLS
|
|
#ifdef __cplusplus
|
|
#define __BEGIN_DECLS extern "C" {
|
|
#define __END_DECLS }
|
|
#else
|
|
#define __BEGIN_DECLS /* empty */
|
|
#define __END_DECLS /* empty */
|
|
#endif
|
|
__BEGIN_DECLS
|
|
|
|
#include <stdio.h>
|
|
|
|
/* Collection of input parameters for fit control. */
|
|
typedef struct {
|
|
double ftol; /* Relative error desired in the sum of squares.
|
|
Termination occurs when both the actual and
|
|
predicted relative reductions in the sum of squares
|
|
are at most ftol. */
|
|
double xtol; /* Relative error between last two approximations.
|
|
Termination occurs when the relative error between
|
|
two consecutive iterates is at most xtol. */
|
|
double gtol; /* Orthogonality desired between fvec and its derivs.
|
|
Termination occurs when the cosine of the angle
|
|
between fvec and any column of the Jacobian is at
|
|
most gtol in absolute value. */
|
|
double epsilon; /* Step used to calculate the Jacobian, should be
|
|
slightly larger than the relative error in the
|
|
user-supplied functions. */
|
|
double stepbound; /* Used in determining the initial step bound. This
|
|
bound is set to the product of stepbound and the
|
|
Euclidean norm of diag*x if nonzero, or else to
|
|
stepbound itself. In most cases stepbound should lie
|
|
in the interval (0.1,100.0). Generally, the value
|
|
100.0 is recommended. */
|
|
int patience; /* Used to set the maximum number of function evaluations
|
|
to patience*(number_of_parameters+1). */
|
|
int scale_diag; /* If 1, the variables will be rescaled internally.
|
|
Recommended value is 1. */
|
|
FILE* msgfile; /* Progress messages will be written to this file. */
|
|
int verbosity; /* OR'ed: 1: print some messages; 2: print Jacobian. */
|
|
int n_maxpri; /* -1, or max number of parameters to print. */
|
|
int m_maxpri; /* -1, or max number of residuals to print. */
|
|
} lm_control_struct;
|
|
|
|
/* Collection of output parameters for status info. */
|
|
typedef struct {
|
|
double fnorm; /* norm of the residue vector fvec. */
|
|
int nfev; /* actual number of iterations. */
|
|
int outcome; /* Status indicator. Nonnegative values are used as index
|
|
for the message text lm_infmsg, set in lmmin.c. */
|
|
int userbreak; /* Set when function evaluation requests termination. */
|
|
} lm_status_struct;
|
|
|
|
/* Preset (and recommended) control parameter settings. */
|
|
extern const lm_control_struct lm_control_double;
|
|
extern const lm_control_struct lm_control_float;
|
|
|
|
/* Preset message texts. */
|
|
|
|
extern const char* lm_infmsg[];
|
|
extern const char* lm_shortmsg[];
|
|
|
|
__END_DECLS
|
|
#endif /* LMSTRUCT_H */
|