我在哪里可以检查Python的数学函数?

Tom*_*ace 22 python math sqrt

我想看看Python计算平方根的方式,所以我试图找到它的定义math.sqrt(),但我无法在任何地方找到它.我看过的_math.c,mathmodule.c和其他地方.

我知道python使用C的数学函数,但它们是在Python发行版中的某个地方,还是在其他地方链接到代码?我使用的是Mac OS X.

算法在math.sqrt()哪里?

Ale*_*lik 13

这取决于实施.CPython使用标准C库中的数学函数.Jython最有可能使用Java的数学方法.等等.

实际上,Python与数学函数的实际实现无关.那些与IEEE 754更相关,它现在几乎专门用于表示计算机中的浮点数.

无论如何,就CPython而言,它的math模块只是C函数的一个薄包装(在页面底部的prooflink).C函数作为标准C库的一部分实现.它通常包含在OS发行版中,并且很可能以二进制形式分发,没有源代码.另请注意,许多微处理器都对这些操作中的某些操作有专门的指令,您的编译器可能会使用这些操作而不是跳转到C库中的实现.

我无法告诉您系统上标准C库中使用的确切算法.这里解释一些可能的算法.

在OS X的特定情况下,数学函数存在libSystem.dylib,遗憾的是它不是开源的(Apple的开源站点上只有存根代码).但是,如果您感兴趣,可以拆解它 - 在当前系统上,尝试例如

otool -tvV /usr/lib/system/libsystem_m.dylib
Run Code Online (Sandbox Code Playgroud)