@@ -330,19 +330,26 @@ function (*)(D::Diagonal, V::AbstractVector)
330330 return D. diag .* V
331331end
332332
333- function mul (A:: AdjOrTransAbsMat , D:: Diagonal )
333+ function _diag_adj_mul (A:: AdjOrTransAbsMat , D:: Diagonal )
334334 adj = wrapperop (A)
335335 copy (adj (adj (D) * adj (A)))
336336end
337- function mul (A:: AdjOrTransAbsMat{<:Number, <:StridedMatrix} , D:: Diagonal{<:Number} )
338- @invoke mul (A:: AbstractMatrix , D:: AbstractMatrix )
337+ function _diag_adj_mul (A:: AdjOrTransAbsMat{<:Number, <:StridedMatrix} , D:: Diagonal{<:Number} )
338+ @invoke * (A:: AbstractMatrix , D:: AbstractMatrix )
339339end
340- function mul (D:: Diagonal , A:: AdjOrTransAbsMat )
340+ function _diag_adj_mul (D:: Diagonal , A:: AdjOrTransAbsMat )
341341 adj = wrapperop (A)
342342 copy (adj (adj (A) * adj (D)))
343343end
344- function mul (D:: Diagonal{<:Number} , A:: AdjOrTransAbsMat{<:Number, <:StridedMatrix} )
345- @invoke mul (D:: AbstractMatrix , A:: AbstractMatrix )
344+ function _diag_adj_mul (D:: Diagonal{<:Number} , A:: AdjOrTransAbsMat{<:Number, <:StridedMatrix} )
345+ @invoke * (D:: AbstractMatrix , A:: AbstractMatrix )
346+ end
347+
348+ function (* )(A:: AdjOrTransAbsMat , D:: Diagonal )
349+ _diag_adj_mul (A, D)
350+ end
351+ function (* )(D:: Diagonal , A:: AdjOrTransAbsMat )
352+ _diag_adj_mul (D, A)
346353end
347354
348355function rmul! (A:: AbstractMatrix , D:: Diagonal )
0 commit comments