Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define m5D(ptr, idx0, idx1, idx2, idx3, idx4, dim1, dim2, dim3, dim4)
- ptr[((((idx0 * dim1)+idx1)*dim2+idx2)*dim3+idx3)*dim4 + idx4]
- *ptr
- #define D_A 2
- #define D_B 3
- #define D_C 4
- #define D_D 5
- #define D_E 6
- int main(void)
- {
- int ix0, ix1, ix2, ix3, ix4, temp;
- double bar[D_A][D_B][D_C][D_D][D_E];
- int foo[D_A][D_B][D_C][D_D][D_E];
- /* seed random # generator */
- srand((unsigned)time(NULL));
- /* store all values before testing any */
- for (ix0 = 0; ix0 < D_A; ++ix0)
- for (ix1 = 0; ix1 < D_B; ++ix1)
- for (ix2 = 0; ix2 < D_C; ++ix2)
- for (ix3 = 0; ix3 < D_D; ++ix3)
- for (ix4 = 0; ix4 < D_E; ++ix4)
- {
- foo[ix0][ix1][ix2][ix3][ix4] = rand();
- //bar[ix0][ix1][ix2][ix3][ix4] = rand() + rand() / 321.0;
- }
- /* Test all stored values. */
- for (ix0 = 0; ix0 < D_A; ++ix0)
- for (ix1 = 0; ix1 < D_B; ++ix1)
- for (ix2 = 0; ix2 < D_C; ++ix2)
- for (ix3 = 0; ix3 < D_D; ++ix3)
- for (ix4 = 0; ix4 < D_E; ++ix4)
- {
- if (m5D((int *)foo, ix0, ix1, ix2, ix3, ix4, D_B, D_C,
- D_D, D_E) != foo[ix0][ix1][ix2][ix3][ix4])
- {
- fprintf(stderr, "Error: foo[%d][%d][%d][%d][%d]n",
- ix0, ix1, ix2, ix3, ix4);
- return EXIT_FAILURE;
- }
- }
- printf("The number please %pn", m5D((int *)foo, ix0, ix1, ix2, ix3, ix4, D_B, D_C,D_D, D_E));
- printf("Success!n");
- return EXIT_SUCCESS;
- }
- #define m5D(ptr, idx0, idx1, idx2, idx3, idx4, dim1, dim2, dim3, dim4)
- ((ptr)[(idx0)][(idx1)][(idx2)][(idx3)][(idx4)])
- printf("The number please %dn", m5D(foo, ix0, ix1, ix2, ix3, ix4, D_B, D_C,D_D, D_E));
- ptr[((((idx0 * dim1)+idx1)*dim2+idx2)*dim3+idx3)*dim4 + idx4]
- #define m5D(ptr, idx0, idx1, idx2, idx3, idx4, dim1, dim2, dim3, dim4)
- ptr[((((idx0 * dim1)+idx1)*dim2+idx2)*dim3+idx3)*dim4 + idx4]
- ...
- m5D(foo, ix0, ix1, ix2, ix3, ix4, D_B, D_C,D_D, D_E)
- #define m5D(ptr, idx0, idx1, idx2, idx3, idx4, dim1, dim2, dim3, dim4)
- (ptr)[(((((idx0) * (dim1))+(idx1))*(dim2)+(idx2))*(dim3)+(idx3))*(dim4) + (idx4)]
Add Comment
Please, Sign In to add comment