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