@@ -109,6 +109,7 @@ copy(M::Mul) = copy(mulreduce(M))
109109@inline copyto! (dest, M:: Mul ) = copyto! (dest, mulreduce (M))
110110@inline copyto! (dest:: AbstractArray , M:: Mul ) = copyto! (dest, mulreduce (M))
111111mul! (dest:: AbstractArray , A:: AbstractArray , B:: AbstractArray ) = copyto! (dest, Mul (A,B))
112+ mul! (dest:: AbstractArray , A:: AbstractArray , B:: AbstractArray , α:: Number , β:: Number ) = muladd! (α, A, B, β, dest)
112113
113114
114115broadcastable (M:: Mul ) = M
@@ -161,12 +162,18 @@ macro layoutmul(Typ)
161162 LinearAlgebra. mul! (dest:: AbstractVector , A:: $Typ , b:: AbstractVector ) =
162163 ArrayLayouts. mul! (dest,A,b)
163164
164- LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Typ , b :: AbstractMatrix ) =
165- ArrayLayouts. mul! (dest,A,b )
165+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Typ , B :: AbstractMatrix ) =
166+ ArrayLayouts. mul! (dest,A,B )
166167 LinearAlgebra. mul! (dest:: AbstractMatrix , A:: AbstractMatrix , B:: $Typ ) =
167168 ArrayLayouts. mul! (dest,A,B)
168169 LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Typ , B:: $Typ ) =
169170 ArrayLayouts. mul! (dest,A,B)
171+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Typ , B:: AbstractMatrix , α:: Number , β:: Number ) =
172+ ArrayLayouts. mul! (dest,A,B,α,β)
173+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: AbstractMatrix , B:: $Typ , α:: Number , β:: Number ) =
174+ ArrayLayouts. mul! (dest,A,B,α,β)
175+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Typ , B:: $Typ , α:: Number , β:: Number ) =
176+ ArrayLayouts. mul! (dest,A,B,α,β)
170177
171178 Base.:* (A:: $Typ , B:: $Typ ) = ArrayLayouts. mul (A,B)
172179 Base.:* (A:: $Typ , B:: AbstractMatrix ) = ArrayLayouts. mul (A,B)
@@ -193,9 +200,22 @@ macro layoutmul(Typ)
193200
194201 LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Typ , b:: $Mod{<:Any,<:AbstractMatrix} ) =
195202 ArrayLayouts. mul! (dest,A,b)
196-
197203 LinearAlgebra. mul! (dest:: AbstractVector , A:: $Mod{<:Any,<:$Typ} , b:: AbstractVector ) =
198204 ArrayLayouts. mul! (dest,A,b)
205+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Mod{<:Any,<:$Typ} , B:: AbstractMatrix , α:: Number , β:: Number ) =
206+ ArrayLayouts. mul! (dest,A,B,α,β)
207+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: AbstractMatrix , B:: $Mod{<:Any,<:$Typ} , α:: Number , β:: Number ) =
208+ ArrayLayouts. mul! (dest,A,B,α,β)
209+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Mod{<:Any,<:$Typ} , B:: $Typ , α:: Number , β:: Number ) =
210+ ArrayLayouts. mul! (dest,A,B,α,β)
211+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Typ , B:: $Mod{<:Any,<:$Typ} , α:: Number , β:: Number ) =
212+ ArrayLayouts. mul! (dest,A,B,α,β)
213+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Mod{<:Any,<:AbstractVecOrMat} , B:: $Typ , α:: Number , β:: Number ) =
214+ ArrayLayouts. mul! (dest,A,B,α,β)
215+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Typ , B:: $Mod{<:Any,<:AbstractVecOrMat} , α:: Number , β:: Number ) =
216+ ArrayLayouts. mul! (dest,A,B,α,β)
217+ LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Mod{<:Any,<:$Typ} , B:: $Mod{<:Any,<:$Typ} , α:: Number , β:: Number ) =
218+ ArrayLayouts. mul! (dest,A,B,α,β)
199219
200220 Base.:* (A:: $Mod{<:Any,<:$Typ} , B:: $Mod{<:Any,<:$Typ} ) = ArrayLayouts. mul (A,B)
201221 Base.:* (A:: $Mod{<:Any,<:$Typ} , B:: AbstractMatrix ) = ArrayLayouts. mul (A,B)
0 commit comments