@@ -151,116 +151,116 @@ end
151
151
(* )(Da:: Diagonal , Db:: Diagonal ) = Diagonal (Da. diag .* Db. diag)
152
152
(* )(D:: Diagonal , V:: AbstractVector ) = D. diag .* V
153
153
154
- (* )(A:: AbstractTriangular , D:: Diagonal ) = mul1 ! (copy (A), D)
155
- (* )(D:: Diagonal , B:: AbstractTriangular ) = mul2 ! (D, copy (B))
154
+ (* )(A:: AbstractTriangular , D:: Diagonal ) = rmul ! (copy (A), D)
155
+ (* )(D:: Diagonal , B:: AbstractTriangular ) = lmul ! (D, copy (B))
156
156
157
157
(* )(A:: AbstractMatrix , D:: Diagonal ) =
158
158
mul! (similar (A, promote_op (* , eltype (A), eltype (D. diag)), size (A)), A, D)
159
159
(* )(D:: Diagonal , A:: AbstractMatrix ) =
160
160
mul! (similar (A, promote_op (* , eltype (A), eltype (D. diag)), size (A)), D, A)
161
161
162
- function mul1 ! (A:: AbstractMatrix , D:: Diagonal )
162
+ function rmul ! (A:: AbstractMatrix , D:: Diagonal )
163
163
A .= A .* transpose (D. diag)
164
164
return A
165
165
end
166
166
167
- function mul2 ! (D:: Diagonal , B:: AbstractMatrix )
167
+ function lmul ! (D:: Diagonal , B:: AbstractMatrix )
168
168
B .= D. diag .* B
169
169
return B
170
170
end
171
171
172
- mul1 ! (A:: Union{LowerTriangular,UpperTriangular} , D:: Diagonal ) = typeof (A)(mul1 ! (A. data, D))
173
- function mul1 ! (A:: UnitLowerTriangular , D:: Diagonal )
174
- mul1 ! (A. data, D)
172
+ rmul ! (A:: Union{LowerTriangular,UpperTriangular} , D:: Diagonal ) = typeof (A)(rmul ! (A. data, D))
173
+ function rmul ! (A:: UnitLowerTriangular , D:: Diagonal )
174
+ rmul ! (A. data, D)
175
175
for i = 1 : size (A, 1 )
176
176
A. data[i,i] = D. diag[i]
177
177
end
178
178
LowerTriangular (A. data)
179
179
end
180
- function mul1 ! (A:: UnitUpperTriangular , D:: Diagonal )
181
- mul1 ! (A. data, D)
180
+ function rmul ! (A:: UnitUpperTriangular , D:: Diagonal )
181
+ rmul ! (A. data, D)
182
182
for i = 1 : size (A, 1 )
183
183
A. data[i,i] = D. diag[i]
184
184
end
185
185
UpperTriangular (A. data)
186
186
end
187
187
188
- function mul2 ! (D:: Diagonal , B:: UnitLowerTriangular )
189
- mul2 ! (D, B. data)
188
+ function lmul ! (D:: Diagonal , B:: UnitLowerTriangular )
189
+ lmul ! (D, B. data)
190
190
for i = 1 : size (B, 1 )
191
191
B. data[i,i] = D. diag[i]
192
192
end
193
193
LowerTriangular (B. data)
194
194
end
195
- function mul2 ! (D:: Diagonal , B:: UnitUpperTriangular )
196
- mul2 ! (D, B. data)
195
+ function lmul ! (D:: Diagonal , B:: UnitUpperTriangular )
196
+ lmul ! (D, B. data)
197
197
for i = 1 : size (B, 1 )
198
198
B. data[i,i] = D. diag[i]
199
199
end
200
200
UpperTriangular (B. data)
201
201
end
202
202
203
203
* (D:: Adjoint{<:Any,<:Diagonal} , B:: Diagonal ) = Diagonal (adjoint .(D. parent. diag) .* B. diag)
204
- * (A:: Adjoint{<:Any,<:AbstractTriangular} , D:: Diagonal ) = mul1 ! (copy (A), D)
204
+ * (A:: Adjoint{<:Any,<:AbstractTriangular} , D:: Diagonal ) = rmul ! (copy (A), D)
205
205
function * (adjA:: Adjoint{<:Any,<:AbstractMatrix} , D:: Diagonal )
206
206
A = adjA. parent
207
207
Ac = similar (A, promote_op (* , eltype (A), eltype (D. diag)), (size (A, 2 ), size (A, 1 )))
208
208
adjoint! (Ac, A)
209
- mul1 ! (Ac, D)
209
+ rmul ! (Ac, D)
210
210
end
211
211
212
212
* (D:: Transpose{<:Any,<:Diagonal} , B:: Diagonal ) = Diagonal (transpose .(D. parent. diag) .* B. diag)
213
- * (A:: Transpose{<:Any,<:AbstractTriangular} , D:: Diagonal ) = mul1 ! (copy (A), D)
213
+ * (A:: Transpose{<:Any,<:AbstractTriangular} , D:: Diagonal ) = rmul ! (copy (A), D)
214
214
function * (transA:: Transpose{<:Any,<:AbstractMatrix} , D:: Diagonal )
215
215
A = transA. parent
216
216
At = similar (A, promote_op (* , eltype (A), eltype (D. diag)), (size (A, 2 ), size (A, 1 )))
217
217
transpose! (At, A)
218
- mul1 ! (At, D)
218
+ rmul ! (At, D)
219
219
end
220
220
221
221
* (D:: Diagonal , B:: Adjoint{<:Any,<:Diagonal} ) = Diagonal (D. diag .* adjoint .(B. parent. diag))
222
- * (D:: Diagonal , B:: Adjoint{<:Any,<:AbstractTriangular} ) = mul2 ! (D, collect (B))
223
- * (D:: Diagonal , adjQ:: Adjoint{<:Any,<:Union{QRCompactWYQ,QRPackedQ}} ) = (Q = adjQ. parent; mul1 ! (Array (D), adjoint (Q)))
222
+ * (D:: Diagonal , B:: Adjoint{<:Any,<:AbstractTriangular} ) = lmul ! (D, collect (B))
223
+ * (D:: Diagonal , adjQ:: Adjoint{<:Any,<:Union{QRCompactWYQ,QRPackedQ}} ) = (Q = adjQ. parent; rmul ! (Array (D), adjoint (Q)))
224
224
function * (D:: Diagonal , adjA:: Adjoint{<:Any,<:AbstractMatrix} )
225
225
A = adjA. parent
226
226
Ac = similar (A, promote_op (* , eltype (A), eltype (D. diag)), (size (A, 2 ), size (A, 1 )))
227
227
adjoint! (Ac, A)
228
- mul2 ! (D, Ac)
228
+ lmul ! (D, Ac)
229
229
end
230
230
231
231
* (D:: Diagonal , B:: Transpose{<:Any,<:Diagonal} ) = Diagonal (D. diag .* transpose .(B. parent. diag))
232
- * (D:: Diagonal , B:: Transpose{<:Any,<:AbstractTriangular} ) = mul2 ! (D, copy (B))
232
+ * (D:: Diagonal , B:: Transpose{<:Any,<:AbstractTriangular} ) = lmul ! (D, copy (B))
233
233
function * (D:: Diagonal , transA:: Transpose{<:Any,<:AbstractMatrix} )
234
234
A = transA. parent
235
235
At = similar (A, promote_op (* , eltype (A), eltype (D. diag)), (size (A, 2 ), size (A, 1 )))
236
236
transpose! (At, A)
237
- mul2 ! (D, At)
237
+ lmul ! (D, At)
238
238
end
239
239
240
240
* (D:: Adjoint{<:Any,<:Diagonal} , B:: Adjoint{<:Any,<:Diagonal} ) =
241
241
Diagonal (adjoint .(D. parent. diag) .* adjoint .(B. parent. diag))
242
242
* (D:: Transpose{<:Any,<:Diagonal} , B:: Transpose{<:Any,<:Diagonal} ) =
243
243
Diagonal (transpose .(D. parent. diag) .* transpose .(B. parent. diag))
244
244
245
- mul1 ! (A:: Diagonal , B:: Diagonal ) = Diagonal (A. diag .*= B. diag)
246
- mul2 ! (A:: Diagonal , B:: Diagonal ) = Diagonal (B. diag .= A. diag .* B. diag)
245
+ rmul ! (A:: Diagonal , B:: Diagonal ) = Diagonal (A. diag .*= B. diag)
246
+ lmul ! (A:: Diagonal , B:: Diagonal ) = Diagonal (B. diag .= A. diag .* B. diag)
247
247
248
- function mul2 ! (adjA:: Adjoint{<:Any,<:Diagonal} , B:: AbstractMatrix )
248
+ function lmul ! (adjA:: Adjoint{<:Any,<:Diagonal} , B:: AbstractMatrix )
249
249
A = adjA. parent
250
- return mul2 ! (conj (A. diag), B)
250
+ return lmul ! (conj (A. diag), B)
251
251
end
252
- function mul2 ! (transA:: Transpose{<:Any,<:Diagonal} , B:: AbstractMatrix )
252
+ function lmul ! (transA:: Transpose{<:Any,<:Diagonal} , B:: AbstractMatrix )
253
253
A = transA. parent
254
- return mul2 ! (A. diag, B)
254
+ return lmul ! (A. diag, B)
255
255
end
256
256
257
- function mul1 ! (A:: AbstractMatrix , adjB:: Adjoint{<:Any,<:Diagonal} )
257
+ function rmul ! (A:: AbstractMatrix , adjB:: Adjoint{<:Any,<:Diagonal} )
258
258
B = adjB. parent
259
- return mul1 ! (A, conj (B. diag))
259
+ return rmul ! (A, conj (B. diag))
260
260
end
261
- function mul1 ! (A:: AbstractMatrix , transB:: Transpose{<:Any,<:Diagonal} )
261
+ function rmul ! (A:: AbstractMatrix , transB:: Transpose{<:Any,<:Diagonal} )
262
262
B = transB. parent
263
- return mul1 ! (A, B. diag)
263
+ return rmul ! (A, B. diag)
264
264
end
265
265
266
266
# Get ambiguous method if try to unify AbstractVector/AbstractMatrix here using AbstractVecOrMat
0 commit comments