diff --git a/Project.toml b/Project.toml index 9848597..b108cb9 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "ArrayLayouts" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" authors = ["Sheehan Olver "] -version = "0.8.2" +version = "0.8.3" [deps] FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" diff --git a/src/mul.jl b/src/mul.jl index f781267..d421a17 100644 --- a/src/mul.jl +++ b/src/mul.jl @@ -176,6 +176,10 @@ macro layoutmul(Typ) ArrayLayouts.mul!(dest,A,B,α,β) LinearAlgebra.mul!(dest::AbstractMatrix, A::AbstractMatrix, B::$Typ, α::Number, β::Number) = ArrayLayouts.mul!(dest,A,B,α,β) + LinearAlgebra.mul!(dest::AbstractMatrix, A::$Typ, B::Diagonal, α::Number, β::Number) = + ArrayLayouts.mul!(dest,A,B,α,β) + LinearAlgebra.mul!(dest::AbstractMatrix, A::Diagonal, B::$Typ, α::Number, β::Number) = + ArrayLayouts.mul!(dest,A,B,α,β) LinearAlgebra.mul!(dest::AbstractMatrix, A::$Typ, B::$Typ, α::Number, β::Number) = ArrayLayouts.mul!(dest,A,B,α,β) diff --git a/test/test_layoutarray.jl b/test/test_layoutarray.jl index 711d2b9..b04eb6d 100644 --- a/test/test_layoutarray.jl +++ b/test/test_layoutarray.jl @@ -139,6 +139,9 @@ MemoryLayout(::Type{MyVector}) = DenseColumnMajor() @test mul!(copy(B), A, Bin, 2, 3) ≈ 2A*Bin + 3B @test mul!(copy(B), A, Bin', 2, 3) ≈ 2A*Bin' + 3B @test mul!(copy(B), Bin', A, 2, 3) ≈ 2Bin'*A + 3B + + @test mul!(copy(B), A, Diagonal(Bin), 2, 3) ≈ 2A*Diagonal(Bin) + 3B + @test mul!(copy(B), Diagonal(Bin), A, 2, 3) ≈ 2Diagonal(Bin)*A + 3B end @testset "generic_blasmul!" begin