2013-11-04 1 views
2

cython을 통해 파이썬 코드의 속도를 높여야합니다. 추가 속도를 얻으려면 Python 변수에 C 유형을 자동으로 선언하고 싶습니다.cython 용 파이썬 변수에 자동으로 C 유형을 선언합니다.

이렇게하려면 a = 1.0과 같은 할당을 찾고 정수 또는 부동 소수점 개체를 만들고 코드를 cdef double a = 1.0으로 변경하려고합니다. (우리는 "a"가 float로만 사용된다는 것을 알고 있습니다. 따라서 파이썬 코드에는 몇 가지 제한이 있습니다.)

할당을 찾는 첫 번째 작업은 python ast 모듈에서 쉬운 작업입니다. 하지만 형식 정의를 삽입하는 방법을 모르겠습니다. 나는 추상 구문 트리 (ast)를 수정할 수 있지만 cython 컴파일러가 변경된 ast를 읽을 수 없다고 가정합니다.

여기 내 질문입니다 : 변경된 ast에서 cython 코드로의 변환을 허용하는 코드 생성기가 필요합니까 (아니면 Cython 도구를 사용하여) 내 작업에 더 자연스러운 방법이 있습니까?

+0

[Google 그룹스] (https://groups.google.com/forum/#!msg/cython-users/cltLkB0MQVQ/KbVYtYL-4wIJ)의 Stefan Behnel : "Cython은 특정 수준의 유형 추론을 제공합니다. 즉, 할당 "a = 1.0"은 자동으로 C double로 유추됩니다 ... Cython이 정수 범위를 안전하게 제한 할 수 없기 때문에 정수는 다른 짐승입니다. 직접 선언하거나 "infer_types = True"지시문을 사용하면 안전하지 않은 형식 유추가 가능합니다. " – user2303141

답변

관련 문제