OSX 中 MKL BLAS 和 Accelerate Framework BLAS 之间的 DSCAL 不一致
Incoherence in DSCAL between MKL BLAS and Accelerate Framework BLAS in OSX
在 OSX 下使用 OSX BLAS(加速框架)。下面的程序
real*8 :: x(2)
real*8 :: zero=0.0d0
x(1)=1.0d0
x(2)=1/zero
print*, x(2)*0.0d0
call dscal(2,0.d0,x,1)
print*, x
end
给我以下输出
NaN
0.0000000000000000 0.0000000000000000
以及 OSX+MKL BLAS
上的以下输出
NaN
0.0000000000000000 NaN
即似乎 OSX BLAS DSCAL 在乘以 0 时发生了短路(我们得到 X(2)=0 尽管应该获得 0*Inf=NaN)
它是已知的 bug/feature 吗?
这既不是错误也不是功能。 0*NaN
0*Inf
的结果是什么由实施者自行决定。以上的目的到底是什么?
在 OSX 下使用 OSX BLAS(加速框架)。下面的程序
real*8 :: x(2)
real*8 :: zero=0.0d0
x(1)=1.0d0
x(2)=1/zero
print*, x(2)*0.0d0
call dscal(2,0.d0,x,1)
print*, x
end
给我以下输出
NaN
0.0000000000000000 0.0000000000000000
以及 OSX+MKL BLAS
上的以下输出 NaN
0.0000000000000000 NaN
即似乎 OSX BLAS DSCAL 在乘以 0 时发生了短路(我们得到 X(2)=0 尽管应该获得 0*Inf=NaN)
它是已知的 bug/feature 吗?
这既不是错误也不是功能。 0*NaN
0*Inf
的结果是什么由实施者自行决定。以上的目的到底是什么?