summaryrefslogtreecommitdiff
path: root/docs/examples/tutorial/parallelization/norm.pyx
blob: 5a702f97595f3f576cc18f48271f8cbfa67dcb9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
from cython.parallel cimport prange
cimport cython
from libc.math cimport sqrt

@cython.boundscheck(False)
@cython.wraparound(False)
def l2norm(double[:] x):
    cdef double total = 0
    cdef Py_ssize_t i
    for i in prange(x.shape[0], nogil=True):
        total += x[i]*x[i]
    return sqrt(total)