summaryrefslogtreecommitdiff
path: root/docs/examples/tutorial/parallelization/parallel_sin.py
blob: be6cbc0306594e668c6f98b2821cd4aa4d085188 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from cython.parallel import prange
import cython
from cython.cimports.libc.math import sin

import numpy as np

@cython.boundscheck(False)
@cython.wraparound(False)
def do_sine(input: cython.double[:,:]):
    output : cython.double[:,:] = np.empty_like(input)
    i : cython.Py_ssize_t
    j : cython.Py_ssize_t
    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)