Вычисление A * B, когда B - симметричная матрица в броненосце - PullRequest
0 голосов
/ 24 мая 2018

Есть ли способ умножить симметричную матрицу на плотную в броненосце (и использовать тот факт, что у нас есть симметричная матрица)?Я знаю о DSYMM Рутине в BLAS, но матрицы, с которыми я имею дело, имеют тип mat (они не являются массивами), поэтому мне интересно, есть ли что-нибудь в броненосце, использующем DSYMM Рутину из BLAS.Я не смог найти ничего в документации броненосца.

1 Ответ

0 голосов
/ 26 мая 2018

Файлы include/armadillo_bits/def_blas.hpp (интерфейс BLAS) и include/armadillo_bits/glue_times_meat.hpp (реализующие умножение) в исходном выпуске вообще не ссылаются на dsymm (в отличие от dgemm), поэтому даже если ваши матрицы могут быть симметричными,умножение не будет использовать это преимущество.

Однако, если вам нужно использовать dsymm, вы можете использовать метод матриц memptr() для получения доступа к необработанномусмежная память и звони dsymm прямо себе ...

...