Skip to content

Commit

Permalink
MAINT: Prevent OverflowError in multiplication (#230)
Browse files Browse the repository at this point in the history
* MAINT: Prevent OverflowError in multiplication

In newer numpy versions the multiplication of ndarrays containing uint8 results in uint8. Here this leads to an OverflowError. Therefore changing to an uint64 before the multiplication prevents this.

---------

Co-authored-by: Christian Bespin <[email protected]>
  • Loading branch information
magruber and cbespin authored Oct 31, 2024
1 parent 248ae12 commit b64e5c9
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion basil/utils/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def bitarray_to_byte_array(bitarr):
ba = bitarray(bitarr, endian=bitarr.endian())
ba.reverse() # this flip the byte order and the bit order of each byte
bs = np.frombuffer(ba.tobytes(), dtype=np.uint8) # byte padding happens here, bitarray.tobytes()
bs = (bs * 0x0202020202 & 0x010884422010) % 1023
bs = (bs * np.uint64(0x0202020202) & 0x010884422010) % 1023
return array('B', bs.astype(np.uint8))


Expand Down

0 comments on commit b64e5c9

Please sign in to comment.