[英]Is there a GNU C compiler option that generate floating point programs that run faster but less precise than the default setting?
我一直在寻找GNU C的选项,以便可以将我的浮点程序生成为比默认gnu设置生成的代码运行速度更快但精度不高的代码。
说我有一个程序my_fp_prog.c
double sqrt_two(return sqrt(2));
虽然准确的答案应该是1.414 ....,但我只需要1.4甚至1.5或1.3的答案就可以了,但是我需要一个更快的程序。 当然,我们使用的是便宜的sqrt算法,但我要寻找的是能够完成此任务的编译器选项。 希望存在这样的选择。
在GCC的手册页中:
-ffast-math
设置
-fno-math-errno
,-funsafe-math-optimizations
,-ffinite-math-only
,-fno-rounding-math
,-fno-signaling-nans
-fcx-limited-range
和-fcx-limited-range
。此选项将导致定义预处理程序宏
__FAST_MATH__
。除
-Ofast
外,此选项未由任何-O
选项-Ofast
因为它可能导致依赖于数学函数的IEEE或ISO规则/规范的确切实现的程序输出不正确。 但是,对于不需要这些规范保证的程序,它可能会产生更快的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.