Python中的平方根逆

Python中的平方根逆,python,performance,inverse,square-root,Python,Performance,Inverse,Square Root,是否有Python库提供了实现以下链接中描述的“快速平方根逆”算法的函数? 也许numpy/SciPy?您可以在Python中执行此操作,但不是以非常直接的方式(即大量函数调用),因此执行x**-.5可能会快得多 因此,这可能是一个有趣的练习,但一点也不实用。你已经可以做平方根的逆运算了,只需做x**-1/2,这样你就不需要做复杂的函数,而且这样做可能更快,也更容易 就像interjay说的,如果你真的担心这样的事情的速度,你可能应该使用更快更精确的语言来获得更快的方式 我找到的唯一可能有它的图

是否有Python库提供了实现以下链接中描述的“快速平方根逆”算法的函数?
也许numpy/SciPy?

您可以在Python中执行此操作,但不是以非常直接的方式(即大量函数调用),因此执行
x**-.5
可能会快得多


因此,这可能是一个有趣的练习,但一点也不实用。

你已经可以做平方根的逆运算了,只需做
x**-1/2
,这样你就不需要做复杂的函数,而且这样做可能更快,也更容易

就像interjay说的,如果你真的担心这样的事情的速度,你可能应该使用更快更精确的语言来获得更快的方式

我找到的唯一可能有它的图书馆是


祝你好运

如果像inverse sqrt这样的操作的速度对您来说非常重要,那么Python可能不是合适的语言。您是否遇到了导致您提出此问题的瓶颈?虽然用Python实现该算法很容易,但它只比进行浮点计算快4倍。由于
(x**-0.5)
中的浮点运算是在python代码的1次运算中完成的,并且实际的平方根将使用C数学库进行计算,因此如果在python中实现,则该算法的任何速度优势都将丢失。C的执行速度大约是python的10倍,因此您将放弃10倍的速度提升以获得4倍的速度boos。如果你真的需要这个算法,用C语言实现它,并将它导入python。除此之外,Wikipedia文章中的C函数体实际上是十行代码。键入这个问题比自己移植要费劲得多。@Interjay:我使用python作为开发过滤器的测试平台。稍后,过滤器将在微控制器上的C/C++上运行。我选择python作为octave的替代品,因为它是设计过滤算法的一种快速方法。Python与octave相比速度慢,可比性差,因为在后台有C/C++库。@史蒂文·伦巴尔斯基:不,事实上不是。我只需要计算几次平方根的倒数,由于所描述的方法是最快、最优雅的方法,我想可能有一个python命令正在使用它。谢谢。是的,我正在考虑从一开始就用C/C++开发与时间相关的部分,因为这只是一个过滤器的测试台(带有一些用于可视化的gui元素)。稍后它将在微控制器上以C/C++运行。哦,我明白了,祝你好运!