math.exp()
Pythonで関数を実装する方法を知りたいです。Python ソース コードのどこでmath.exp()
定義されていますか?
質問する
4252 次
1 に答える
13
これは少しトリッキーです。
このmath
モジュールは、C モジュールで実装されていますmathmodule.c
。そのファイルの最後には、exp
によって実装されるように定義されmath_exp
た特定の Python ライブラリ構造があります。
static PyMethodDef math_methods[] = {
# ...
{"exp", math_exp, METH_O, math_exp_doc},
しかし、それ自体はマクロmath_exp
を介して実際に定義されており、ラッパー関数を使用してC ライブラリ関数を呼び出し、エラー処理と型変換を行います。FUNC1
math_1
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 に答える