已知0 <= x <= 1的square_root(x)的快速近似

时间:2017-01-11 03:50:05

标签: c++ algorithm square-root

如果我知道sqrt(float32bit x)

,如何估算x<=1

必须有一些技巧来利用范围x<=1

返回结果不必精确,最大误差可能为<0.001
0.001只是一个神奇的数字,你可以改变它。)

我不介意语言,但我更喜欢C ++,而不是CPU(不是GPU) 我认为明确的公式比查表更好。

它对我3D游戏中的粒子很有用(VS 2015 + Ogre3D + Bullet),我无法找到任何关于它的线索。
我怀疑这场风暴的原因是它看起来像是一项任务/采访? ......或者解决方案已经众所周知了?

1 个答案:

答案 0 :(得分:2)

平方根通常通过FSQRT which getting increasingly faster计算。这是一条你几乎无法击败的单一指令。除非您可以直接使用其结果,否则快速反平方根不会有帮助。如果你必须再次反转它,那么FDIV本身将花费大约FSQRT所需的时间。