Skip to content

Commit 35a3df2

Browse files
committed
Use matprod_dest to obtain destination
1 parent 23d0e50 commit 35a3df2

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/diagonal.jl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -337,16 +337,18 @@ function _diag_adj_mul(A::AdjOrTransAbsMat, D::Diagonal)
337337
copy(adj(adj(D) * adj(A)))
338338
end
339339
function _diag_adj_mul(A::AdjOrTransAbsMat{<:Number, <:StridedMatrix}, D::Diagonal{<:Number})
340-
Ac = copy_similar(A, promote_op(*, eltype(A), eltype(D)))
341-
rmul!(Ac, D)
340+
TS = promote_op(matprod, eltype(A), eltype(D))
341+
C = matprod_dest(A, D, TS)
342+
mul!(C, A, D)
342343
end
343344
function _diag_adj_mul(D::Diagonal, A::AdjOrTransAbsMat)
344345
adj = wrapperop(A)
345346
copy(adj(adj(A) * adj(D)))
346347
end
347348
function _diag_adj_mul(D::Diagonal{<:Number}, A::AdjOrTransAbsMat{<:Number, <:StridedMatrix})
348-
Ac = copy_similar(A, promote_op(*, eltype(A), eltype(D)))
349-
lmul!(D, Ac)
349+
TS = promote_op(matprod, eltype(A), eltype(D))
350+
C = matprod_dest(D, A, TS)
351+
mul!(C, D, A)
350352
end
351353

352354
function (*)(A::AdjOrTransAbsMat, D::Diagonal)

0 commit comments

Comments
 (0)