#include using namespace Upp; #include "Dim2.h" #include "Dim3.h" #include "Dim4.h" #include "Dim5.h" #include "Dim.hpp" int gi; int hi; void Foo() { gi++; } Dim2 Box(int n) { RLOG("---"); Dim2 d2; d2.Create(n, n); for(int pass = 0; pass < 2; pass++) { int q = 0; for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) if(pass) ASSERT(d2[i][j] == ++q); else d2[i][j] = ++q; } return d2; } Dim3 Cube(int n) { RLOG("---"); Dim3 d3; d3.Create(n, n, n); for(int pass = 0; pass < 2; pass++) { int q = 0; for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) for(int k = 0; k < n; k++) if(pass) ASSERT(d3[i][k][j] == ++q); else d3[i][k][j] = ++q; } return d3; } Dim4 Qube(int n) { RLOG("---"); Dim4 d4; d4.Create(n, n, n, n); for(int pass = 0; pass < 2; pass++) { int q = 0; for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) for(int k = 0; k < n; k++) for(int l = 0; l < n; l++) if(pass) ASSERT(d4[i][k][j][l] == ++q); else d4[i][k][j][l] = ++q; } return d4; } Dim5 Cube5(int n) { RLOG("---"); Dim5 d5; d5.Create(n, n, n, n, n); for(int pass = 0; pass < 2; pass++) { int q = 0; for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) for(int k = 0; k < n; k++) for(int l = 0; l < n; l++) for(int m = 0; m < n; m++) if(pass) ASSERT(d5[i][k][j][l][m] == ++q); else d5[i][k][j][l][m] = ++q; } return d5; } CONSOLE_APP_MAIN { StdLogSetup(LOG_FILE|LOG_COUT); for(int i = 0; i < 20; i++) { RLOG(i); Box(i); } for(int i = 0; i < 20; i++) { RLOG(i); Cube(i); } for(int i = 0; i < 20; i++) { RLOG(i); Qube(i); } for(int i = 0; i < 20; i++) { RLOG(i); Cube5(i); } Dim2 b = Box(20); RDUMP(b[19][19]); Dim3 x = Cube(20); RDUMP(x[0][0][0]); RLOG("---"); x = Cube(40); RDUMP(x[10][10][10]); const Dim3& y = x; RDUMP(y[10][10][10]); Dim4 qx = Qube(20); RDUMP(qx[19][19][19][19]); const Dim4& qy = qx; RDUMP(qy[10][10][10][10]); Dim5 fx = Cube5(10); RDUMP(fx[9][9][9][9][9]); const Dim5& fy = fx; RDUMP(fy[9][9][9][9][9]); }