已知 0<=x<=1 的 square_root(x) 的快速近似
Fast approximation of square_root(x) with known 0<=x<=1
如果我知道x<=1
,如何近似sqrt(float32bit x)
?
必须有一些技巧来利用范围x<=1
.
返回结果不必精确,最大误差可能<0.001
。
(0.001
只是一个神奇的数字,你可以改变它。
我不介意语言,但我更喜欢C++,在 CPU(不是 GPU)中。
我认为显式公式比表查找更好。
它对我的3D游戏中的粒子很有用(VS 2015 + Ogre3D + Bullet),我找不到任何关于它的线索。
我怀疑反对票风暴的原因是它看起来像是任务/面试?
...还是解决方案已经众所周知?
平方根通常通过FSQRT计算,FSQRT越来越快。这是一个你几乎无法击败的单一指令。例如,快速平方根反比将无济于事,除非您可以直接使用其结果。如果您必须再次反转它,仅 FDIV 就花费的时间与 FSQRT 大致相同。
相关文章:
- 如何用参数值调用函数(仅在运行时已知)
- luaL_dofile在已知良好的字节码上失败,可以使用未编译的版本
- 如何改进一堆在已知值范围内评估变量的 else-if 条件?
- std::unordered_map 如果输入大小已知,如何优化批量插入
- 使用大量已知常量变量的正确方法
- 如何测试采用 std::initializer_list 的 ctor 具有编译时已知长度?
- 无法初始化已知大小的矢量指针,该大小不会因多态性而更改
- 从编译时已知的日历日期创建"std::chrono::time_point"
- AES ECB已知文本攻击
- 有一个可迭代的容器,其中的成员在编译时是已知的
- 如何在cmake工具链文件中设置编译功能,以便已知的自定义编译器使用target_compile_features
- 如果所有派生类在编译时都是已知的,那么final关键字是否提供了优化
- "Materializing"已知类型的对象以进行C++类型推断
- 为什么我在这里收到C++没有已知的转换错误?
- 使用 C++/Qt(已知密码)打开加密的 PDF
- 如果条件取决于模板类型并且在编译时已知,是否可以保证C++编译器不会生成分支?
- map int<-->int, 1:N, 已知边界
- 函数已知时的傅里叶变换
- 候选函数不可行:没有从 std::vector<derived> 到 std::vector <base>的已知转换
- 当编译时已知引用占用结构中的空间时,是否错过了优化?