From c94ec366b3cd77c0b9f92a509c73dc71f240d935 Mon Sep 17 00:00:00 2001 From: Lukas Devos Date: Mon, 9 Jun 2025 17:16:31 -0400 Subject: [PATCH 1/3] change copy implementation to handle `adjoint` better Also fix `eltype` in `similar` call --- src/tensors/abstractblocktensor/abstractarray.jl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/tensors/abstractblocktensor/abstractarray.jl b/src/tensors/abstractblocktensor/abstractarray.jl index b509455..d2fa326 100644 --- a/src/tensors/abstractblocktensor/abstractarray.jl +++ b/src/tensors/abstractblocktensor/abstractarray.jl @@ -197,11 +197,13 @@ end return @inbounds get(parent(t), key, default) end -Base.copy(t::AbstractBlockTensorMap) = copy!(similar(t), t) +function Base.copy(t::AbstractBlockTensorMap) + return copy!(similar(t, Base.promote_op(copy, eltype(t)), space(t)), t) +end function Base.copy!(tdst::AbstractBlockTensorMap, tsrc::AbstractBlockTensorMap) space(tdst) == space(tsrc) || throw(SpaceMismatch("$(space(tdst)) ≠ $(space(tsrc))")) @inbounds for (key, value) in nonzero_pairs(tsrc) - tdst[key] = copy(value) + tdst[key] = copy!(tdst[key], value) end return tdst end From cb2f1cda353c09ebe646f5a2ca61b1adfdb5364d Mon Sep 17 00:00:00 2001 From: Lukas Devos Date: Mon, 9 Jun 2025 17:36:50 -0400 Subject: [PATCH 2/3] Add some tests --- test/abstracttensor/blocktensor.jl | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/abstracttensor/blocktensor.jl b/test/abstracttensor/blocktensor.jl index e00e778..97185c6 100644 --- a/test/abstracttensor/blocktensor.jl +++ b/test/abstracttensor/blocktensor.jl @@ -207,6 +207,16 @@ end @test ta ≈ tb end +@testset "Adjoint via conversion" begin + t1 = rand(ComplexF64, V1 ⊗ V2 ← V4') + a = convert(TensorMap, t1) + t1adj = @constinferred adjoint(t1) + t1adj′ = @constinferred copy(t1adj) + @test !(eltype(t1adj′) <: TensorKit.AdjointTensorMap) + @test t1adj ≈ t1adj′ + @test a' ≈ convert(TensorMap, t1adj) +end + # if hasfusiontensor(I) # @timedtestset "Tensor functions" begin # W = V1 ⊗ V2 From 21dd54ccf4027ffa6a4e5e400a420ab12366eae8 Mon Sep 17 00:00:00 2001 From: Lukas Devos Date: Mon, 9 Jun 2025 17:37:24 -0400 Subject: [PATCH 3/3] Bump version 0.1.7 --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index f40e39f..c7e6584 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "BlockTensorKit" uuid = "5f87ffc2-9cf1-4a46-8172-465d160bd8cd" authors = ["Lukas Devos and contributors"] -version = "0.1.6" +version = "0.1.7" [deps] BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e"