#include #include void nrerror(error_text) char error_text[]; /* Numerical Recipes standard error handler */ { void _exit(); fprintf(stderr,"Numerical Recipes run-time error...\n"); fprintf(stderr,"%s\n",error_text); fprintf(stderr,"...now exiting to system...\n"); _exit(1); } float *vector(n) int n; /* allocate a float vector with subscript range v[0..n] */ { float *v; v=(float *)malloc((unsigned) (n)*sizeof(float)); if (!v) nrerror("allocation failure in vector()"); return v; } int *ivector(n) int n; /* allocate an int vector with subscript range v[0..n] */ { int *v; v=(int *)malloc((unsigned) (n)*sizeof(int)); if (!v) nrerror("allocation failure in ivector()"); return v; } short int *isvector(n) int n; /* allocate a short int vector with subscript range v[0..n] */ { short int *v; v=(short int *)malloc((unsigned) (n)*sizeof(short int)); if (!v) nrerror("allocation failure in isvector()"); return v; } char *cvector(n) int n; /* allocate a char vector with subscript range v[0..n] */ { char *v; v=(char *)malloc((unsigned) (n)*sizeof(char)); if (!v) nrerror("allocation failure in cvector()"); return v; } double *dvector(n) int n; /* allocate a double vector with subscript range v[0..n] */ { double *v; v=(double *)malloc((unsigned) (n)*sizeof(double)); if (!v) nrerror("allocation failure in dvector()"); return v; } float **matrix(nr,nc) int nr,nc; /* allocate a float matrix with size m[nr][nc] */ { int i; float **m; /* allocate pointers to rows */ m=(float **) malloc((unsigned) (nr)*sizeof(float*)); if (!m) nrerror("allocation failure 1 in matrix()"); /* allocate rows and set pointers to them */ for(i=0;i=0;i--) free((char*) (m[i])); free((char*) (m)); } void free_dmatrix(m,nr,nc) double **m; int nr,nc; /* free a double matrix allocated by dmatrix() */ { int i; for(i=nr-1;i>=0;i--) free((char*) (m[i])); free((char*) (m)); } void free_imatrix(m,nr,nc) int **m; int nr,nc; /* free an int matrix allocated by imatrix() */ { int i; for(i=nr-1;i>=0;i--) free((char*) (m[i])); free((char*) (m)); } void free_ismatrix(m,nr,nc) short int **m; int nr,nc; /* free a short int matrix allocated by ismatrix() */ { int i; for(i=nr-1;i>=0;i--) free((char*) (m[i])); free((char*) (m)); } void free_cmatrix(m,nr,nc) char **m; int nr,nc; /* free a char matrix allocated by cmatrix() */ { int i; for(i=nr-1;i>=0;i--) free((char*) (m[i])); free((char*) (m)); } void free_submatrix(b,nrl,nrh,ncl,nch) /* free a submatrix allocated by submatrix() */ float **b; int nrl,nrh,ncl,nch; { free((char*) (b+nrl)); }