@@ -320,7 +320,7 @@ Base.literal_pow(::typeof(^), D::Diagonal, valp::Val) =
320320 Diagonal (Base. literal_pow .(^ , D. diag, valp)) # for speed
321321Base. literal_pow (:: typeof (^ ), D:: Diagonal , :: Val{-1} ) = inv (D) # for disambiguation
322322
323- function ( * ) (Da:: Diagonal , Db:: Diagonal )
323+ function mul (Da:: Diagonal , Db:: Diagonal )
324324 matmul_size_check (size (Da), size (Db))
325325 return Diagonal (Da. diag .* Db. diag)
326326end
@@ -330,26 +330,19 @@ function (*)(D::Diagonal, V::AbstractVector)
330330 return D. diag .* V
331331end
332332
333- function _diag_adj_mul (A:: AdjOrTransAbsMat , D:: Diagonal )
333+ function mul (A:: AdjOrTransAbsMat , D:: Diagonal )
334334 adj = wrapperop (A)
335335 copy (adj (adj (D) * adj (A)))
336336end
337- function _diag_adj_mul (A:: AdjOrTransAbsMat{<:Number, <:StridedMatrix} , D:: Diagonal{<:Number} )
338- @invoke * (A:: AbstractMatrix , D:: AbstractMatrix )
337+ function mul (A:: AdjOrTransAbsMat{<:Number, <:StridedMatrix} , D:: Diagonal{<:Number} )
338+ @invoke mul (A:: AbstractMatrix , D:: AbstractMatrix )
339339end
340- function _diag_adj_mul (D:: Diagonal , A:: AdjOrTransAbsMat )
340+ function mul (D:: Diagonal , A:: AdjOrTransAbsMat )
341341 adj = wrapperop (A)
342342 copy (adj (adj (A) * adj (D)))
343343end
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)
344+ function mul (D:: Diagonal{<:Number} , A:: AdjOrTransAbsMat{<:Number, <:StridedMatrix} )
345+ @invoke mul (D:: AbstractMatrix , A:: AbstractMatrix )
353346end
354347
355348function rmul! (A:: AbstractMatrix , D:: Diagonal )
@@ -1088,9 +1081,6 @@ end
10881081* (x:: TransposeAbsVec , D:: Diagonal , y:: AbstractVector ) = _mapreduce_prod (* , x, D, y)
10891082/ (u:: AdjointAbsVec , D:: Diagonal ) = (D' \ u' )'
10901083/ (u:: TransposeAbsVec , D:: Diagonal ) = transpose (transpose (D) \ transpose (u))
1091- # disambiguation methods: Call unoptimized version for user defined AbstractTriangular.
1092- * (A:: AbstractTriangular , D:: Diagonal ) = @invoke * (A:: AbstractMatrix , D:: Diagonal )
1093- * (D:: Diagonal , A:: AbstractTriangular ) = @invoke * (D:: Diagonal , A:: AbstractMatrix )
10941084
10951085_opnorm1 (A:: Diagonal ) = maximum (norm (x) for x in A. diag)
10961086_opnormInf (A:: Diagonal ) = maximum (norm (x) for x in A. diag)
0 commit comments