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