В середине кода на c ++, eclipse, мне нужно вычислить множитель матриц A и B размером 2400 * 3600 (поэтому размеры не совпадают).Матрицы хранятся в двумерных массивах с плавающей точкой. Они не редкие, без ограничений.
Каждое умножение занимает так много времени (несколько минут), и мне серьезно нужно его уменьшить, потому что у меня есть цикл, который повторяет 50миллион раз.и каждый раз новые A и B должны быть умножены.Любая рекомендация приветствуется, чтобы уменьшить сложность времени.(даже изменить структуру хранения данных, если вы думаете, что это может помочь).Например, что если я сохраню данные в одномерных массивах?Или использовать векторы вместо массивов?
В одном конкретном случае первый столбец всегда равен 1, а значения - 1, -1 или ноль.Есть идеи для этого случая?
В других случаях значения могут быть любыми.** одним из этих умножений является X, умноженное на его транспонированное.Есть ли какие-либо рекомендации по этому конкретному вопросу?