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