Skip to content

Commit 35a135b

Browse files
authored
Help disambiguation with special matrix types (#134)
1 parent 536d21b commit 35a135b

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "ArrayLayouts"
22
uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"
33
authors = ["Sheehan Olver <[email protected]>"]
4-
version = "1.0.3"
4+
version = "1.0.4"
55

66
[deps]
77
FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b"

src/mul.jl

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -203,10 +203,6 @@ macro layoutmul(Typ)
203203
ArrayLayouts.mul!(dest,A,B,α,β)
204204
LinearAlgebra.mul!(dest::AbstractMatrix, A::AbstractMatrix, B::$Typ, α::Number, β::Number) =
205205
ArrayLayouts.mul!(dest,A,B,α,β)
206-
LinearAlgebra.mul!(dest::AbstractMatrix, A::$Typ, B::Diagonal, α::Number, β::Number) =
207-
ArrayLayouts.mul!(dest,A,B,α,β)
208-
LinearAlgebra.mul!(dest::AbstractMatrix, A::Diagonal, B::$Typ, α::Number, β::Number) =
209-
ArrayLayouts.mul!(dest,A,B,α,β)
210206
LinearAlgebra.mul!(dest::AbstractMatrix, A::$Typ, B::$Typ, α::Number, β::Number) =
211207
ArrayLayouts.mul!(dest,A,B,α,β)
212208

@@ -237,10 +233,17 @@ macro layoutmul(Typ)
237233
(*)(A::LinearAlgebra.AdjointQ{<:Any,<:LinearAlgebra.LQPackedQ}, B::$Typ) = ArrayLayouts.mul(A,B)
238234
end
239235
end
240-
for Struc in (:AbstractTriangular, :Diagonal)
236+
for Struc in (:AbstractTriangular, :Diagonal, :Bidiagonal, :SymTridiagonal, :Tridiagonal)
237+
# starting from Julia v1.10, the last four could be put into a single Union to
238+
# reduce the number of mul! methods; or perhaps addressed as some common supertype
241239
ret = quote
242240
$ret
243241

242+
LinearAlgebra.mul!(dest::AbstractMatrix, A::$Typ, B::LinearAlgebra.$Struc, α::Number, β::Number) =
243+
ArrayLayouts.mul!(dest,A,B,α,β)
244+
LinearAlgebra.mul!(dest::AbstractMatrix, A::LinearAlgebra.$Struc, B::$Typ, α::Number, β::Number) =
245+
ArrayLayouts.mul!(dest,A,B,α,β)
246+
244247
(*)(A::LinearAlgebra.$Struc, B::$Typ) = ArrayLayouts.mul(A,B)
245248
(*)(A::$Typ, B::LinearAlgebra.$Struc) = ArrayLayouts.mul(A,B)
246249
end

0 commit comments

Comments
 (0)