cython
रैपिंग सी कोड
खोज…
एक कस्टम सी लाइब्रेरी से कार्यों का उपयोग करना
हमारे पास एक सी लाइब्रेरी है जिसका नाम my_random
जो एक कस्टम वितरण से यादृच्छिक संख्या पैदा करता है। यह दो कार्य प्रदान करता है जिनका हम उपयोग करना चाहते हैं: set_seed(long seed)
और rand()
और (और भी बहुत कुछ set_seed(long seed)
हमें आवश्यकता नहीं है)। Cython में इनका उपयोग करने के लिए हमें इसकी आवश्यकता है
- एक इंटरफ़ेस को .pxd फ़ाइल में परिभाषित करें और
- .pyx फ़ाइल में फ़ंक्शन को कॉल करें।
कोड
test_extern.pxd
# extern blocks define interfaces for Cython to C code
cdef extern from "my_random.h":
double rand()
void c_set_seed "set_seed" (long seed) # rename C version of set_seed to c_set_seed to avoid naming conflict
test_extern.pyx
def set_seed (long seed):
"""Pass the seed on to the c version of set_seed in my_random."""
c_set_seed(seed)
cpdef get_successes (int x, double threshold):
"""Create a list with x results of rand <= threshold
Use the custom rand function from my_random.
"""
cdef:
list successes = []
int i
for i in range(x):
if rand() <= threshold:
successes.append(True)
else:
successes.append(False)
return successes
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow