Skip to content

Commit 85f5758

Browse files
lkdvosJutho
andauthored
Update src/tensors/abstracttensor.jl
Co-authored-by: Jutho <[email protected]>
1 parent c6b1eb9 commit 85f5758

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

src/tensors/abstracttensor.jl

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -597,17 +597,16 @@ function similar_diagonal(t::AbstractTensorMap, ::Type{TorA}, V::ElementarySpace
597597
return DiagonalTensorMap{T, spacetype(V), A}(undef, V)
598598
end
599599

600-
# 2 arguments
601-
similar_diagonal(t::AbstractTensorMap, ::Type{T}) where {T} =
602-
similar_diagonal(t, T, space(t))
603-
similar_diagonal(t::AbstractTensorMap, P::TensorMapSpace) =
604-
similar_diagonal(t, similarstoragetype(t), P)
605-
similar_diagonal(t::AbstractTensorMap, P::TensorSpace) =
606-
similar_diagonal(t, similarstoragetype(t), P)
600+
similar_diagonal(t::AbstractTensorMap) = similar_diagonal(t, similarstoragetype(t), _diagspace(t))
601+
similar_diagonal(t::AbstractTensorMap, V::ElementarySpace) = similar_diagonal(t, similarstoragetype(t), V)
602+
similar_diagonal(t::AbstractTensorMap, T::Type) = similar_diagonal(t, T, _diagspace(t))
607603

608-
# 1 argument
609-
similar_diagonal(t::AbstractTensorMap) =
610-
similar_diagonal(t, similarstoragetype(t), space(t))
604+
function _diagspace(t)
605+
cod, dom = codomain(t), domain(t)
606+
length(cod) == 1 && cod == dom ||
607+
throw(ArgumentError("space does not support a diagonal TensorMap"))
608+
return only(cod)
609+
end
611610

612611
# Equality and approximality
613612
#----------------------------

0 commit comments

Comments
 (0)