diff --git a/src/banded/BandedMatrix.jl b/src/banded/BandedMatrix.jl index 6678c4a6..8544d734 100644 --- a/src/banded/BandedMatrix.jl +++ b/src/banded/BandedMatrix.jl @@ -713,6 +713,7 @@ const BandedSubBandedMatrix{T, C, R, I1<:AbstractUnitRange, I2<:AbstractUnitRang isbanded(::BandedSubBandedMatrix) = true sublayout(::BandedColumns{L}, ::Type{<:Tuple{AbstractUnitRange,J}}) where {L,J<:AbstractUnitRange} = bandedcolumns(sublayout(L(),Tuple{Slice{OneTo{Int}},J})) +getindex_value(A::SubArray) = getindex_value(parent(A)) BroadcastStyle(::Type{<:BandedSubBandedMatrix}) = BandedStyle() function _shift(bm::BandedSubBandedMatrix) diff --git a/src/banded/gbmm.jl b/src/banded/gbmm.jl index 4a5c0475..3d161836 100644 --- a/src/banded/gbmm.jl +++ b/src/banded/gbmm.jl @@ -218,6 +218,8 @@ function gbmm!(tA::Char, tB::Char, α::T, A::AbstractMatrix{T}, B::AbstractMatri @assert ν == size(B,1) @assert m == size(C,2) + (n == 0 || ν == 0 || m == 0) && return C + Al, Au = bandwidths(A) Bl, Bu = bandwidths(B) C̃l, C̃u = bandwidths(C) diff --git a/src/generic/indexing.jl b/src/generic/indexing.jl index 7cdede8b..1ce39ab5 100644 --- a/src/generic/indexing.jl +++ b/src/generic/indexing.jl @@ -24,7 +24,7 @@ inbands_setindex!(x::Transpose, v, i::Integer, j::Integer) = # on the memory layout ### -sub_materialize(::AbstractBandedLayout, V) = BandedMatrix(V) +sub_materialize(::AbstractBandedLayout, V, _) = BandedMatrix(V) @inline getindex(A::AbstractBandedMatrix, kr::Colon, jr::Colon) = lazy_getindex(A, kr, jr) @inline getindex(A::AbstractBandedMatrix, kr::Colon, jr::AbstractUnitRange) = lazy_getindex(A, kr, jr)