#include #include #include void *I_malloc(size_t n) { void *b; b = G_malloc(n); return b; } void *I_realloc(void *b, size_t n) { b = G_realloc(b, n); return b; } int I_free(void *b) { if ((char *)b != NULL) G_free(b); return 0; } double **I_alloc_double2(int a, int b) { double **x; int i; x = (double **)I_malloc((a + 1) * sizeof(double *)); for (i = 0; i < a; i++) { int n; x[i] = (double *)I_malloc(b * sizeof(double)); for (n = 0; n < b; n++) x[i][n] = 0; } x[a] = NULL; return x; } int *I_alloc_int(int a) { int *x; int i; x = (int *)I_malloc(a * sizeof(int)); for (i = 0; i < a; i++) x[i] = 0; return x; } int **I_alloc_int2(int a, int b) { int **x; int i, n; x = (int **)I_malloc((a + 1) * sizeof(int *)); for (i = 0; i < a; i++) { x[i] = (int *)I_malloc(b * sizeof(int)); for (n = 0; n < b; n++) x[i][n] = 0; } x[a] = NULL; return x; } int I_free_int2(int **x) { int i; if (x != NULL) { for (i = 0; x[i] != NULL; i++) G_free(x[i]); G_free(x); } return 0; } int I_free_double2(double **x) { int i; if (x != NULL) { for (i = 0; x[i] != NULL; i++) G_free(x[i]); G_free(x); } return 0; } double ***I_alloc_double3(int a, int b, int c) { double ***x; int i, n; x = (double ***)G_malloc((a + 1) * sizeof(double **)); for (i = 0; i < a; i++) { x[i] = I_alloc_double2(b, c); if (x[i] == NULL) { for (n = 0; n < i; n++) G_free(x[n]); G_free(x); return (double ***)NULL; } } x[a] = NULL; return x; } int I_free_double3(double ***x) { int i; if (x != NULL) { for (i = 0; x[i] != NULL; i++) I_free_double2(x[i]); G_free(x); } return 0; }