我的 fortran 代码包含如下行
integer, parameter :: dbp = kind(1.0d0)
integer, parameter :: n = 1 000 000
real(dbp) :: x(n), y(n), z(n)
y(:) = x(:) * z(:)
我想利用(如果可能的话)一些优化的数学库来执行这个操作。我找到了一个 lapack 例程 dgbmv,它将矩阵乘以向量。如果我创建一个对角矩阵,这将满足我的需要
但我不知道这是否是计算 x(:)*z(:) 的最佳方法。有没有更合适的方法?