@@ -109,6 +109,7 @@ copy(M::Mul) = copy(mulreduce(M))
109
109
@inline copyto! (dest, M:: Mul ) = copyto! (dest, mulreduce (M))
110
110
@inline copyto! (dest:: AbstractArray , M:: Mul ) = copyto! (dest, mulreduce (M))
111
111
mul! (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)
112
113
113
114
114
115
broadcastable (M:: Mul ) = M
@@ -161,12 +162,18 @@ macro layoutmul(Typ)
161
162
LinearAlgebra. mul! (dest:: AbstractVector , A:: $Typ , b:: AbstractVector ) =
162
163
ArrayLayouts. mul! (dest,A,b)
163
164
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 )
166
167
LinearAlgebra. mul! (dest:: AbstractMatrix , A:: AbstractMatrix , B:: $Typ ) =
167
168
ArrayLayouts. mul! (dest,A,B)
168
169
LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Typ , B:: $Typ ) =
169
170
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,α,β)
170
177
171
178
Base.:* (A:: $Typ , B:: $Typ ) = ArrayLayouts. mul (A,B)
172
179
Base.:* (A:: $Typ , B:: AbstractMatrix ) = ArrayLayouts. mul (A,B)
@@ -193,9 +200,22 @@ macro layoutmul(Typ)
193
200
194
201
LinearAlgebra. mul! (dest:: AbstractMatrix , A:: $Typ , b:: $Mod{<:Any,<:AbstractMatrix} ) =
195
202
ArrayLayouts. mul! (dest,A,b)
196
-
197
203
LinearAlgebra. mul! (dest:: AbstractVector , A:: $Mod{<:Any,<:$Typ} , b:: AbstractVector ) =
198
204
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,α,β)
199
219
200
220
Base.:* (A:: $Mod{<:Any,<:$Typ} , B:: $Mod{<:Any,<:$Typ} ) = ArrayLayouts. mul (A,B)
201
221
Base.:* (A:: $Mod{<:Any,<:$Typ} , B:: AbstractMatrix ) = ArrayLayouts. mul (A,B)
0 commit comments