diff --git a/Project.toml b/Project.toml index 7d026819..16534721 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "BandedMatrices" uuid = "aae01518-5342-5314-be14-df237901396f" -version = "1.2.0" +version = "1.2.1" [deps] ArrayLayouts = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" diff --git a/src/generic/matmul.jl b/src/generic/matmul.jl index 652ca683..93581c75 100644 --- a/src/generic/matmul.jl +++ b/src/generic/matmul.jl @@ -239,7 +239,7 @@ end ### BandedMatrix * dense matrix -function materialize!(M::MatMulMatAdd{<:BandedColumns, <:AbstractColumnMajor, <:AbstractColumnMajor}) +function materialize!(M::MatMulMatAdd{<:BandedColumns, <:AbstractStridedLayout, <:AbstractStridedLayout}) checkdimensions(M) α, β, A, B, C = M.α, M.β, M.A, M.B, M.C @@ -254,7 +254,7 @@ function materialize!(M::MatMulMatAdd{<:BandedColumns, <:AbstractColumnMajor, <: return C end -function materialize!(M::MatMulMatAdd{<:AbstractColumnMajor, <:BandedColumns, <:AbstractColumnMajor}) +function materialize!(M::MatMulMatAdd{<:AbstractStridedLayout, <:BandedColumns, <:AbstractStridedLayout}) checkdimensions(M) α, β, A, B, C = M.α, M.β, M.A, M.B, M.C diff --git a/test/test_linalg.jl b/test/test_linalg.jl index 8a05af6d..fd102f04 100644 --- a/test/test_linalg.jl +++ b/test/test_linalg.jl @@ -1,8 +1,4 @@ -using ArrayLayouts -using BandedMatrices -using FillArrays -using LinearAlgebra -using Test +using ArrayLayouts, BandedMatrices, FillArrays, LinearAlgebra, Test import Base.Broadcast: materialize, broadcasted import BandedMatrices: BandedColumns, _BandedMatrix @@ -106,6 +102,13 @@ ArrayLayouts.colsupport(::UnknownLayout, A::MyOneElement{<:Any,1}, _) = @test cmp(Y, BX + ones(T, size(Y))) end end + @testset "Banded * strided" begin + n = 100 + B = BandedMatrix{Float64}(-1=>1:n, 1=>11:n+10, 2=>21:n+19) + M = view(randn(2n+1,2n+1),1:2:2n+1,1:2:2n+1) + @test B*M ≈ Matrix(B)*M + @test M*B ≈ M*Matrix(B) + end end @testset "BandedMatrix * sparse" begin