是否有C ++函数精确返回内建的CPU操作RSQRTSS的平方根倒数?

问题描述 投票:0回答:1

我正在寻找一个C ++函数,该函数通过使用精确的方法(例如内置XMM操作rsqrt(x) = 1/sqrt(x)(请参阅RSQRTSS)来返回浮点数的反sqrt:https://www.felixcloutier.com/x86/rsqrtss。 (即,我想要内置的近似值,而不是更精确的1/sqrtf,而且我不太在乎速度(很多)。)

根据此问题:

Is there a fast C or C++ standard library function for double precision inverse square root?

...至少没有“双精度快速方法”可以使用标准C ++库来完成此任务。但是,如何使用float缓慢,非标准地进行呢?

c++ sqrt
1个回答
1
投票

标准库中没有执行此操作的函数,但是您的编译器可能会优化表达式1 / sqrt(value),使其确实发出RSQRTSS指令。例如,使用编译器标志-ffast-math -march=native,GCC将发出该指令,请参见:https://godbolt.org/z/cL6seG

© www.soinside.com 2019 - 2024. All rights reserved.