我有一个场景,我希望编译器将浮点值舍入为零或朝向负无穷大。它只需要通过编译器选项来完成,我无法找到任何关于此的编译器选项,因为类似的方法可用于AIX平台的xlf编译器。
有没有办法在Linux中使用ifort编译器?
答案 0 :(得分:1)
列出了英特尔FORTRAN编译器的浮点选项here。我没有看到任何控制舍入模式的选项。
答案 1 :(得分:-1)
我不知道是否存在负无穷大旗帜,但flush to zero旗帜-ftz
似乎是你想要的一半。一个简单的测试如下:
program testftz
implicit none
real :: x
integer :: i
x = 1.0
do i=1,50
print *,i,x
x = x/10.0
enddo
end program testftz
在没有 -ftz
的情况下编译此会在第46步给出一个小值1.4012985e-45
,然后将其降至零。使用 -ftz
编译会在第38步产生一个小值9.999999e-38
,然后再降为零。