Skip to content

Fix rowsupport/colsupport over ranges for rectangular block-banded ma… - #253

Merged
dlfivefifty merged 2 commits into
masterfrom
fix-adjoint-vector-rectangular-bbb
Oct 4, 2026
Merged

dlfivefifty merged 2 commits into
masterfrom
fix-adjoint-vector-rectangular-bbb

Conversation

@dlfivefifty

Copy link
Copy Markdown
Member

…trices

For a block row lying entirely outside the band (e.g. trailing block rows of a tall matrix), blockrowstop is the last of an empty BlockRange, which can lie past the final block column. blockbanded_rowstop then returned the sentinel 0, breaking the monotonicity assumed by the range method blockbanded_rowsupport(A, j) = rowstart(A, minimum(j)):rowstop(A, maximum(j)), so e.g. rowsupport(A, axes(A,1)) was empty. ArrayLayouts' default_blasmul! uses this to bound the loop, so x' * A returned zeros for rectangular BlockBandedMatrix/BandedBlockBandedMatrix (and likewise A * B for wide A via colsupport). Clamp the stop to the last row/column instead.

…trices

For a block row lying entirely outside the band (e.g. trailing block rows
of a tall matrix), blockrowstop is the `last` of an empty BlockRange, which
can lie past the final block column. blockbanded_rowstop then returned the
sentinel 0, breaking the monotonicity assumed by the range method
`blockbanded_rowsupport(A, j) = rowstart(A, minimum(j)):rowstop(A, maximum(j))`,
so e.g. rowsupport(A, axes(A,1)) was empty. ArrayLayouts' default_blasmul!
uses this to bound the loop, so x' * A returned zeros for rectangular
BlockBandedMatrix/BandedBlockBandedMatrix (and likewise A * B for wide A via
colsupport). Clamp the stop to the last row/column instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codecov

codecov Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.67%. Comparing base (5e1f04b) to head (c3e3aa5).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #253      +/-   ##
==========================================
- Coverage   90.79%   90.67%   -0.13%     
==========================================
  Files          11       11              
  Lines        1173     1179       +6     
==========================================
+ Hits         1065     1069       +4     
- Misses        108      110       +2     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dlfivefifty
dlfivefifty merged commit 489809b into master Oct 4, 2026
17 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant