From 7bf04a6560af590a65ea939e7389a58154a7072d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?= Date: Tue, 5 Dec 2023 00:51:15 +0100 Subject: [PATCH] Fix tensor selection inside `contract` --- src/TensorNetwork.jl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/TensorNetwork.jl b/src/TensorNetwork.jl index 792f4d6b..e42c160c 100644 --- a/src/TensorNetwork.jl +++ b/src/TensorNetwork.jl @@ -434,8 +434,7 @@ The `kwargs` will be passed down to the [`einexpr`](@ref) function. See also: [`einexpr`](@ref), [`contract!`](@ref). """ function contract(tn::AbstractTensorNetwork; path = einexpr(tn)) - # TODO does `first` work always? - length(path.args) == 0 && return select(tn, inds(path)) |> first + length(path.args) == 0 && return tn[inds(path)...] intermediates = map(subpath -> contract(tn; path = subpath), path.args) contract(intermediates...; dims = suminds(path))