3
我想知道如何在Python中实现math.exp()
函数。在Python源代码中定义了math.exp()
的位置?python源代码中的math.exp()定义在哪里?
我想知道如何在Python中实现math.exp()
函数。在Python源代码中定义了math.exp()
的位置?python源代码中的math.exp()定义在哪里?
这是一个有点棘手。
math
模块在C模块中实现,mathmodule.c
。在该文件的末尾有特定的Python库结构,它定义exp
as implemented by math_exp
:
static PyMethodDef math_methods[] = {
# ...
{"exp", math_exp, METH_O, math_exp_doc},
但math_exp
本身实际上是经由FUNC1
macro定义,使用math_1
wrapper function调用C library exp
function一些错误处理和类型转换:
FUNC1(exp, exp, 1,
"exp(x)\n\nReturn e raised to the power of x.")
然而,C函数实现本身是完全依赖于平台,并在现代硬件通常是在硬件照顾。你将不得不转向该函数的软件版本,以找到在Python中实现这一点的起点。
您可以使用fdlibm
实现这样一个出发点,也许,这里是从图书馆到exp
函数实现的链接在C:
,或者你可以参考改为:
@PaulC:你太帮忙了!你只是鼓励人们让SOers代表他们使用搜索引擎。 – 2013-03-10 11:16:26
@PaulC Tks。在问这个问题之前,我曾在谷歌上搜索过。我无法找到math.exp()函数源代码。所以... – 2013-03-10 11:25:44
这一个实际上很难找到,但如果你显示你找不到的地方,它会有帮助。它在C中定义; Python结构的入口位于['mathmodule.c'文件]中(http://hg.python.org/cpython/file/tip/Modules/mathmodule.c#l1561)。 – 2013-03-10 11:43:18