c/c++语言开发共享双精度平方根有快速C或C ++标准库函数吗?

我发现自己在打字

double foo=1.0/sqrt(...); 

很多,我听说现代处理器有内置的反平方根操作码。

是否存在C或C ++标准库的反平方根函数

    不,不,没有。 不是在C ++中。 不。

    为什么不尝试这个? #define INSQRT(x) (1.0/sqrt(x))

    它同样快,需要较少的打字(让你觉得它的function),使用双精度,准确到1 / sqrt(..)

    如果你发现自己一遍又一遍地写同样的东西,你应该认为自己“function!”:

     double invsqrt(const double x) { return 1.0 / std::sqrt(x); } 

    现在代码更加自我记录:人们不必推断 1.0 / std::sqrt(x)是反平方根,他们读取它。 此外,您现在可以插入所需的任何实现,每个呼叫站点自动使用更新的定义。

    要回答你的问题,不,它没有C(++)函数,但是现在如果你发现你的表现太缺乏了,你可以用你自己的定义代替。

    如果您不怕使用自己的function,请尝试以下方法:

     template  T invsqrt(T x) { return 1.0 / std::sqrt(x); } 

    在任何现代优化的编译器中,它应该与原始的1.0 / std::sqrt(x)一样快。 此外,它可以与双打或浮动一起使用。

      以上就是c/c++开发分享双精度平方根有快速C或C ++标准库函数吗?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/545943.html

      (0)
      上一篇 2021年1月10日
      下一篇 2021年1月10日

      精彩推荐