@@ -252,7 +252,7 @@ macro layoutmul(Typ)
252
252
(* )(A:: $Typ , B:: LinearAlgebra. $ Struc) = ArrayLayouts. mul (A,B)
253
253
end
254
254
end
255
- for Mod in (:Adjoint , :Transpose , :Symmetric , :Hermitian , :UpperOrLowerTriangular )
255
+ for Mod in (:Adjoint , :Transpose , :Symmetric , :Hermitian )
256
256
ret = quote
257
257
$ ret
258
258
@@ -297,6 +297,37 @@ macro layoutmul(Typ)
297
297
end
298
298
end
299
299
300
+ ret = quote
301
+ $ ret
302
+
303
+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Typ , b:: UpperOrLowerTriangular ) =
304
+ ArrayLayouts. mul! (dest,A,b)
305
+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: UpperOrLowerTriangular , b:: $Typ ) =
306
+ ArrayLayouts. mul! (dest,A,b)
307
+ LinearAlgebra. mul! (dest:: AbstractVector , A:: UpperOrLowerTriangular{<:Any,<:$Typ} , b:: AbstractVector ) =
308
+ ArrayLayouts. mul! (dest,A,b)
309
+ LinearAlgebra. mul! (dest:: AbstractVector , A:: UpperOrLowerTriangular{<:Any,<:$Typ} , b:: AbstractVector , α:: Number , β:: Number ) =
310
+ ArrayLayouts. mul! (dest,A,b,α,β)
311
+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: UpperOrLowerTriangular{<:Any,<:$Typ} , B:: AbstractMatrix , α:: Number , β:: Number ) =
312
+ ArrayLayouts. mul! (dest,A,B,α,β)
313
+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: UpperOrLowerTriangular{<:Any,<:$Typ} , B:: UpperOrLowerTriangular , α:: Number , β:: Number ) =
314
+ ArrayLayouts. mul! (dest,A,B,α,β)
315
+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: AbstractMatrix , B:: UpperOrLowerTriangular{<:Any,<:$Typ} , α:: Number , β:: Number ) =
316
+ ArrayLayouts. mul! (dest,A,B,α,β)
317
+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: UpperOrLowerTriangular , B:: UpperOrLowerTriangular{<:Any,<:$Typ} , α:: Number , β:: Number ) =
318
+ ArrayLayouts. mul! (dest,A,B,α,β)
319
+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: UpperOrLowerTriangular{<:Any,<:$Typ} , B:: $Typ , α:: Number , β:: Number ) =
320
+ ArrayLayouts. mul! (dest,A,B,α,β)
321
+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Typ , B:: UpperOrLowerTriangular{<:Any,<:$Typ} , α:: Number , β:: Number ) =
322
+ ArrayLayouts. mul! (dest,A,B,α,β)
323
+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: UpperOrLowerTriangular , B:: $Typ , α:: Number , β:: Number ) =
324
+ ArrayLayouts. mul! (dest,A,B,α,β)
325
+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Typ , B:: UpperOrLowerTriangular , α:: Number , β:: Number ) =
326
+ ArrayLayouts. mul! (dest,A,B,α,β)
327
+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: UpperOrLowerTriangular{<:Any,<:$Typ} , B:: UpperOrLowerTriangular{<:Any,<:$Typ} , α:: Number , β:: Number ) =
328
+ ArrayLayouts. mul! (dest,A,B,α,β)
329
+
330
+ end
300
331
esc (ret)
301
332
end
302
333
316
347
* (x:: TransposeAbsVec{<:Any,<:Zeros{<:Any,1}} , D:: Diagonal , y:: LayoutVector ) = FillArrays. _triple_zeromul (x, D, y)
317
348
318
349
350
+ * (A:: UpperOrLowerTriangular{<:Any,<:LayoutMatrix} , B:: UpperOrLowerTriangular{<:Any,<:LayoutMatrix} ) = mul (A, B)
319
351
* (A:: UpperOrLowerTriangular{<:Any,<:AdjOrTrans{<:Any,<:LayoutMatrix}} , B:: UpperOrLowerTriangular{<:Any,<:LayoutMatrix} ) = mul (A, B)
320
352
* (A:: UpperOrLowerTriangular{<:Any,<:LayoutMatrix} , B:: UpperOrLowerTriangular{<:Any,<:AdjOrTrans{<:Any,<:LayoutMatrix}} ) = mul (A, B)
321
353
* (A:: UpperOrLowerTriangular{<:Any,<:AdjOrTrans{<:Any,<:LayoutMatrix}} , B:: UpperOrLowerTriangular{<:Any,<:AdjOrTrans{<:Any,<:LayoutMatrix}} ) = mul (A, B)
0 commit comments