我想知道如何math.exp()
在python中实现该功能。Python源代码在哪里math.exp()
定义?
问问题
4252 次
1 回答
13
这个有点棘手。
该math
模块在 C 模块中实现,mathmodule.c
. 在该文件的末尾有一个特定的 Python 库结构,定义exp
为math_exp
:
static PyMethodDef math_methods[] = {
# ...
{"exp", math_exp, METH_O, math_exp_doc},
但math_exp
它本身实际上是通过FUNC1
宏定义的,使用math_1
包装函数调用C 库exp
函数并进行一些错误处理和类型转换:
FUNC1(exp, exp, 1,
"exp(x)\n\nReturn e raised to the power of x.")
但是,C 函数实现本身完全依赖于平台,并且在现代硬件上通常由硬件处理。您必须转向该函数的软件版本才能找到在 Python 中实现此功能的起点。
您可以使用fdlibm
实现作为这样的起点,也许,这是exp
该库中 C 中函数实现的链接:
或者你可以参考这个实现:
于 2013-03-10T12:48:09.907 回答