可以使用__ieee754_pow()
选项或-O
来优化函数ffast-math
如果我们使用nex代码,pow
的来电是否会更改为cbrt
,
double test (double x)
{
return __ieee754_pow(x, 2./3.);
}
如果答案是否定的,请解释原因。
答案 0 :(得分:5)
编译器无法知道__ieee754_pow
的语义,即无法知道它正在做什么" pow"操作。这是因为未在任何地方指定名称__ieee754_pow
;它是系统数学库的内部实现细节。在任何情况下,您根本不应该使用它,除非您正在调试libm
,否则我们甚至不应该意识到它存在,所以我不明白其目的这个问题。