Skip to content

Commit 59f8620

Browse files
authored
Allow special casing broadcasting based on data (#260)
1 parent 01ecc9a commit 59f8620

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "BandedMatrices"
22
uuid = "aae01518-5342-5314-be14-df237901396f"
3-
version = "0.17.2"
3+
version = "0.17.3"
44

55
[deps]
66
ArrayLayouts = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"

src/banded/BandedMatrix.jl

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -814,4 +814,11 @@ function Base.array_summary(io::IO, B::BandedMatrix, inds)
814814
print(io, " with data ")
815815
summary(io, B.data)
816816
print(io, " with indices ", Base.inds2string(inds))
817-
end
817+
end
818+
819+
## Broadcast style
820+
# allow special casing
821+
822+
823+
bandedbroadcaststyle(_) = BandedStyle()
824+
BroadcastStyle(::Type{<:BandedMatrix{<:Any,Dat}}) where Dat = bandedbroadcaststyle(BroadcastStyle(Dat))

src/generic/broadcast.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ conjlayout(::Type{<:Complex}, ::M) where M<:AbstractBandedLayout = ConjLayout{M}
3535
struct BandedStyle <: AbstractArrayStyle{2} end
3636
BandedStyle(::Val{2}) = BandedStyle()
3737
BroadcastStyle(::Type{<:AbstractBandedMatrix}) = BandedStyle()
38-
BroadcastStyle(::Type{<:Adjoint{<:Any,<:AbstractBandedMatrix}}) = BandedStyle()
39-
BroadcastStyle(::Type{<:Transpose{<:Any,<:AbstractBandedMatrix}}) = BandedStyle()
38+
BroadcastStyle(::Type{<:Adjoint{<:Any,Mat}}) where Mat<:AbstractBandedMatrix = BroadcastStyle(Mat)
39+
BroadcastStyle(::Type{<:Transpose{<:Any,Mat}}) where Mat<:AbstractBandedMatrix = BroadcastStyle(Mat)
4040
BroadcastStyle(::Type{<:SubArray{<:Any,2,<:AbstractBandedMatrix,<:NTuple{2,AbstractUnitRange{Int}}}}) = BandedStyle()
4141
BroadcastStyle(::DefaultArrayStyle{2}, ::BandedStyle) = BandedStyle()
4242
BroadcastStyle(::BandedStyle, ::DefaultArrayStyle{2}) = BandedStyle()

0 commit comments

Comments
 (0)