summaryrefslogtreecommitdiff
path: root/docs/examples/tutorial/parallelization/parallel_sin.pyx
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/tutorial/parallelization/parallel_sin.pyx')
-rw-r--r--docs/examples/tutorial/parallelization/parallel_sin.pyx16
1 files changed, 16 insertions, 0 deletions
diff --git a/docs/examples/tutorial/parallelization/parallel_sin.pyx b/docs/examples/tutorial/parallelization/parallel_sin.pyx
new file mode 100644
index 000000000..c3091541e
--- /dev/null
+++ b/docs/examples/tutorial/parallelization/parallel_sin.pyx
@@ -0,0 +1,16 @@
+from cython.parallel cimport prange
+cimport cython
+from libc.math cimport sin
+
+import numpy as np
+
+@cython.boundscheck(False)
+@cython.wraparound(False)
+def do_sine(double[:,:] input):
+ cdef double[:,:] output = np.empty_like(input)
+ cdef Py_ssize_t i, j
+
+ for i in prange(input.shape[0], nogil=True):
+ for j in range(input.shape[1]):
+ output[i, j] = sin(input[i, j])
+ return np.asarray(output)