#include "nrutil_lmn.h" void nrerror (char error_text[]) { fprintf (stderr, "Run-time error...\n"); fprintf (stderr, "%s\n", error_text); fprintf (stderr, "...now exiting to system...\n"); exit (1); } VECTOR vector (int nl, int nh) { VECTOR v; v = (float *) malloc ((unsigned) (nh - nl + 1) * sizeof (float)); if (!v) nrerror ("allocation failure in vector()"); return v - nl; } IVECTOR ivector (int nl, int nh) { IVECTOR v; v = (int *) malloc ((unsigned) (nh - nl + 1) * sizeof (int)); if (!v) nrerror ("allocation failure in ivector()"); return v - nl; } MATRIX matrix (int nrl, int nrh, int ncl, int nch) { int i; MATRIX m; m = (float **) malloc ((unsigned) (nrh - nrl + 1) * sizeof (float *)); if (!m) nrerror ("allocation failure 1 in matrix()"); m -= nrl; for (i = nrl; i <= nrh; i++) { m[i] = (float *) malloc ((unsigned) (nch - ncl + 1) * sizeof (float)); if (!m[i]) nrerror ("allocation failure 2 in matrix()"); m[i] -= ncl; } return m; } IMATRIX imatrix (int nrl, int nrh, int ncl, int nch) { int i; IMATRIX m; m = (int **) malloc ((unsigned) (nrh - nrl + 1) * sizeof (int *)); if (!m) nrerror ("allocation failure 1 in imatrix()"); m -= nrl; for (i = nrl; i <= nrh; i++) { m[i] = (int *) malloc ((unsigned) (nch - ncl + 1) * sizeof (int)); if (!m[i]) nrerror ("allocation failure 2 in imatrix()"); m[i] -= ncl; } return m; } void free_vector (VECTOR v, int nl, int nh) { free ((char *) (v + nl)); } void free_ivector (IVECTOR v, int nl, int nh) { free ((char *) (v + nl)); } void free_matrix (MATRIX m, int nrl, int nrh, int ncl, int nch) { int i; for (i = nrh; i >= nrl; i--) free ((char *) (m[i] + ncl)); free ((char *) (m + nrl)); } void free_imatrix (IMATRIX m, int nrl, int nrh, int ncl, int nch) { int i; for (i = nrh; i >= nrl; i--) free ((char *) (m[i] + ncl)); free ((char *) (m + nrl)); }