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