Skip to content

Commit b34b2f6

Browse files
committed
BroadcastStyle(::CachedArrayStyle, ::BandedStyle)
1 parent 67c36b7 commit b34b2f6

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

ext/LazyArraysBandedMatricesExt.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ BroadcastStyle(::BandedStyle, ::AbstractLazyArrayStyle{1}) = LazyArrayStyle{2}()
3232
BroadcastStyle(::AbstractLazyArrayStyle{2}, ::BandedStyle) = LazyArrayStyle{2}()
3333
BroadcastStyle(::BandedStyle, ::AbstractLazyArrayStyle{2}) = LazyArrayStyle{2}()
3434

35+
BroadcastStyle(::CachedArrayStyle{1}, ::BandedStyle) = CachedArrayStyle{2}()
36+
BroadcastStyle(::BandedStyle, ::CachedArrayStyle{1}) = CachedArrayStyle{2}()
37+
BroadcastStyle(::CachedArrayStyle{2}, ::BandedStyle) = CachedArrayStyle{2}()
38+
BroadcastStyle(::BandedStyle, ::CachedArrayStyle{2}) = CachedArrayStyle{2}()
39+
3540
bandedcolumns(::AbstractLazyLayout) = BandedColumns{LazyLayout}()
3641
bandedcolumns(::DualLayout{<:AbstractLazyLayout}) = BandedColumns{LazyLayout}()
3742

test/bandedtests.jl

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ using ArrayLayouts, LazyArrays, BandedMatrices, LinearAlgebra, Test
33
using BandedMatrices: AbstractBandedLayout, _BandedMatrix, isbanded, BandedStyle, BandedColumns, BandedRows, resize, bandeddata
44
using LazyArrays: PaddedLayout, PaddedRows, Accumulate, PaddedColumns, arguments, call, LazyArrayStyle, ApplyLayout, simplifiable, resizedata!, MulStyle, LazyLayout, BroadcastLayout, CachedArrayStyle
55
using ArrayLayouts: OnesLayout, StridedLayout
6+
import Base.Broadcast: BroadcastStyle
67
LazyArraysBandedMatricesExt = Base.get_extension(LazyArrays, :LazyArraysBandedMatricesExt)
78
BroadcastBandedLayout = LazyArraysBandedMatricesExt.BroadcastBandedLayout
89
ApplyBandedLayout = LazyArraysBandedMatricesExt.ApplyBandedLayout
@@ -970,8 +971,15 @@ LinearAlgebra.lmul!(β::Number, A::PseudoBandedMatrix) = (lmul!(β, A.data); A)
970971

971972
@testset "BroadcastStyle with cached data" begin
972973
A = _BandedMatrix(Accumulate(*, 1:10)', 1:10, 0, 0)
973-
@test Base.BroadcastStyle(typeof(A)) == CachedArrayStyle{2}()
974-
@test Base.BroadcastStyle(typeof(A')) == CachedArrayStyle{2}()
974+
@test BroadcastStyle(typeof(A)) == CachedArrayStyle{2}()
975+
@test BroadcastStyle(typeof(A')) == CachedArrayStyle{2}()
976+
end
977+
978+
@testset "Combining BandedStyle with CachedArrayStyle" begin
979+
@test BroadcastStyle(CachedArrayStyle{1}(), BandedStyle()) == CachedArrayStyle{2}()
980+
@test BroadcastStyle(BandedStyle(), CachedArrayStyle{1}()) == CachedArrayStyle{2}()
981+
@test BroadcastStyle(CachedArrayStyle{2}(), BandedStyle()) == CachedArrayStyle{2}()
982+
@test BroadcastStyle(BandedStyle(), CachedArrayStyle{2}()) == CachedArrayStyle{2}()
975983
end
976984
end
977985

0 commit comments

Comments
 (0)