繁体   English   中英

是否有GNU C编译器选项可生成比默认设置运行得更快但精度不高的浮点程序?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM