Add omp parallelization for bessel function

This commit is contained in:
Guilhem Lavaux 2020-10-26 08:49:12 +01:00
parent 67c609a422
commit 84a1d3bf47
4 changed files with 16 additions and 4 deletions

View file

@ -1,3 +1,4 @@
#cython: language_level=3
import numpy as np
cimport numpy as np
@ -7,15 +8,21 @@ np.import_ufunc()
cdef extern from "sys/types.h":
ctypedef np.int64_t int64_t
cdef extern from "numpy/npy_common.h":
ctypedef npy_intp
cdef extern from "special_math.hpp" namespace "CosmoTool":
T log_modified_bessel_first_kind[T](T v, T z) nogil except +
cdef extern from "numpy_adaptor.hpp" namespace "CosmoTool":
void parallel_ufunc_dd_d[T,IT](char **args, IT* dimensions, IT* steps, void *func)
cdef np.PyUFuncGenericFunction loop_func[1]
cdef char input_output_types[3]
cdef void *elementwise_funcs[1]
loop_func[0] = np.PyUFunc_dd_d
loop_func[0] = <np.PyUFuncGenericFunction>parallel_ufunc_dd_d[double,npy_intp]
input_output_types[0] = np.NPY_DOUBLE
input_output_types[1] = np.NPY_DOUBLE