From 6281ffceb7ff132da7533198dc5de56a185d72c8 Mon Sep 17 00:00:00 2001 From: Nicolas ELIE Date: Fri, 12 Mar 2021 14:14:07 +0100 Subject: [PATCH] Fix wrong dtype on Linux --- libmetgem/_neighbors.pyx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libmetgem/_neighbors.pyx b/libmetgem/_neighbors.pyx index 87a52ad..f3a2dfc 100644 --- a/libmetgem/_neighbors.pyx +++ b/libmetgem/_neighbors.pyx @@ -13,6 +13,8 @@ np.import_array() cdef extern from "argpartition.h" nogil: vector[T] argpartition[T](vector[float] vec, const int &N) + +cdef NUMPY_TYPE_MAP = {2 : np.int16, 4: np.int32, 8: np.int64} @cython.boundscheck(False) @cython.wraparound(False) @@ -22,8 +24,8 @@ cdef _kneighbors_graph_from_similarity_matrix_nogil( cdef: integral n_nonzero = n_samples * (n_neighbors+1) np.float32_t[:] r_data = np.empty(n_nonzero, dtype=np.float32) - integral[:] r_indices = np.empty(n_nonzero, dtype=np.dtype(cython.typeof(indices[0]))) - integral[:] r_indptr = np.arange(0, n_nonzero + 1, n_neighbors+1, dtype=np.dtype(cython.typeof(indptr[0]))) + integral[:] r_indices = np.empty(n_nonzero, dtype=NUMPY_TYPE_MAP[sizeof(indices[0])]) + integral[:] r_indptr = np.arange(0, n_nonzero + 1, n_neighbors+1, dtype=NUMPY_TYPE_MAP[sizeof(indices[0])]) vector[np.float32_t] row vector[integral] ind vector[integral] inds