@@ -203,10 +203,6 @@ macro layoutmul(Typ)
203
203
ArrayLayouts. mul! (dest,A,B,α,β)
204
204
LinearAlgebra. mul! (dest:: AbstractMatrix , A:: AbstractMatrix , B:: $Typ , α:: Number , β:: Number ) =
205
205
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,α,β)
210
206
LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Typ , B:: $Typ , α:: Number , β:: Number ) =
211
207
ArrayLayouts. mul! (dest,A,B,α,β)
212
208
@@ -237,10 +233,17 @@ macro layoutmul(Typ)
237
233
(* )(A:: LinearAlgebra.AdjointQ{<:Any,<:LinearAlgebra.LQPackedQ} , B:: $Typ ) = ArrayLayouts. mul (A,B)
238
234
end
239
235
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
241
239
ret = quote
242
240
$ ret
243
241
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
+
244
247
(* )(A:: LinearAlgebra. $ Struc, B:: $Typ ) = ArrayLayouts. mul (A,B)
245
248
(* )(A:: $Typ , B:: LinearAlgebra. $ Struc) = ArrayLayouts. mul (A,B)
246
249
end
0 commit comments