A
— матрица MxK
, B
— вектор размера K
, а C
— матрица KxN
. Какой набор операторов BLAS следует использовать для вычисления приведенной ниже матрицы?
M = A*diag(B)*C
Один из способов реализовать это — использовать три цикла for, как показано ниже.
for (int i=0; i<M; ++i)
for (int j=0; j<N; ++j)
for (int k=0; k<K; ++k)
M(i,j) = A(i,k)*B(k)*C(k,j);
Действительно ли стоит реализовать это в BLAS, чтобы повысить эффективность скорости?