11module ITensorNetworksOMEinsumContractionOrdersExt
22using DocStringExtensions: TYPEDSIGNATURES
3- using ITensorNetworks: ITensorNetworks
3+ using ITensorNetworks: ITensorNetworks, ITensorList
44using ITensors: ITensors, Index, ITensor, inds
55using NDTensors: dim
66using NDTensors. AlgorithmSelection: @Algorithm_str
@@ -9,8 +9,6 @@ using OMEinsumContractionOrders: OMEinsumContractionOrders
99# OMEinsumContractionOrders wrapper for ITensors
1010# Slicing is not supported, because it might require extra work to slice an `ITensor` correctly.
1111
12- const ITensorList = Union{Vector{ITensor},Tuple{Vararg{ITensor}}}
13-
1412# infer the output tensor labels
1513# TODO : Use `symdiff` instead.
1614function infer_output (inputs:: AbstractVector{<:AbstractVector{<:Index}} )
@@ -126,7 +124,9 @@ Optimize the einsum contraction pattern using the simulated annealing on tensor
126124### References
127125* [Recursive Multi-Tensor Contraction for XEB Verification of Quantum Circuits](https://arxiv.org/abs/2108.05665)
128126"""
129- function ITensorNetworks. contraction_sequence (:: Algorithm"tree_sa" , tn; kwargs... )
127+ function ITensorNetworks. contraction_sequence (
128+ :: Algorithm"tree_sa" , tn:: ITensorList ; kwargs...
129+ )
130130 return optimize_contraction_sequence (
131131 tn; optimizer= OMEinsumContractionOrders. TreeSA (; kwargs... )
132132 )
@@ -153,7 +153,9 @@ Then finds the contraction order inside each group with the greedy search algori
153153### References
154154* [Hyper-optimized tensor network contraction](https://arxiv.org/abs/2002.01935)
155155"""
156- function ITensorNetworks. contraction_sequence (:: Algorithm"sa_bipartite" , tn; kwargs... )
156+ function ITensorNetworks. contraction_sequence (
157+ :: Algorithm"sa_bipartite" , tn:: ITensorList ; kwargs...
158+ )
157159 return optimize_contraction_sequence (
158160 tn; optimizer= OMEinsumContractionOrders. SABipartite (; kwargs... )
159161 )
@@ -177,7 +179,9 @@ Then finds the contraction order inside each group with the greedy search algori
177179* [Hyper-optimized tensor network contraction](https://arxiv.org/abs/2002.01935)
178180* [Simulating the Sycamore quantum supremacy circuits](https://arxiv.org/abs/2103.03074)
179181"""
180- function ITensorNetworks. contraction_sequence (:: Algorithm"kahypar_bipartite" , tn; kwargs... )
182+ function ITensorNetworks. contraction_sequence (
183+ :: Algorithm"kahypar_bipartite" , tn:: ITensorList ; kwargs...
184+ )
181185 return optimize_contraction_sequence (
182186 tn; optimizer= OMEinsumContractionOrders. KaHyParBipartite (; kwargs... )
183187 )
0 commit comments