I want to known how to implement the math.exp()
function in python. Where in the Python source code is math.exp()
defined?
This one is a little tricky.
The math
module is implemented in a C module, mathmodule.c. At the end of that file there is a specific Python library structure that defines exp as implemented by math_exp:
static PyMethodDef math_methods[] = {
# ...
{"exp", math_exp, METH_O, math_exp_doc},
but math_exp
itself is actually defined via the FUNC1 macro, using the math_1 wrapper function to call the C library exp function with some error handling and type conversion:
FUNC1(exp, exp, 1,
"exp(x)\n\nReturn e raised to the power of x.")
However, the C function implementation itself is entirely platform dependent, and on modern hardware is usually taken care of in hardware. You would have to turn to a software version of the function to find a starting point to implement this in Python.
You could use the fdlibm
implementation as such a starting point, perhaps, here is a link to the exp
function implementation in C from that library:
or you could refer to this implementation instead: