nr/nr.h
00001 #ifndef _NR_H_
00002 #define _NR_H_
00003
00004 #include "nr/binom.h"
00005 #include "nr/gamma.h"
00006 #include "nr/beta.h"
00007
00008 struct MarquadtMinimizer
00009 {
00010 float **covar;
00011 float **alpha;
00012 float *atry;
00013 float *beta;
00014 float *da;
00015 float **oneda;
00016
00017 void (*funcs)(float, float, float [], float *, float [], int);
00018
00019 float alamda;
00020 int mfit;
00021 float ochisq;
00022 float chisq;
00023 };
00024
00025 typedef struct MarquadtMinimizer MarquadtMinimizer;
00026
00027 enum {NR_MRQMIN_OK, NR_MRQMIN_SINGULAR_MATRIX};
00028
00029 void covsrt(float **covar, int ma, int ia[], int mfit);
00030
00031 int gaussj(float **a, int n, float **b, int m);
00032
00033 void mrqcof(float x[], float y[], float sig[], int ndata,
00034 float a[], int ia[], int ma,
00035 float **alpha, float beta[],
00036 float *chisq,
00037 void (*funcs)(float, float [], float *, float [], int));
00038
00039 void fgauss(float x, float a[], float *y, float dyda[], int na);
00040
00041 void mrqmin(float x[], float y[], float sig[], int ndata,
00042 float a[], int ia[], int ma,
00043 float **covar, float **alpha,
00044 float *chisq,
00045 void (*funcs)(float, float [], float *, float [], int),
00046 float *alamda);
00047
00048 int mrqmin3D(float x[], float y[], float** z, float** sig, int xdata, int ydata,
00049 float a[], int ia[], int ma,
00050 float **covar, float **alpha,
00051 float *chisq,
00052 void (*funcs)(float, float, float [], float *, float [], int),
00053 float *alamda);
00054
00055 int mrqmin3Dv2(float x[], float y[], float** z, float** sig, int xdata, int ydata,
00056 float a[], int ia[] , int ma,
00057 MarquadtMinimizer *minimizer);
00058
00059 void MarquadtMinimizer_destroy(MarquadtMinimizer* minimizer, int ma);
00060
00061 int mrqcof3D(float x[], float y[], float** z, float** sig, int xdata, int ydata,
00062 float a[], int ia[], int ma,
00063 float **alpha, float beta[],
00064 float *chisq,
00065 void (*funcs)(float, float, float[], float *, float [], int));
00066
00067 void four1 (float data[], unsigned long nn, int isign);
00068 void realft(float data[], unsigned long n, int isign);
00069 void twofft(float data1[], float data2[], float fft1[], float fft2[], unsigned long n);
00070 void convlv(float data[], unsigned long n, float respns[], unsigned long m, int isign, float ans[]);
00071
00072 void savgol(float c[], int np, int nl, int nr, int ld, int m);
00073 void lubksb(float **a, int n, int *indx, float b[]);
00074 void ludcmp(float **a, int n, int *indx, float *d);
00075
00076 #endif
Generated on Sun Feb 13 01:05:59 2005 for MapQuant by
1.3.7