summaryrefslogtreecommitdiff
path: root/numpy/core
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2015-06-14 12:41:51 -0400
committerCharles Harris <charlesr.harris@gmail.com>2015-06-14 12:41:51 -0400
commiteaaa9313b3bf57196528c78868141bf106be9876 (patch)
tree8f878e06fced7065b6ec638028cfa3700aee70f6 /numpy/core
parent31d05f2f83384fb05111d71ccbf98ef23f22737b (diff)
parent189ae609a75b349092c133dc81d583fb64fb261b (diff)
downloadnumpy-eaaa9313b3bf57196528c78868141bf106be9876.tar.gz
Merge pull request #5946 from seberg/einsum-bool-fix
BUG: einsums bool_sum_of_products_contig incorrect for small arrays
Diffstat (limited to 'numpy/core')
-rw-r--r--numpy/core/src/multiarray/einsum.c.src31
1 files changed, 11 insertions, 20 deletions
diff --git a/numpy/core/src/multiarray/einsum.c.src b/numpy/core/src/multiarray/einsum.c.src
index 7483fb01b..bde543703 100644
--- a/numpy/core/src/multiarray/einsum.c.src
+++ b/numpy/core/src/multiarray/einsum.c.src
@@ -1399,28 +1399,19 @@ finish_after_unrolled_loop:
*/
case @i@+1:
# if @nop@ == 1
- *((npy_bool *)data_out + @i@) = (*((npy_bool *)data0 + @i@)) ||
- (*((npy_bool *)data_out + @i@));
- data0 += 8*sizeof(npy_bool);
- data_out += 8*sizeof(npy_bool);
+ ((npy_bool *)data_out)[@i@] = ((npy_bool *)data0)[@i@] ||
+ ((npy_bool *)data_out)[@i@];
# elif @nop@ == 2
- *((npy_bool *)data_out + @i@) =
- ((*((npy_bool *)data0 + @i@)) &&
- (*((npy_bool *)data1 + @i@))) ||
- (*((npy_bool *)data_out + @i@));
- data0 += 8*sizeof(npy_bool);
- data1 += 8*sizeof(npy_bool);
- data_out += 8*sizeof(npy_bool);
+ ((npy_bool *)data_out)[@i@] =
+ (((npy_bool *)data0)[@i@] &&
+ ((npy_bool *)data1)[@i@]) ||
+ ((npy_bool *)data_out)[@i@];
# elif @nop@ == 3
- *((npy_bool *)data_out + @i@) =
- ((*((npy_bool *)data0 + @i@)) &&
- (*((npy_bool *)data1 + @i@)) &&
- (*((npy_bool *)data2 + @i@))) ||
- (*((npy_bool *)data_out + @i@));
- data0 += 8*sizeof(npy_bool);
- data1 += 8*sizeof(npy_bool);
- data2 += 8*sizeof(npy_bool);
- data_out += 8*sizeof(npy_bool);
+ ((npy_bool *)data_out)[@i@] =
+ (((npy_bool *)data0)[@i@] &&
+ ((npy_bool *)data1)[@i@] &&
+ ((npy_bool *)data2)[@i@]) ||
+ ((npy_bool *)data_out)[@i@];
# endif
/**end repeat1**/
case 0: