Skip to content

Commit 92c34a2

Browse files
committed
bugfix: wrap all advance() values in int()
NumPy 2 expects Python ints, not NumPy ints
1 parent 767ab08 commit 92c34a2

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

src/parallel_numpy_rng/parallel_numpy_rng.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,7 @@ def _advance_bitgen(bitgen, vals, vals_per_call):
121121
assert vals_per_call == 2 # only supposed to happen with float32
122122
bitgen.ctypes.next_uint32(bitgen.ctypes.state)
123123
vals -= 1
124-
breakpoint()
125-
bitgen.advance(vals // vals_per_call)
124+
bitgen.advance(int(vals // vals_per_call))
126125
for _ in range(vals % vals_per_call):
127126
bitgen.ctypes.next_uint32(bitgen.ctypes.state)
128127

@@ -174,7 +173,7 @@ def standard_normal(
174173
states = np.empty(nthread, dtype=int)
175174
for t in range(nthread):
176175
bitgens += [self._copy_bitgen()]
177-
bitgens[-1].advance(ff[t] // vals_per_call)
176+
bitgens[-1].advance(int(ff[t] // vals_per_call))
178177
states[t] = bitgens[-1].ctypes.state_address
179178

180179
# now offset the out array
@@ -189,18 +188,18 @@ def standard_normal(
189188
if verify_rng:
190189
for t in range(nthread):
191190
_b = self._copy_bitgen()
192-
_b.advance(ff[t + 1] // vals_per_call)
191+
_b.advance(int(ff[t + 1] // vals_per_call))
193192
assert bitgens[t].state["state"] == _b.state["state"], t
194193

195194
# finally, advance the base RNG
196-
self.bitgen.advance(ff[-1] // vals_per_call)
195+
self.bitgen.advance(int(ff[-1] // vals_per_call))
197196

198197
return out.reshape(_size)
199198

200199
@staticmethod
201200
def _advance_bitgen_boxmuller(bitgen, vals, vals_per_call):
202201
"""Advance the bitgen for Box-Muller normals"""
203-
bitgen.advance((vals // vals_per_call // 2) * 2)
202+
bitgen.advance(int((vals // vals_per_call // 2) * 2))
204203
return (vals // vals_per_call) % 2
205204

206205
def _copy_bitgen(self):

0 commit comments

Comments
 (0)