00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef FIT_GSL_H
00034 #define FIT_GSL_H
00035
00036 #include <gsl/gsl_vector.h>
00037 #include <gsl/gsl_matrix.h>
00038
00039 class Fit;
00040
00042 struct FitData {
00043 int n;
00044 int p;
00045 double * X;
00046 double * Y;
00047 double * sigma;
00048 Fit *fitter;
00049 };
00050
00051 int expd3_fdf (const gsl_vector * x, void *params, gsl_vector * f, gsl_matrix * J);
00052 int expd3_df (const gsl_vector * x, void *params, gsl_matrix * J);
00053 int expd3_f (const gsl_vector * x, void *params, gsl_vector * f);
00054 double expd3_d (const gsl_vector * x, void *params);
00055
00056 int expd2_fdf (const gsl_vector * x, void *params, gsl_vector * f, gsl_matrix * J);
00057 int expd2_df (const gsl_vector * x, void *params, gsl_matrix * J);
00058 int expd2_f (const gsl_vector * x, void *params, gsl_vector * f);
00059 double expd2_d (const gsl_vector * x, void *params);
00060
00061 int exp_fdf (const gsl_vector * x, void *params, gsl_vector * f, gsl_matrix * J);
00062 int exp_df (const gsl_vector * x, void *params, gsl_matrix * J);
00063 int exp_f (const gsl_vector * x, void *params, gsl_vector * f);
00064 double exp_d (const gsl_vector * x, void *params);
00065
00066 int boltzmann_fdf (const gsl_vector * x, void *params, gsl_vector * f, gsl_matrix * J);
00067 int boltzmann_df (const gsl_vector * x, void *params, gsl_matrix * J);
00068 int boltzmann_f (const gsl_vector * x, void *params, gsl_vector * f);
00069 double boltzmann_d (const gsl_vector * x, void *params);
00070
00071 int logistic_fdf (const gsl_vector * x, void *params, gsl_vector * f, gsl_matrix * J);
00072 int logistic_df (const gsl_vector * x, void *params, gsl_matrix * J);
00073 int logistic_f (const gsl_vector * x, void *params, gsl_vector * f);
00074 double logistic_d (const gsl_vector * x, void *params);
00075
00076 int gauss_fdf (const gsl_vector * x, void *params, gsl_vector * f, gsl_matrix * J);
00077 int gauss_df (const gsl_vector * x, void *params, gsl_matrix * J);
00078 int gauss_f (const gsl_vector * x, void *params,gsl_vector * f);
00079 double gauss_d (const gsl_vector * x, void *params);
00080
00081 int gauss_multi_peak_f (const gsl_vector * x, void *params, gsl_vector * f);
00082 double gauss_multi_peak_d (const gsl_vector * x, void *params);
00083 int gauss_multi_peak_df (const gsl_vector * x, void *params, gsl_matrix * J);
00084 int gauss_multi_peak_fdf (const gsl_vector * x, void *params, gsl_vector * f, gsl_matrix * J);
00085
00086 int lorentz_multi_peak_f (const gsl_vector * x, void *params, gsl_vector * f);
00087 double lorentz_multi_peak_d (const gsl_vector * x, void *params);
00088 int lorentz_multi_peak_df (const gsl_vector * x, void *params, gsl_matrix * J);
00089 int lorentz_multi_peak_fdf (const gsl_vector * x, void *params, gsl_vector * f, gsl_matrix * J);
00090
00091 int user_f(const gsl_vector * x, void *params, gsl_vector * f);
00092 double user_d(const gsl_vector * x, void *params);
00093 int user_df(const gsl_vector * x, void *params,gsl_matrix * J);
00094 int user_fdf(const gsl_vector * x, void *params,gsl_vector * f, gsl_matrix * J);
00095
00096 #endif