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