summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/core/src/multiarray/item_selection.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/numpy/core/src/multiarray/item_selection.c b/numpy/core/src/multiarray/item_selection.c
index 1074eb2bd..a0fd0a574 100644
--- a/numpy/core/src/multiarray/item_selection.c
+++ b/numpy/core/src/multiarray/item_selection.c
@@ -2649,6 +2649,19 @@ PyArray_Nonzero(PyArrayObject *self)
npy_intp * multi_index_end = multi_index + nonzero_count;
npy_intp j = 0;
+ while (multi_index + 4 < multi_index_end) {
+ *multi_index = j;
+ multi_index += data[0] != 0;
+ *multi_index = j + 1;
+ multi_index += data[stride] != 0;
+ *multi_index = j + 2;
+ multi_index += data[stride * 2] != 0;
+ *multi_index = j + 3;
+ multi_index += data[stride * 3] != 0;
+ data += stride * 4;
+ j += 4;
+ }
+
while (multi_index < multi_index_end) {
*multi_index = j;
multi_index += *data != 0;