5 #define alloc_error_check(p) { \
7 fprintf(stderr, "Allocation Failure!\n"); \
13 int *alloc_1d_int(
int n1)
17 i = (
int *) malloc(
sizeof(
int) * n1);
23 void free_1d_int(
int *i)
29 double *alloc_1d_double(
int n1)
33 d = (
double *) malloc(
sizeof(
double) * n1);
39 void free_1d_double(
double *d)
45 int **alloc_2d_int(
int n1,
int n2)
50 ii = (
int **) malloc(
sizeof(
int *) * n1);
51 alloc_error_check(ii);
52 i = (
int *) malloc(
sizeof(
int) * n1 * n2);
55 for (j = 1; j < n1; j++) {
56 ii[j] = ii[j - 1] + n2;
62 void free_2d_int(
int **ii)
69 double **alloc_2d_double(
int n1,
int n2)
74 dd = (
double **) malloc(
sizeof(
double *) * n1);
75 alloc_error_check(dd);
76 d = (
double *) malloc(
sizeof(
double) * n1 * n2);
79 for (j = 1; j < n1; j++) {
80 dd[j] = dd[j - 1] + n2;
86 void free_2d_double(
double **dd)
93 int ***alloc_3d_int(
int n1,
int n2,
int n3)
98 iii = (
int ***) malloc(
sizeof(
int **) * n1);
99 alloc_error_check(iii);
100 ii = (
int **) malloc(
sizeof(
int *) * n1 * n2);
101 alloc_error_check(ii);
103 for (j = 1; j < n1; j++) {
104 iii[j] = iii[j - 1] + n2;
106 i = (
int *) malloc(
sizeof(
int) * n1 * n2 * n3);
107 alloc_error_check(i);
109 for (j = 1; j < n1 * n2; j++) {
110 ii[j] = ii[j - 1] + n3;
116 void free_3d_int(
int ***iii)
124 double ***alloc_3d_double(
int n1,
int n2,
int n3)
126 double ***ddd, **dd, *d;
129 ddd = (
double ***) malloc(
sizeof(
double **) * n1);
130 alloc_error_check(ddd);
131 dd = (
double **) malloc(
sizeof(
double *) * n1 * n2);
132 alloc_error_check(dd);
134 for (j = 1; j < n1; j++) {
135 ddd[j] = ddd[j - 1] + n2;
137 d = (
double *) malloc(
sizeof(
double) * n1 * n2 * n3);
138 alloc_error_check(d);
140 for (j = 1; j < n1 * n2; j++) {
141 dd[j] = dd[j - 1] + n3;
147 void free_3d_double(
double ***ddd)