【发布时间】:2017-12-27 00:25:38
【问题描述】:
有人知道 std::sqrt() 函数是如何工作的吗? (或者至少有一个想法?)
我在互联网上看到的方法似乎非常慢,使用了大量的近似值和迭代。
每个人都知道 sqrt() 函数很慢,但我想知道 std 中的那个是如何工作的,所以我可以模糊地知道什么时候避免它是有益的。 (是的,如果我想确定我可以分析,但有一个模糊的想法仍然很好)
编辑:并没有很好地提出这个问题......我感兴趣的是:
- 最快的计算平方根的 C++ 函数是什么样子的? (或多或少,我只是想知道它背后的实际逻辑)
【问题讨论】:
-
懒惰的答案是可能有一个硬件 (FPU) 指令来计算浮点值的平方根。但当然存在软件仿真。
-
@moshbear:不幸的是,这是用于倒数 sqrt...
-
@OliCharlesworth ...距离实际平方根只有一个 FP-multiply