LINUX.ORG.RU

История изменений

Исправление bormant, (текущая версия) :

Ведь транспонирование специально выполняется для того чтобы по колонкам не бегать.

Без транспонирования вы умножали i-ю строку A на j-й столбец B.
После транспонирования (замены j-го столбца B j-й строкой T) нужно умножать i-ю строку A на j-ю строку T.
Разве нет?

Без транспонирования было бы:

-				*(C + N*i + j) += *(A + N*i + k) * *(T + N*i + k);
+				*(C + N*i + j) += *(A + N*i + k) * *(T + N*k + j);
// или
+				C[N*i + j] = A[N*i + k] * T[N*k + j];

Исходная версия bormant, :

Ведь транспонирование специально выполняется для того чтобы по колонкам не бегать.

Без транспонирования вы умножали i-ю строку A на j-й столбец B.
После транспонирования (замены j-го столбца j-й строкой) нужно умножать i-ю строку A на j-ю строку T.
Разве нет?

Без транспонирования было бы:

-				*(C + N*i + j) += *(A + N*i + k) * *(T + N*i + k);
+				*(C + N*i + j) += *(A + N*i + k) * *(T + N*k + j);
// или
+				C[N*i + j] = A[N*i + k] * T[N*k + j];