summaryrefslogtreecommitdiff
path: root/numpy/core/src
diff options
context:
space:
mode:
authormattip <matti.picus@gmail.com>2023-04-27 23:23:56 +0300
committermattip <matti.picus@gmail.com>2023-04-27 23:31:52 +0300
commit962120be1b0e5f1a4015292d763de1c109aaf05c (patch)
tree275b9ffa305795af2fa974d4a8afc9ada90ffe05 /numpy/core/src
parent1f1a7ed3ba0488689f3e89274421048038d530bd (diff)
downloadnumpy-962120be1b0e5f1a4015292d763de1c109aaf05c.tar.gz
fixes from review
Diffstat (limited to 'numpy/core/src')
-rw-r--r--numpy/core/src/multiarray/einsum.c.src20
-rw-r--r--numpy/core/src/multiarray/einsum_sumprod.c.src25
2 files changed, 21 insertions, 24 deletions
diff --git a/numpy/core/src/multiarray/einsum.c.src b/numpy/core/src/multiarray/einsum.c.src
index 856dce11b..fe7fd0d32 100644
--- a/numpy/core/src/multiarray/einsum.c.src
+++ b/numpy/core/src/multiarray/einsum.c.src
@@ -534,11 +534,13 @@ unbuffered_loop_nop1_ndim2(NpyIter *iter)
* loop provided by the iterator is in Fortran-order.
*/
int needs_api = NpyIter_IterationNeedsAPI(iter);
- NPY_BEGIN_THREADS_THRESHOLDED(shape[1] * shape[0]);
+ if (!needs_api) {
+ NPY_BEGIN_THREADS_THRESHOLDED(shape[1] * shape[0]);
+ }
for (coord = shape[1]; coord > 0; --coord) {
sop(1, ptrs[0], strides[0], shape[0]);
- if(needs_api && PyErr_Occurred()){
+ if (needs_api && PyErr_Occurred()){
return -1;
}
@@ -593,12 +595,14 @@ unbuffered_loop_nop1_ndim3(NpyIter *iter)
* loop provided by the iterator is in Fortran-order.
*/
int needs_api = NpyIter_IterationNeedsAPI(iter);
- NPY_BEGIN_THREADS_THRESHOLDED(shape[2] * shape[1] * shape[0]);
+ if (!needs_api) {
+ NPY_BEGIN_THREADS_THRESHOLDED(shape[2] * shape[1] * shape[0]);
+ }
for (coords[1] = shape[2]; coords[1] > 0; --coords[1]) {
for (coords[0] = shape[1]; coords[0] > 0; --coords[0]) {
sop(1, ptrs[0], strides[0], shape[0]);
- if(needs_api && PyErr_Occurred()){
+ if (needs_api && PyErr_Occurred()){
return -1;
}
@@ -655,7 +659,9 @@ unbuffered_loop_nop2_ndim2(NpyIter *iter)
* loop provided by the iterator is in Fortran-order.
*/
int needs_api = NpyIter_IterationNeedsAPI(iter);
- NPY_BEGIN_THREADS_THRESHOLDED(shape[1] * shape[0]);
+ if (!needs_api) {
+ NPY_BEGIN_THREADS_THRESHOLDED(shape[1] * shape[0]);
+ }
for (coord = shape[1]; coord > 0; --coord) {
sop(2, ptrs[0], strides[0], shape[0]);
@@ -716,7 +722,9 @@ unbuffered_loop_nop2_ndim3(NpyIter *iter)
* loop provided by the iterator is in Fortran-order.
*/
int needs_api = NpyIter_IterationNeedsAPI(iter);
- NPY_BEGIN_THREADS_THRESHOLDED(shape[2] * shape[1] * shape[0]);
+ if (!needs_api) {
+ NPY_BEGIN_THREADS_THRESHOLDED(shape[2] * shape[1] * shape[0]);
+ }
for (coords[1] = shape[2]; coords[1] > 0; --coords[1]) {
for (coords[0] = shape[1]; coords[0] > 0; --coords[0]) {
sop(2, ptrs[0], strides[0], shape[0]);
diff --git a/numpy/core/src/multiarray/einsum_sumprod.c.src b/numpy/core/src/multiarray/einsum_sumprod.c.src
index fa59223fe..5f2ccf2dc 100644
--- a/numpy/core/src/multiarray/einsum_sumprod.c.src
+++ b/numpy/core/src/multiarray/einsum_sumprod.c.src
@@ -1032,20 +1032,14 @@ bool_sum_of_products_outstride0_@noplabel@(int nop, char **dataptr,
* object_sum_of_products_one,
* object_sum_of_products_two,
* object_sum_of_products_three,
+ * object_sum_of_products_contig_any,
* object_sum_of_products_contig_one,
- * object_sum_of_products_contig_two,
- * object_sum_of_products_stride0_contig_outcontig_two,
- * object_sum_of_products_contig_stride0_outcontig_two,
- * object_sum_of_products_stride0_contig_outstride0_two,
- * object_sum_of_products_contig_stride0_outstride0_two,
- * object_sum_of_products_contig_contig_outstride0_two,
+ * object_sum_of_products_contig_two,
* object_sum_of_products_contig_three,
- * object_sum_of_products_contig_any,
- * object_sum_of_products_contig_outstride0_one,
+ * object_sum_of_products_outstride0_any,
* object_sum_of_products_outstride0_one,
* object_sum_of_products_outstride0_two,
- * object_sum_of_products_outstride0_three,
- * object_sum_of_products_outstride0_any#
+ * object_sum_of_products_outstride0_three#
*/
static void
@fn_name@(int nop, char **dataptr,
@@ -1062,17 +1056,12 @@ static void
if (!curr) {
curr = Py_None; // convention is to treat nulls as None
}
- Py_SETREF(prod, PyNumber_Multiply(curr, prod));
+ Py_SETREF(prod, PyNumber_Multiply(prod, curr));
if (!prod) {
return;
}
}
- if (*(PyObject **)dataptr[nop] == NULL) {
- Py_DECREF(prod);
- return;
- }
-
PyObject *sum = PyNumber_Add(*(PyObject **)dataptr[nop], prod);
Py_DECREF(prod);
if (!sum) {
@@ -1110,7 +1099,7 @@ _contig_outstride0_unary_specialization_table[NPY_NTYPES] = {
* 1, 1,
* 1, 1, 1,
* 1, 1, 1,
- * 1, 0, 0, 0,
+ * 0, 0, 0, 0,
* 0, 0, 1#
*/
#if @use@
@@ -1141,7 +1130,7 @@ static sum_of_products_fn _binary_specialization_table[NPY_NTYPES][5] = {
* 1, 1,
* 1, 1, 1,
* 0, 0, 0,
- * 1, 0, 0, 0,
+ * 0, 0, 0, 0,
* 0, 0, 1#
*/
#if @use@