Đây là vấn đề cơ bản của tôi:quá tải Python hàm toán học sử dụng Cython
Tôi có một tập tin Python bằng cách nhập của
from math import sin,cos,sqrt
tôi cần tập tin này để vẫn là 100% CPython tương thích để cho phép các nhà phát triển của tôi để viết 100% mã CPython và sử dụng các công cụ tuyệt vời được phát triển cho Python.
Bây giờ, hãy nhập Cython. Trong tệp Python của tôi, các hàm trig được gọi là hàng triệu lần (cơ bản cho mã, không thể thay đổi điều này). Có cách nào mà thông qua một số Python-fu trong file python chính, hoặc Cython kỳ diệu nếu không tôi thay vì có thể sử dụng C/C++ hàm toán học sử dụng một số biến thể của mã Cython
cdef extern from "math.h":
double sin(double)
Điều đó sẽ cho tôi gần bờ C hiệu suất, mà sẽ là tuyệt vời.
Stefan's talk nói đặc biệt này không thể được thực hiện, nhưng nói là hai tuổi, và có rất nhiều những người sáng tạo ra có
Tôi khá chắc chắn CPython đã sử dụng các chức năng này trong nội bộ. Tại sao họ sẽ reimplement hoạt động toán học cơ bản? – ThiefMaster
Nếu bạn định gọi hàm trig cho số lượng lớn các giá trị, hãy xem xét đóng gói các giá trị đó trong các mảng Numpy và gọi 'np.sin' và bạn bè. –
@ThiefMaster - Đã xem mã .c mà Cython đã tạo từ tệp của tôi đã nhập hàm sqrt, nó không sử dụng các phiên bản math.h, là điều không may – ibell