是否可以在ifort中启用舍入为零或舍入到负无穷大?

时间:2013-11-26 12:39:58

标签: linux floating-point fortran rounding intel-fortran

我有一个场景,我希望编译器将浮点值舍入为零或朝向负无穷大。它只需要通过编译器选项来完成,我无法找到任何关于此的编译器选项,因为类似的方法可用于AIX平台的xlf编译器。

有没有办法在Linux中使用ifort编译器?

2 个答案:

答案 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,然后再降为零。