2013-03-10 2 views
3

파이썬에서 math.exp() 함수를 구현하는 방법을 알고 싶습니다. 어디 파이썬 소스 코드에서 math.exp() 정의 된 무엇입니까?python 소스 코드에서 math.exp()가 정의되어 있습니까?

+1

@PaulC : 너무 유용합니다! SOers가 검색 엔진을 대신 사용하도록 사용자를 유도하는 것입니다. –

+0

@PaulC Tks. 나는이 질문을하기 전에 구글 검색을했다. math.exp() 함수 소스 코드를 찾을 수 없습니다. 그래서 ... –

+1

이것은 실제로 찾기가 어렵지만 찾으려는 곳을 보여 주면 도움이 될 것입니다. 이것은 C로 정의됩니다. 파이썬 구조체에 대한 항목은 [mathmodule.c' 파일] (http://hg.python.org/cpython/file/tip/Modules/mathmodule.c#l1561)에 있습니다. –

답변

12

이 것은 다소 까다 롭습니다.

math 모듈은 C 모듈 mathmodule.c에서 구현됩니다. 일부 오류 처리 및 형식 변환과 C library exp function를 호출 math_1 wrapper function를 사용하여, 실제로 FUNC1 macro을 통해 정의된다

static PyMethodDef math_methods[] = { 
    # ... 
    {"exp",    math_exp,  METH_O,   math_exp_doc}, 

하지만 math_exp 자체를 : 해당 파일의 끝에서 exp as implemented by math_exp을 정의하는 특정 파이썬 라이브러리 구조가

FUNC1(exp, exp, 1, 
    "exp(x)\n\nReturn e raised to the power of x.") 

그러나, C 기능 구현 자체는 완전히 플랫폼에 의존하고, 최신 하드웨어에 일반적으로 하드웨어에 의 신세를지고있다. 파이썬에서 이것을 구현하기위한 시작점을 찾으려면 함수의 소프트웨어 버전을 사용해야한다.

당신은 아마 여기에 해당 라이브러리에서 C에서 exp 기능 구현에 대한 링크는 같은 출발점으로 fdlibm 구현을 사용할 수 있습니다

하거나 참조 할 수

관련 문제