Skip to content

Commit 5ecd860

Browse files
committed
Add lmul and rmul for DiagonalTensorMap
1 parent 62ca99d commit 5ecd860

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

src/tensors/diagonal.jl

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,21 @@ function LinearAlgebra.mul!(dC::DiagonalTensorMap,
275275
return dC
276276
end
277277

278+
function LinearAlgebra.lmul!(D::DiagonalTensorMap, t::AbstractTensorMap)
279+
domain(D) == codomain(t) || throw(SpaceMismatch())
280+
for (c, b) in blocks(t)
281+
lmul!(block(D, c), b)
282+
end
283+
return t
284+
end
285+
function LinearAlgebra.rmul!(t::AbstractTensorMap, D::DiagonalTensorMap)
286+
codomain(D) == domain(t) || throw(SpaceMismatch())
287+
for (c, b) in blocks(t)
288+
rmul!(b, block(D, c))
289+
end
290+
return t
291+
end
292+
278293
Base.inv(d::DiagonalTensorMap) = DiagonalTensorMap(inv.(d.data), d.domain)
279294
function Base.:\(d1::DiagonalTensorMap, d2::DiagonalTensorMap)
280295
d1.domain == d2.domain || throw(SpaceMismatch())

0 commit comments

Comments
 (0)