为了提高我的代码的时间效率,我想测试一个较低精度的实数,例如使用半精度(2 个字节)。
但是,我不确定我是否可以在 Fortran 中做到这一点。在玩过内部SELECTED_REAL_KIND过程之后,gfortran 似乎只能处理 4、8、10 或 16 字节的精度。
编辑:实际上,我可以直接阅读手册...
那么是否可以在 Fortran 中使用半精度浮点数(可能使用另一个编译器)?
如果没有,是否有一个简单的替代原型半精度代码的方法?
为了提高我的代码的时间效率,我想测试一个较低精度的实数,例如使用半精度(2 个字节)。
但是,我不确定我是否可以在 Fortran 中做到这一点。在玩过内部SELECTED_REAL_KIND过程之后,gfortran 似乎只能处理 4、8、10 或 16 字节的精度。
编辑:实际上,我可以直接阅读手册...
那么是否可以在 Fortran 中使用半精度浮点数(可能使用另一个编译器)?
如果没有,是否有一个简单的替代原型半精度代码的方法?
Fortran 标准没有指定给定编译器需要支持的浮点数的精度和范围。它所说的只是至少需要支持两种不同类型的实数,并且其中较大的实数需要恰好两倍的内存来表示另一个(较小的)类型的数字。实际支持的内容取决于编译器编写者选择的内容,当然今天找不到看起来像 IEEE 浮点数的东西是很少见的。
但是请注意,我说“至少两个”,编译器可以自由支持编译器编写者想要实现的任意数量。因此理论上可能有一个编译器支持你想要的。不幸的是,我不知道一个。