@@ -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