Skip to content

Fix conjlayout of the block-banded layouts - #249

Merged
dlfivefifty merged 2 commits into
masterfrom
conjlayout-of-block-banded-data
Sep 23, 2026
Merged

dlfivefifty merged 2 commits into
masterfrom
conjlayout-of-block-banded-data

Conversation

@dlfivefifty

Copy link
Copy Markdown
Member

The conjlayout rules for the block-banded layouts passed the layout of the data as a type rather than an instance, so the inner call always fell back to UnknownLayout(). The adjoint of a complex matrix therefore lost the description of its data:

julia> A = BandedBlockBandedMatrix{ComplexF64}(undef, 1:4,1:4, (1,1),(1,1));

julia> MemoryLayout(A')
BandedBlockBandedRows{UnknownLayout}()              # before
BandedBlockBandedRows{ConjLayout{ColumnMajor}}()    # after

Real eltypes are unaffected, since conjlayout(::Type{<:Real}, M) = M. Downstream this also lets a lazy layout survive an adjoint: BandedBlockBandedColumns{LazyLayout} now gives BandedBlockBandedRows{LazyLayout} rather than BandedBlockBandedRows{UnknownLayout}.

Tests are added for both the banded-block-banded and block-banded cases, and the patch version is bumped.

🤖 Generated with Claude Code

The conjlayout rules passed the layout of the data as a type rather than an
instance, so the inner conjlayout call always fell back to UnknownLayout. The
adjoint of a complex BandedBlockBandedMatrix therefore had the layout
BandedBlockBandedRows{UnknownLayout} instead of describing its conjugated data.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.45%. Comparing base (48285af) to head (8b5442f).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #249   +/-   ##
=======================================
  Coverage   90.45%   90.45%           
=======================================
  Files          11       11           
  Lines        1142     1142           
=======================================
  Hits         1033     1033           
  Misses        109      109           

☔ 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.

The body line of the two-line size definitions was inconsistently instrumented
by coverage and reported as missed, failing codecov/project.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@dlfivefifty
dlfivefifty merged commit 7f4bcdb into master Sep 23, 2026
16 checks passed
@dlfivefifty
dlfivefifty deleted the conjlayout-of-block-banded-data branch September 23, 2026 12:22
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