Skip to content

Commit

Permalink
fix: Numpy 2.0 out of bounds error for BitMaskedArray Py kernels (#3073)
Browse files Browse the repository at this point in the history
  • Loading branch information
ManasviGoyal committed Apr 4, 2024
1 parent 12a30f4 commit 2d7d610
Show file tree
Hide file tree
Showing 2 changed files with 196 additions and 14 deletions.
28 changes: 14 additions & 14 deletions kernel-specification.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,19 +35,19 @@ kernels:
for i in range(bitmasklength):
byte = frombitmask[i]
tobytemask[(i * 8) + 0] = ((byte & uint8(128)) != 0) != validwhen
byte <<= 1
byte = (byte << 1) & 0xFF
tobytemask[(i * 8) + 1] = ((byte & uint8(128)) != 0) != validwhen
byte <<= 1
byte = (byte << 1) & 0xFF
tobytemask[(i * 8) + 2] = ((byte & uint8(128)) != 0) != validwhen
byte <<= 1
byte = (byte << 1) & 0xFF
tobytemask[(i * 8) + 3] = ((byte & uint8(128)) != 0) != validwhen
byte <<= 1
byte = (byte << 1) & 0xFF
tobytemask[(i * 8) + 4] = ((byte & uint8(128)) != 0) != validwhen
byte <<= 1
byte = (byte << 1) & 0xFF
tobytemask[(i * 8) + 5] = ((byte & uint8(128)) != 0) != validwhen
byte <<= 1
byte = (byte << 1) & 0xFF
tobytemask[(i * 8) + 6] = ((byte & uint8(128)) != 0) != validwhen
byte <<= 1
byte = (byte << 1) & 0xFF
tobytemask[(i * 8) + 7] = ((byte & uint8(128)) != 0) != validwhen
automatic-tests: true

Expand Down Expand Up @@ -114,37 +114,37 @@ kernels:
toindex[(i * 8) + 0] = (i * 8) + 0
else:
toindex[(i * 8) + 0] = -1
byte <<= 1
byte = (byte << 1) & 0xFF
if ((byte & uint8(128)) != 0) == validwhen:
toindex[(i * 8) + 1] = (i * 8) + 1
else:
toindex[(i * 8) + 1] = -1
byte <<= 1
byte = (byte << 1) & 0xFF
if ((byte & uint8(128)) != 0) == validwhen:
toindex[(i * 8) + 2] = (i * 8) + 2
else:
toindex[(i * 8) + 2] = -1
byte <<= 1
byte = (byte << 1) & 0xFF
if ((byte & uint8(128)) != 0) == validwhen:
toindex[(i * 8) + 3] = (i * 8) + 3
else:
toindex[(i * 8) + 3] = -1
byte <<= 1
byte = (byte << 1) & 0xFF
if ((byte & uint8(128)) != 0) == validwhen:
toindex[(i * 8) + 4] = (i * 8) + 4
else:
toindex[(i * 8) + 4] = -1
byte <<= 1
byte = (byte << 1) & 0xFF
if ((byte & uint8(128)) != 0) == validwhen:
toindex[(i * 8) + 5] = (i * 8) + 5
else:
toindex[(i * 8) + 5] = -1
byte <<= 1
byte = (byte << 1) & 0xFF
if ((byte & uint8(128)) != 0) == validwhen:
toindex[(i * 8) + 6] = (i * 8) + 6
else:
toindex[(i * 8) + 6] = -1
byte <<= 1
byte = (byte << 1) & 0xFF
if ((byte & uint8(128)) != 0) == validwhen:
toindex[(i * 8) + 7] = (i * 8) + 7
else:
Expand Down
182 changes: 182 additions & 0 deletions kernel-test-data.json
Original file line number Diff line number Diff line change
Expand Up @@ -1153,6 +1153,19 @@
"tobytemask": []
}
},
{
"error": false,
"message": "",
"inputs": {
"bitmasklength": 0,
"frombitmask": [],
"lsb_order": true,
"validwhen": false
},
"outputs": {
"tobytemask": []
}
},
{
"error": false,
"message": "",
Expand All @@ -1166,6 +1179,84 @@
"tobytemask": [0, 1, 0, 0, 0, 0, 1, 0]
}
},
{
"error": false,
"message": "",
"inputs": {
"bitmasklength": 2,
"frombitmask": [58, 59],
"lsb_order": false,
"validwhen": false
},
"outputs": {
"tobytemask": [0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1]
}
},
{
"error": false,
"message": "",
"inputs": {
"bitmasklength": 1,
"frombitmask": [27],
"lsb_order": false,
"validwhen": false
},
"outputs": {
"tobytemask": [0, 0, 0, 1, 1, 0, 1, 1]
}
},
{
"error": false,
"message": "",
"inputs": {
"bitmasklength": 3,
"frombitmask": [1, 1, 1],
"lsb_order": false,
"validwhen": false
},
"outputs": {
"tobytemask": [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1]
}
},
{
"error": false,
"message": "",
"inputs": {
"bitmasklength": 3,
"frombitmask": [1, 1, 1],
"lsb_order": false,
"validwhen": true
},
"outputs": {
"tobytemask": [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0]
}
},
{
"error": false,
"message": "",
"inputs": {
"bitmasklength": 4,
"frombitmask": [0, 0, 0, 0],
"lsb_order": false,
"validwhen": false
},
"outputs": {
"tobytemask": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}
},
{
"error": false,
"message": "",
"inputs": {
"bitmasklength": 4,
"frombitmask": [0, 0, 0, 0],
"lsb_order": true,
"validwhen": false
},
"outputs": {
"tobytemask": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}
},
{
"error": false,
"message": "",
Expand Down Expand Up @@ -21966,6 +22057,19 @@
"toindex": []
}
},
{
"error": false,
"message": "",
"inputs": {
"bitmasklength": 0,
"frombitmask": [],
"lsb_order": true,
"validwhen": false
},
"outputs": {
"toindex": []
}
},
{
"error": false,
"message": "",
Expand All @@ -21991,6 +22095,84 @@
"outputs": {
"toindex": [0, -1, 2, -1, -1, -1, 6, 7, -1, -1, 10, -1, -1, -1, 14, 15]
}
},
{
"error": false,
"message": "",
"inputs": {
"bitmasklength": 2,
"frombitmask": [58, 59],
"lsb_order": false,
"validwhen": false
},
"outputs": {
"toindex": [0, 1, -1, -1, -1, 5, -1, 7, 8, 9, -1, -1, -1, 13, -1, -1]
}
},
{
"error": false,
"message": "",
"inputs": {
"bitmasklength": 1,
"frombitmask": [27],
"lsb_order": false,
"validwhen": false
},
"outputs": {
"toindex": [0, 1, 2, -1, -1, 5, -1, -1]
}
},
{
"error": false,
"message": "",
"inputs": {
"bitmasklength": 3,
"frombitmask": [1, 1, 1],
"lsb_order": false,
"validwhen": false
},
"outputs": {
"toindex": [0, 1, 2, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, 13, 14, -1, 16, 17, 18, 19, 20, 21, 22, -1]
}
},
{
"error": false,
"message": "",
"inputs": {
"bitmasklength": 3,
"frombitmask": [1, 1, 1],
"lsb_order": false,
"validwhen": true
},
"outputs": {
"toindex": [-1, -1, -1, -1, -1, -1, -1, 7, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, 23]
}
},
{
"error": false,
"message": "",
"inputs": {
"bitmasklength": 4,
"frombitmask": [0, 0, 0, 0],
"lsb_order": false,
"validwhen": false
},
"outputs": {
"toindex": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]
}
},
{
"error": false,
"message": "",
"inputs": {
"bitmasklength": 4,
"frombitmask": [0, 0, 0, 0],
"lsb_order": true,
"validwhen": false
},
"outputs": {
"toindex": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]
}
}
]
},
Expand Down

0 comments on commit 2d7d610

Please sign in to comment.