You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit d9d932f
Browse filesBrowse the repository at this point in the historyBrowse files
fix(indexing): exact ceildiv everywhere and sparse boolean-axis selections
Review follow-ups for the sparse-selection change:
- Fix ceildiv itself rather than bypassing it at one call site. It went
through float division, so ceildiv(2**62 - 1, 1) returned 2**62; four
other callers (slice arithmetic, the regular-grid check, dask-style
chunk sizes) had the same latent error. Integers now divide exactly;
floats keep the ceil-of-quotient path. FixedDimension goes back to
calling it.
- BoolArrayDimIndexer still allocated a dense per-chunk count array and
ran a Python loop over every chunk, so an orthogonal boolean selection
on a finely chunked axis paid O(nchunks) in time and memory on top of
the mask. It now derives the occupied chunks and run ends from the
selected positions with sorted_run_ends, like the other two indexers,
and exposes the same deprecated dense properties. A boolean axis with
2**22 chunks goes from a multi-second loop to ~2 ms.
- Changelog: state precisely which selection kinds are covered, that
reading the deprecated properties rebuilds the dense array, and the
ceildiv correction.
Assisted-by: ClaudeCode:claude-fable-5-1
0 commit comments