@@ -38,7 +38,6 @@ using ITensors:
38
38
settags,
39
39
sim,
40
40
swaptags
41
- using ITensorMPS: ITensorMPS, add, linkdim, linkinds, siteinds
42
41
using . ITensorsExtensions: ITensorsExtensions, indtype, promote_indtype
43
42
using LinearAlgebra: LinearAlgebra, factorize
44
43
using MacroTools: @capture
@@ -255,7 +254,7 @@ indsnetwork(tn::AbstractITensorNetwork) = IndsNetwork(tn)
255
254
256
255
# TODO : Output a `VertexDataGraph`? Unfortunately
257
256
# `IndsNetwork` doesn't allow iterating over vertex data.
258
- function ITensorMPS . siteinds (tn:: AbstractITensorNetwork )
257
+ function siteinds (tn:: AbstractITensorNetwork )
259
258
is = IndsNetwork (underlying_graph (tn))
260
259
for v in vertices (tn)
261
260
is[v] = uniqueinds (tn, v)
@@ -268,7 +267,7 @@ function flatten_siteinds(tn::AbstractITensorNetwork)
268
267
return identity .(flatten (map (v -> siteinds (tn, v), vertices (tn))))
269
268
end
270
269
271
- function ITensorMPS . linkinds (tn:: AbstractITensorNetwork )
270
+ function linkinds (tn:: AbstractITensorNetwork )
272
271
is = IndsNetwork (underlying_graph (tn))
273
272
for e in edges (tn)
274
273
is[e] = commoninds (tn, e)
@@ -302,7 +301,11 @@ function ITensors.uniqueinds(tn::AbstractITensorNetwork, edge::Pair)
302
301
return uniqueinds (tn, edgetype (tn)(edge))
303
302
end
304
303
305
- function ITensors. siteinds (tn:: AbstractITensorNetwork , vertex)
304
+ function siteinds (tn:: AbstractITensorNetwork , vertex)
305
+ return uniqueinds (tn, vertex)
306
+ end
307
+ # Fix ambiguity error with IndsNetwork constructor.
308
+ function siteinds (tn:: AbstractITensorNetwork , vertex:: Int )
306
309
return uniqueinds (tn, vertex)
307
310
end
308
311
@@ -311,7 +314,7 @@ function ITensors.commoninds(tn::AbstractITensorNetwork, edge)
311
314
return commoninds (tn[src (e)], tn[dst (e)])
312
315
end
313
316
314
- function ITensorMPS . linkinds (tn:: AbstractITensorNetwork , edge)
317
+ function linkinds (tn:: AbstractITensorNetwork , edge)
315
318
return commoninds (tn, edge)
316
319
end
317
320
@@ -807,24 +810,24 @@ end
807
810
# Link dimensions
808
811
#
809
812
810
- function ITensorMPS . maxlinkdim (tn:: AbstractITensorNetwork )
813
+ function maxlinkdim (tn:: AbstractITensorNetwork )
811
814
md = 1
812
815
for e in edges (tn)
813
816
md = max (md, linkdim (tn, e))
814
817
end
815
818
return md
816
819
end
817
820
818
- function ITensorMPS . linkdim (tn:: AbstractITensorNetwork , edge:: Pair )
821
+ function linkdim (tn:: AbstractITensorNetwork , edge:: Pair )
819
822
return linkdim (tn, edgetype (tn)(edge))
820
823
end
821
824
822
- function ITensorMPS . linkdim (tn:: AbstractITensorNetwork{V} , edge:: AbstractEdge{V} ) where {V}
825
+ function linkdim (tn:: AbstractITensorNetwork{V} , edge:: AbstractEdge{V} ) where {V}
823
826
ls = linkinds (tn, edge)
824
827
return prod ([isnothing (l) ? 1 : dim (l) for l in ls])
825
828
end
826
829
827
- function ITensorMPS . linkdims (tn:: AbstractITensorNetwork{V} ) where {V}
830
+ function linkdims (tn:: AbstractITensorNetwork{V} ) where {V}
828
831
ld = DataGraph {V} (
829
832
copy (underlying_graph (tn)); vertex_data_eltype= Nothing, edge_data_eltype= Int
830
833
)
@@ -882,7 +885,7 @@ is_multi_edge(tn::AbstractITensorNetwork, e) = length(linkinds(tn, e)) > 1
882
885
is_multi_edge (tn:: AbstractITensorNetwork ) = Base. Fix1 (is_multi_edge, tn)
883
886
884
887
""" Add two itensornetworks together by growing the bond dimension. The network structures need to be have the same vertex names, same site index on each vertex """
885
- function ITensorMPS . add (tn1:: AbstractITensorNetwork , tn2:: AbstractITensorNetwork )
888
+ function add (tn1:: AbstractITensorNetwork , tn2:: AbstractITensorNetwork )
886
889
@assert issetequal (vertices (tn1), vertices (tn2))
887
890
888
891
tn1 = combine_linkinds (tn1; edges= filter (is_multi_edge (tn1), edges (tn1)))
0 commit comments