00001 #ifndef _GVGCPFIT_H_INCLUDED
00002 #define _GVGCPFIT_H_INCLUDED
00003
00004 #include "cpl_port.h"
00005 #include "cpl_conv.h"
00006 #include "cpl_error.h"
00007
00008 #define EXTERNAL
00009 #define LOCAL static
00010
00011 #define SUCCESS 0
00012 #define ABORT -1
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef CURVEFIT_H
00029 #define CURVEFIT_H
00030
00031
00032
00033 EXTERNAL int svdfit(float x[], float y[], int ndata,
00034 double a[], int ma, double **u, double **v, double w[],
00035 double *chisq, void (*funcs)(double, double *, int));
00036
00037 EXTERNAL void svbksb(double **u, double w[], double **v, int m,int n,
00038 double b[], double x[]);
00039
00040 EXTERNAL void svdvar(double **v, int ma, double w[], double **cvm);
00041
00042 EXTERNAL int svdcmp(double **a, int m, int n, double *w, double **v);
00043
00044
00045 #endif
00046
00047
00048
00049
00050
00051
00052
00053
00054 #ifndef __POLYFIT_H
00055 #define __POLYFIT_H
00056
00057 EXTERNAL int OneDPolyFit( double *rms_err, double *coeffs_array,
00058 int fit_order, int no_samples, double *f_array, double *x_array );
00059
00060 EXTERNAL double OneDPolyEval( double *coeff, int order, double x );
00061
00062 EXTERNAL int TwoDPolyFit( double *rms_err, double *coeffs_array,
00063 int fit_order, int no_samples, double *f_array, double *x_array,
00064 double *y_array );
00065
00066 EXTERNAL double TwoDPolyEval( double *coeff, int order, double x, double y );
00067
00068 EXTERNAL int TwoDPolyGradFit( double *rms_err, double *coeffs_array,
00069 int fit_order, int no_samples, double *gradxy_array,
00070 double *x_array, double *y_array );
00071
00072 EXTERNAL void TwoDPolyGradEval(double *fgradx, double *fgrady,
00073 double *coeff, int order, double x, double y);
00074
00075 EXTERNAL void GetPolyInX (double *xcoeffs, double *xycoeffs, int order,
00076 double y);
00077
00078 EXTERNAL void GetPolyInY(double *ycoeffs, double *xycoeffs, int order,
00079 double x);
00080
00081 EXTERNAL int ThreeDPolyFit( double *rms_err, double *coeffs_array,
00082 int fit_order, int no_samples, double *f_array, double *x_array,
00083 double *y_array, double *z_array );
00084
00085 EXTERNAL double ThreeDPolyEval( double *coeff, int order, double x, double y, double z );
00086
00087
00088
00089 #endif
00090
00091
00092
00093
00094 #endif