#include #include double *vector(long size) { double *v; v = (double *)malloc((size_t)((size) * sizeof(double))); if(v == NULL) fprintf(stderr, "Error : allocation failure in vector().\n"); return v; } void free_vector(double *v) { free(v); } double **matrix(long rows, long cols) { double **m, **p; long i; m = (double **)malloc((size_t)(rows * sizeof(double *))); if(m == NULL) printf("Error : allocation failure 1 in matrix().\n"); *m = (double *)malloc((size_t)(rows * cols * sizeof(double))); if(*m == NULL) printf("Error : allocation failure 2 in matrix().\n"); for(p = m, i = 1; i < rows; i++, p++) *(p + 1) = *p + cols; return m; } void free_matrix(double **m) { free(m); } int *ivector(long nh) /* allocate an int vector with subscript range v[nl..nh] */ { int *v; v=(int *)malloc((size_t) (nh*sizeof(int))); if (!v) printf("allocation failure in ivector()\n"); return v; } void free_ivector(int *v) /* free an int vector allocated with ivector() */ { free(v); }