No precalc.

This commit is contained in:
unlockable
2024-01-23 13:26:21 +01:00
parent aacd9404ae
commit 6770ceac90

View File

@@ -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);