summaryrefslogtreecommitdiff
path: root/docs/examples/tutorial/parallelization/normalize.pyx
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/tutorial/parallelization/normalize.pyx')
-rw-r--r--docs/examples/tutorial/parallelization/normalize.pyx17
1 files changed, 17 insertions, 0 deletions
diff --git a/docs/examples/tutorial/parallelization/normalize.pyx b/docs/examples/tutorial/parallelization/normalize.pyx
new file mode 100644
index 000000000..e167ad7ad
--- /dev/null
+++ b/docs/examples/tutorial/parallelization/normalize.pyx
@@ -0,0 +1,17 @@
+from cython.parallel cimport parallel, prange
+cimport cython
+from libc.math cimport sqrt
+
+@cython.boundscheck(False)
+@cython.wraparound(False)
+def normalize(double[:] x):
+ cdef Py_ssize_t i
+ cdef double total = 0
+ cdef double norm
+ with nogil, parallel():
+ for i in prange(x.shape[0]):
+ total += x[i]*x[i]
+ norm = sqrt(total)
+ for i in prange(x.shape[0]):
+ x[i] /= norm
+