对于
sqrt(x)
的不同。是否有具有SQRT函数的特定原因?
我进行了一次测试,以检查
pow(x,0.5)
和sqrt(x)
1.
pow(x,0.5)
2
for(int i=0;i<100000000;i++)
pow(double(i),0.5);
第1秒大约花了20秒钟,第二个在我的计算机上花了大约2秒钟。因此性能更好。由于其他已经提到的可读性是其他原因。
我记得在某个地方阅读SQRT()是一种特殊情况,可以正确地将IEEE规范保证。我会寻找一个来源。它也应该更快一点,因为它只需要处理一个案例。即使它们是一样的,很高兴有一个常用功能的内置别名!
Edit:根据IEEE-754,POW()函数和SQRT()均应实现,以使圆形值是最接近的浮点表示,距离实际值。但是,sqrt()仍然应该更快。
,如果您只会想到数学等价...
for(int i=0;i<100000000;i++)
sqrt(double(i));
sqrt
因此,您可以(正确地)假设可以为
pow
sqrt
函数。