Существует ли подпрограмма BLAS или LAPACK для симметричного матричного умножения, использующая преимущества симметрии?

Я надеюсь, что кто-то может мне помочь. Я ищу подпрограмму BLAS или LAPACK специально для матричного умножения двух больших и одинаковых симметричных матриц.

До сих пор я тестировал подпрограммы Dyrk и dgemm, и обе они очень медленные. Мне интересно, есть ли процедура, специфичная для возведения в квадрат симметричной матрицы...

Любая помощь будет принята с благодарностью!


person tinyteeth    schedule 26.06.2014    source источник
comment
Вы можете попробовать dsymm() BLAS, чтобы частично обработать случай симметричной матрицы A. netlib.org/blas/ index.html dsymm() выполняет C=B*A, где A является симметричным.   -  person francis    schedule 28.06.2014
comment
@francis Есть ли какой-нибудь метод LAPACK для умножения двух симметричных матриц? (оба в упаковке).   -  person Pantelis Sopasakis    schedule 10.07.2015
comment
@PantelisSopasakis: я не нашел метода для этой операции в BLAS. Взгляните на это. Прирост памяти составляет N ^ 2, в то время как матрично-матричные операции требуют N ^ 3 операций. Таким образом, эффективность вычислений является узким местом, и упаковка может привести к замедлению вычислений здесь. Вы можете использовать dsymm() в сочетании с dptttr/dtrttp см. упакованное и полное хранилище"> stackoverflow.com/questions/28445648/   -  person francis    schedule 14.07.2015