void svdfit(double x[], double y[], double sig[], int ndata, double a[], int ma, double **u, double **v, double w[], double *chisq, void (*funcs)(double, double [], int)); double pythag(double a, double b); void svbksb(double **u, double w[], double **v, int m, int n, double b[], double x[]); void svdcmp(double **a, int m, int n, double w[], double **v); void svdvar(double **v, int ma, double w[], double **cvm); void nrerror(char error_text[]); double *vector(long size); void free_vector(double *v); int *ivector(long size); void free_ivector(int *v); double **matrix(long rows, long cols); void free_matrix(double **m); static double value; #define POW(value)((value)*(value)) static double maxarg1,maxarg2; #define FMAX(a,b) (maxarg1=(a),maxarg2=(b),(maxarg1) > (maxarg2) ?\ (maxarg1) : (maxarg2)) static int iminarg1,iminarg2; #define IMIN(a,b) (iminarg1=(a),iminarg2=(b),(iminarg1) < (iminarg2) ?\ (iminarg1) : (iminarg2)) #define SIGN(a,b) ((b) >= 0.0 ? fabs(a) : -fabs(a))