diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2015-06-14 12:41:51 -0400 |
---|---|---|
committer | Charles Harris <charlesr.harris@gmail.com> | 2015-06-14 12:41:51 -0400 |
commit | eaaa9313b3bf57196528c78868141bf106be9876 (patch) | |
tree | 8f878e06fced7065b6ec638028cfa3700aee70f6 /numpy/core | |
parent | 31d05f2f83384fb05111d71ccbf98ef23f22737b (diff) | |
parent | 189ae609a75b349092c133dc81d583fb64fb261b (diff) | |
download | numpy-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.src | 31 |
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: |