mvddot.f
来自「网络带宽测试工具」· F 代码 · 共 32 行
F
32 行
Subroutine mvddot( a, b, c, lda, m, n )! ----------------------------------------------------------------------! --- Routine 'mvddot' does a matrix-vector multiplication 'Ab = c'! using a dotproduct implementation.! ---------------------------------------------------------------------- Use numerics Implicit None Integer :: lda, m, n Real(l_) :: a(lda,n), b(n), c(m) Integer :: i, j, nf Real(l_) :: t1, t2, t3, t4! ---------------------------------------------------------------------- nf = n - Mod( n, 4 )!$omp parallel do Do i = 1, m t1 = 0.0_l_; t2 = 0.0_l_;t3 = 0.0_l_;t4 = 0.0_l_ Do j = 1, nf, 4 t1 = t1 + a(i,j) *b(j) t2 = t2 + a(i,j+1)*b(j+1) t3 = t3 + a(i,j+2)*b(j+2) t4 = t4 + a(i,j+3)*b(j+3) End Do c(i) = t1 + t2 + t3 + t4 End Do c(nf+1:m) = 0.0_l_ Do j = nf + 1, n c(1:m) = c(1:m) + a(1:m,j)*b(j) End Do! ---------------------------------------------------------------------- End Subroutine mvddot
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?