diff --git a/2023210/main.cpp b/2023210/main.cpp index 1fe368f..a62ab5b 100644 --- a/2023210/main.cpp +++ b/2023210/main.cpp @@ -13,7 +13,7 @@ CalcResult *m; // int* m; int dim_sizes[32] = {0}; -int precalc[2][1048576] = {0}; +// int precalc[2][1048576] = {0}; int tensor_pos(int num, int dim) { return k * num + dim; @@ -61,14 +61,14 @@ int find_min(int start, int end) { int dim_status = getmdim(start, end); // prepare the dims - // for (int i = 0; i < k - 2; i++) { - // if ((dim_status >> i) & 1) { - // needed_multiply_by_d *= dim_sizes[i]; - // } - // } - for (int i = 0; i <= (k - 2) / 16; i++) { - needed_multiply_by_d *= precalc[i][(dim_status >> (16 * i)) & 0xffff]; + for (int i = 0; i < k - 2; i++) { + if ((dim_status >> i) & 1) { + needed_multiply_by_d *= dim_sizes[i]; + } } + // for (int i = 0; i <= (k - 2) / 16; i++) { + // needed_multiply_by_d *= precalc[i][(dim_status >> (16 * i)) & 0xffff]; + // } for (int split_pos = start; split_pos < end; split_pos++) { int total_needed = tensors[tensor_pos(start, k - 2)] * @@ -123,17 +123,17 @@ int main() { } } - for (int i = 0; i < 2; i++) { - for (int j = 0; j < 0xffff; j++) { - int prod = 1; - for (int r = 0; r < 16; r++) { - if ((j >> r) & 1) { - prod *= dim_sizes[i * 16 + r]; - } - } - precalc[i][j] = prod; - } - } + // for (int i = 0; i < 2; i++) { + // for (int j = 0; j < 0xffff; j++) { + // int prod = 1; + // for (int r = 0; r < 16; r++) { + // if ((j >> r) & 1) { + // prod *= dim_sizes[i * 16 + r]; + // } + // } + // precalc[i][j] = prod; + // } + // } preparedim(n);