diff --git a/Project.toml b/Project.toml index 943d0a51d..0b3c0e5f2 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "ITensorNetworks" uuid = "2919e153-833c-4bdc-8836-1ea460a35fc7" -version = "0.21.5" +version = "0.22.0" authors = ["Matthew Fishman , Joseph Tindall and contributors"] [workspace] @@ -54,7 +54,7 @@ Adapt = "4" Combinatorics = "1" Compat = "3, 4" ConstructionBase = "1.6" -DataGraphs = "0.4.1, 0.5" +DataGraphs = "0.6" Dictionaries = "0.4" Distributions = "0.25.86" DocStringExtensions = "0.9" @@ -66,7 +66,7 @@ IterTools = "1.4" KrylovKit = "0.6, 0.7, 0.8, 0.9, 0.10" MacroTools = "0.5" NDTensors = "0.3, 0.4" -NamedGraphs = "0.11.1, 0.12, 0.13" +NamedGraphs = "0.14" OMEinsumContractionOrders = "0.8.3, 0.9, 1" SerializedElementArrays = "0.1" SimpleTraits = "0.9" diff --git a/docs/Project.toml b/docs/Project.toml index c75322b6b..44e4813f3 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -16,9 +16,9 @@ path = ".." Documenter = "1.10" Graphs = "1" ITensorFormatter = "0.2.27" -ITensorNetworks = "0.21" +ITensorNetworks = "0.22" ITensors = "0.9" Literate = "2.20.1" -NamedGraphs = "0.11, 0.12, 0.13" +NamedGraphs = "0.14" OMEinsumContractionOrders = "1.2.2" TensorOperations = "5.5" diff --git a/docs/make.jl b/docs/make.jl index 18cf0162f..f54ad5518 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -49,6 +49,7 @@ makedocs(; "Deprecated Methods" => "deprecated_methods.md", ], "API Reference" => "reference.md", + "Changelog" => "changelog.md", ] ) diff --git a/docs/src/changelog.md b/docs/src/changelog.md new file mode 100644 index 000000000..906f56565 --- /dev/null +++ b/docs/src/changelog.md @@ -0,0 +1,22 @@ +# Changelog + +## [0.22.0](https://github.com/ITensor/ITensorNetworks.jl/compare/v0.21.5...v0.22.0) - 2026-09-09 + +### Breaking changes + +- Requires NamedGraphs v0.14. The network types here are `AbstractNamedGraph` + subtypes, so its breaking changes carry through to them, including the output + types of `vertices` and `edges` and the return values of the mutating + functions. See the + [NamedGraphs changelog](https://itensor.github.io/NamedGraphs.jl/stable/changelog/) + ([#385](https://github.com/ITensor/ITensorNetworks.jl/pull/385)). +- The leaf type of a contraction sequence is `ITensorNetworks.Key`, where it was + `NamedGraphs.Keys.Key` + ([#385](https://github.com/ITensor/ITensorNetworks.jl/pull/385)). + +### Non-breaking changes + +- `gauge_walk` and the `edges` keyword of `combine_linkinds` take any collection + of edges, where they previously required a `Vector` and so rejected the + iterator that `edges` now returns + ([#385](https://github.com/ITensor/ITensorNetworks.jl/pull/385)). diff --git a/docs/src/computing_properties.md b/docs/src/computing_properties.md index f2b221ed6..f6985d7c0 100644 --- a/docs/src/computing_properties.md +++ b/docs/src/computing_properties.md @@ -5,8 +5,7 @@ using Graphs: edges, vertices using ITensorNetworks: ITensorNetwork, expect, inner, loginner, normalize, siteinds, ttn using ITensors: Index, random_itensor using LinearAlgebra: norm -using NamedGraphs.GraphsExtensions: incident_edges -using NamedGraphs.NamedGraphGenerators: named_grid +using NamedGraphs: incident_edges, named_grid function random_state(g, s; link_space) l = Dict(e => Index(link_space, "Link") for e in edges(g)) diff --git a/docs/src/developer_methods.md b/docs/src/developer_methods.md index 0e132df07..fb944f4ba 100644 --- a/docs/src/developer_methods.md +++ b/docs/src/developer_methods.md @@ -170,7 +170,7 @@ * Tree-traversal sequence: cover `g` with a forest, then for each tree push a post-order DFS sweep followed by its reverse — gives a back-and-forth sequence covering every edge (`edge_sequences.jl`): ```julia - edge_sequence(::Algorithm"forest_cover", g; root_vertex = GraphsExtensions.default_root_vertex) + edge_sequence(::Algorithm"forest_cover", g; root_vertex = default_root_vertex) ``` * Parallel sequence: each edge (and its reverse) as its own one-edge group, suitable diff --git a/docs/src/experimental_methods.md b/docs/src/experimental_methods.md index 14d28373b..f5b880dce 100644 --- a/docs/src/experimental_methods.md +++ b/docs/src/experimental_methods.md @@ -86,13 +86,13 @@ Methods which still need to be discussed, modified, or deprecated. * Sweep-based truncation. The whole-TTN form orthogonalizes towards `src(e)` before each bond truncation; the edge form lifts `truncate` from the underlying `ITensorNetwork` (`treetensornetworks/abstracttreetensornetwork.jl`): ```julia - truncate(tn::AbstractTTN; root_vertex = GraphsExtensions.default_root_vertex(tn), kwargs...) + truncate(tn::AbstractTTN; root_vertex = default_root_vertex(tn), kwargs...) truncate(tn::AbstractTTN, edge::AbstractEdge; kwargs...) ``` * Contract the whole tree into a single `ITensor` via a reverse post-order DFS sequence (`treetensornetworks/abstracttreetensornetwork.jl`): ```julia - contract(tn::AbstractTTN, root_vertex = GraphsExtensions.default_root_vertex(tn); kwargs...) + contract(tn::AbstractTTN, root_vertex = default_root_vertex(tn); kwargs...) ``` * Inner product `⟨x|y⟩`, matrix element `⟨y|A|x⟩`, and four-network form `⟨B|y|A|x⟩`, diff --git a/docs/src/itensor_networks.md b/docs/src/itensor_networks.md index 7b225c1fb..c2d9b0de6 100644 --- a/docs/src/itensor_networks.md +++ b/docs/src/itensor_networks.md @@ -20,14 +20,13 @@ Key facts: The most common entry point is an `IndsNetwork` — a graph whose vertices and edges carry `Index` objects. Generate site indices with the `siteinds` function which takes a site type string (such as "S=1/2" or "Electron") and a NamedGraph. The NamedGraph can be -generated from functions such as `named_grid`, `named_comb_tree`, etc. from the NamedGraphs.jl -`NamedGraphGenerators` module: +generated from functions such as `named_grid`, `named_comb_tree`, etc. from NamedGraphs.jl: ```@example main using Graphs: edges, ne, neighbors, nv, vertices using ITensorNetworks: ITensorNetwork, add, linkinds, siteinds using ITensors: Index, ITensor -using NamedGraphs.NamedGraphGenerators: named_grid +using NamedGraphs: named_grid # 3×3 square-lattice tensor network g = named_grid((3, 3)) diff --git a/docs/src/solvers.md b/docs/src/solvers.md index 34f50c2c3..79067d2a9 100644 --- a/docs/src/solvers.md +++ b/docs/src/solvers.md @@ -19,8 +19,7 @@ variational sweep algorithm. using Graphs: vertices using ITensorNetworks: ITensorNetwork, dmrg, dst, edges, normalize, siteinds, src, ttn using ITensors: Index, OpSum, random_itensor -using NamedGraphs.GraphsExtensions: incident_edges -using NamedGraphs.NamedGraphGenerators: named_comb_tree +using NamedGraphs: incident_edges, named_comb_tree function random_state(g, s; link_space) l = Dict(e => Index(link_space, "Link") for e in edges(g)) diff --git a/docs/src/tree_tensor_networks.md b/docs/src/tree_tensor_networks.md index 52ed22313..079758e59 100644 --- a/docs/src/tree_tensor_networks.md +++ b/docs/src/tree_tensor_networks.md @@ -24,7 +24,7 @@ using ITensorNetworks: ITensorNetwork, TreeTensorNetwork, mps, ortho_region, ort siteinds, ttn using ITensors: ITensors using LinearAlgebra: norm -using NamedGraphs.NamedGraphGenerators: named_comb_tree +using NamedGraphs: named_comb_tree # Comb-tree TTN (a popular tree topology for 2D-like systems) g = named_comb_tree((3, 2)) diff --git a/examples/Project.toml b/examples/Project.toml index 3a9411e47..7899d300b 100644 --- a/examples/Project.toml +++ b/examples/Project.toml @@ -5,4 +5,4 @@ ITensorNetworks = "2919e153-833c-4bdc-8836-1ea460a35fc7" path = ".." [compat] -ITensorNetworks = "0.21" +ITensorNetworks = "0.22" diff --git a/src/abstractindsnetwork.jl b/src/abstractindsnetwork.jl index a57997036..43b342f09 100644 --- a/src/abstractindsnetwork.jl +++ b/src/abstractindsnetwork.jl @@ -4,9 +4,7 @@ using DataGraphs: DataGraphs, AbstractDataGraph, DataGraph, IsUnderlyingGraph, e set_edge_data!, set_vertex_data!, underlying_graph_type, vertex_data using Graphs: Graphs, AbstractEdge using ITensors: ITensors, unioninds -using NamedGraphs.GraphsExtensions: - GraphsExtensions, directed_graph, incident_edges, rename_vertices -using NamedGraphs: NamedGraphs +using NamedGraphs: NamedGraphs, directed_graph, incident_edges, rename_vertices abstract type AbstractIndsNetwork{V, I} <: AbstractDataGraph{V, Vector{I}, Vector{I}} end @@ -15,7 +13,7 @@ data_graph(graph::AbstractIndsNetwork) = not_implemented() # Overload if needed Graphs.is_directed(::Type{<:AbstractIndsNetwork}) = false -GraphsExtensions.directed_graph(is::AbstractIndsNetwork) = directed_graph(data_graph(is)) +NamedGraphs.directed_graph(is::AbstractIndsNetwork) = directed_graph(data_graph(is)) # AbstractDataGraphs overloads DataGraphs.underlying_graph(is::AbstractIndsNetwork) = underlying_graph(data_graph(is)) diff --git a/src/abstractitensornetwork.jl b/src/abstractitensornetwork.jl index 28f9d8465..ce3dd33db 100644 --- a/src/abstractitensornetwork.jl +++ b/src/abstractitensornetwork.jl @@ -4,16 +4,15 @@ using DataGraphs: DataGraphs, edge_data, get_vertex_data, is_vertex_assigned, set_vertex_data!, underlying_graph, underlying_graph_type, vertex_data using Dictionaries: Dictionary using Graphs: Graphs, Graph, add_edge!, add_vertex!, bfs_tree, center, dst, edges, edgetype, - ne, neighbors, rem_edge!, src, vertices + ne, neighbors, rem_edge!, src, steiner_tree, vertices using ITensors: ITensors, @Algorithm_str, ITensor, addtags, combiner, commoninds, commontags, contract, dag, inds, noprime, onehot, prime, replaceprime, replacetags, setprime, settags, sim, swaptags, tags using LinearAlgebra: LinearAlgebra, factorize using MacroTools: @capture using NDTensors: NDTensors, Algorithm, dim, scalartype -using NamedGraphs.GraphsExtensions: - directed_graph, incident_edges, rename_vertices, vertextype, ⊔ -using NamedGraphs: NamedGraphs, NamedGraph, Vertices, not_implemented, steiner_tree +using NamedGraphs: NamedGraphs, NamedGraph, Vertices, directed_graph, incident_edges, + not_implemented, rename_vertices, vertextype, ⊔ using SplitApplyCombine: flatten abstract type AbstractITensorNetwork{V} <: AbstractDataGraph{V, ITensor, ITensor} end @@ -54,7 +53,7 @@ Base.eltype(tn::AbstractITensorNetwork) = eltype(vertex_data(tn)) # Overload if needed Graphs.is_directed(::Type{<:AbstractITensorNetwork}) = false -GraphsExtensions.directed_graph(is::AbstractITensorNetwork) = directed_graph(data_graph(is)) +NamedGraphs.directed_graph(is::AbstractITensorNetwork) = directed_graph(data_graph(is)) # Derived interface, may need to be overloaded function DataGraphs.underlying_graph_type(G::Type{<:AbstractITensorNetwork}) @@ -143,13 +142,6 @@ function fix_edges!(tn::AbstractITensorNetwork, v) return tn end -function NamedGraphs.vertex_positions(tn::AbstractITensorNetwork) - return NamedGraphs.vertex_positions(underlying_graph(tn)) -end -function NamedGraphs.ordered_vertices(tn::AbstractITensorNetwork) - return NamedGraphs.ordered_vertices(underlying_graph(tn)) -end - function Adapt.adapt_structure(to, tn::AbstractITensorNetwork) # TODO: Define and use: # @@ -593,25 +585,17 @@ function gauge_edge( return tn end -# For ambiguity error; TODO: decide whether to use graph mutating methods when resulting graph is unchanged? -function gauge_walk( - alg::Algorithm, tn::AbstractITensorNetwork, edges::Vector{<:AbstractEdge}; kwargs... - ) +# TODO: decide whether to use graph mutating methods when resulting graph is unchanged? +function gauge_walk(alg::Algorithm, tn::AbstractITensorNetwork, edges; kwargs...) tn = copy(tn) for edge in edges - tn = gauge_edge(alg, tn, edge; kwargs...) + tn = gauge_edge(alg, tn, edgetype(tn)(edge); kwargs...) end return tn end function gauge_walk(alg::Algorithm, tn::AbstractITensorNetwork, edge::Pair; kwargs...) - return gauge_edge(alg::Algorithm, tn, edgetype(tn)(edge); kwargs...) -end - -function gauge_walk( - alg::Algorithm, tn::AbstractITensorNetwork, edges::Vector{<:Pair}; kwargs... - ) - return gauge_walk(alg, tn, edgetype(tn).(edges); kwargs...) + return gauge_edge(alg, tn, edgetype(tn)(edge); kwargs...) end function tree_gauge(alg::Algorithm, ψ::AbstractITensorNetwork, region) @@ -734,9 +718,7 @@ function combine_linkinds(tn::AbstractITensorNetwork, combiners) return combined_tn end -function combine_linkinds( - tn::AbstractITensorNetwork; edges::Vector{<:Union{Pair, AbstractEdge}} = edges(tn) - ) +function combine_linkinds(tn::AbstractITensorNetwork; edges = edges(tn)) combiners = linkinds_combiners(tn; edges) return combine_linkinds(tn, combiners) end @@ -871,10 +853,10 @@ See also: `Base.:+` for `TreeTensorNetwork`, `truncate`. function add(tn1::AbstractITensorNetwork, tn2::AbstractITensorNetwork) @assert issetequal(vertices(tn1), vertices(tn2)) - tn1 = combine_linkinds(tn1; edges = filter(is_multi_edge(tn1), edges(tn1))) - tn2 = combine_linkinds(tn2; edges = filter(is_multi_edge(tn2), edges(tn2))) + tn1 = combine_linkinds(tn1; edges = filter(is_multi_edge(tn1), collect(edges(tn1)))) + tn2 = combine_linkinds(tn2; edges = filter(is_multi_edge(tn2), collect(edges(tn2)))) - edges_tn1, edges_tn2 = edges(tn1), edges(tn2) + edges_tn1, edges_tn2 = collect(edges(tn1)), collect(edges(tn2)) if !issetequal(edges_tn1, edges_tn2) new_edges = union(edges_tn1, edges_tn2) @@ -882,7 +864,7 @@ function add(tn1::AbstractITensorNetwork, tn2::AbstractITensorNetwork) tn2 = insert_linkinds(tn2, new_edges) end - edges_tn1, edges_tn2 = edges(tn1), edges(tn2) + edges_tn1, edges_tn2 = collect(edges(tn1)), collect(edges(tn2)) @assert issetequal(edges_tn1, edges_tn2) tn12 = copy(tn1) diff --git a/src/caches/abstractbeliefpropagationcache.jl b/src/caches/abstractbeliefpropagationcache.jl index 6f5dc05fc..b9cb344d6 100644 --- a/src/caches/abstractbeliefpropagationcache.jl +++ b/src/caches/abstractbeliefpropagationcache.jl @@ -5,14 +5,13 @@ using LinearAlgebra: diag, dot using NDTensors: NDTensors using NamedGraphs.PartitionedGraphs: PartitionedGraph, PartitionedGraphs, QuotientVertex, boundary_quotientedges, quotientedges, quotientvertices, unpartitioned_graph -using NamedGraphs.SimilarType: SimilarType -using NamedGraphs: to_graph_index +using NamedGraphs: NamedGraphs, to_graph_index using SimpleTraits: SimpleTraits, @traitfn, Not using SplitApplyCombine: group abstract type AbstractBeliefPropagationCache{V, PV} <: AbstractITensorNetwork{V} end -function SimilarType.similar_type(bpc::AbstractBeliefPropagationCache) +function NamedGraphs.similar_type(bpc::AbstractBeliefPropagationCache) return typeof(tensornetwork(bpc)) end diff --git a/src/contract.jl b/src/contract.jl index 8c6f4f575..a882721fd 100644 --- a/src/contract.jl +++ b/src/contract.jl @@ -1,8 +1,7 @@ using ITensors.NDTensors: @Algorithm_str, Algorithm, NDTensors, contract using ITensors: ITensor, scalar using LinearAlgebra: normalize! -using NamedGraphs.OrdinalIndexing: th -using NamedGraphs: NamedGraphs +using NamedGraphs: decoded_vertex, encoded_vertex, to_graph_index function NDTensors.contract(tn::AbstractITensorNetwork; alg = "exact", kwargs...) return contract(Algorithm(alg), tn; kwargs...) @@ -15,8 +14,10 @@ function NDTensors.contract( sequence = contraction_sequence(tn; contraction_sequence_kwargs...), kwargs... ) - sequence_linear_index = deepmap(v -> NamedGraphs.vertex_positions(tn)[v], sequence) - ts = map(v -> tn[v], (1:nv(tn))th) + sequence_linear_index = deepmap( + v -> encoded_vertex(tn, to_graph_index(tn, v)), sequence + ) + ts = map(code -> tn[decoded_vertex(tn, code)], 1:nv(tn)) return contract(ts; sequence = sequence_linear_index, kwargs...) end diff --git a/src/contraction_sequences.jl b/src/contraction_sequences.jl index 281189250..8b30af025 100644 --- a/src/contraction_sequences.jl +++ b/src/contraction_sequences.jl @@ -1,8 +1,27 @@ -using Graphs: vertices +using Graphs: nv, vertices using ITensors.NDTensors: @Algorithm_str, Algorithm -using ITensors: ITensor -using NamedGraphs.Keys: Key -using NamedGraphs.OrdinalIndexing: th +using ITensors: ITensors, ITensor +using NamedGraphs: NamedGraphs, decoded_vertex + +# A key (index) type, used for unambiguously identifying an object as a key or +# index of an indexable object rather than as a container to descend into. That +# distinction matters for the nested structure of a contraction sequence, whose +# leaves are vertices that may themselves be containers: +# +# [Key([1, 2]), [Key([3, 4]), Key([5, 6])]] +struct Key{K} + I::K +end +Key(I...) = Key(I) + +Base.show(io::IO, I::Key) = print(io, "Key(", I.I, ")") + +NamedGraphs.to_graph_index(graph, key::Key) = key.I + +# Patch for contraction sequences with `Key` +# leaf values. +# TODO: Move patch to `ITensors.jl`. +ITensors._contract(As, index::Key) = As[index] const ITensorList = Union{Vector{ITensor}, Tuple{Vararg{ITensor}}} @@ -24,9 +43,8 @@ function deepmap(f, tree; filter = (x -> x isa AbstractArray)) end function contraction_sequence(tn::AbstractITensorNetwork; kwargs...) - # TODO: Use `token_vertex` and/or `token_vertices` here. - ts = map(v -> tn[v], (1:nv(tn))th) + ts = map(code -> tn[decoded_vertex(tn, code)], 1:nv(tn)) seq_linear_index = contraction_sequence(ts; kwargs...) # TODO: Use `Functors.fmap` or `StructWalk`? - return deepmap(n -> Key(vertices(tn)[n * th]), seq_linear_index) + return deepmap(code -> Key(decoded_vertex(tn, code)), seq_linear_index) end diff --git a/src/edge_sequences.jl b/src/edge_sequences.jl index 9cf9ed575..429f49fc8 100644 --- a/src/edge_sequences.jl +++ b/src/edge_sequences.jl @@ -1,9 +1,8 @@ using Graphs: IsDirected, connected_components, edges, edgetype using ITensors.NDTensors: @Algorithm_str, Algorithm -using NamedGraphs.GraphsExtensions: - GraphsExtensions, forest_cover, subgraph, undirected_graph using NamedGraphs.PartitionedGraphs: PartitionedGraph, QuotientEdge, quotient_graph -using NamedGraphs: NamedGraphs +using NamedGraphs: + NamedGraphs, default_root_vertex, forest_cover, subgraph, undirected_graph using SimpleTraits: SimpleTraits, @traitfn, Not default_edge_sequence_alg() = "forest_cover" @@ -32,7 +31,7 @@ end @traitfn function edge_sequence( ::Algorithm"forest_cover", g::::(!IsDirected); - root_vertex = GraphsExtensions.default_root_vertex + root_vertex = default_root_vertex ) forests = forest_cover(g) edges = edgetype(g)[] @@ -47,5 +46,6 @@ end end @traitfn function edge_sequence(::Algorithm"parallel", g::::(!IsDirected)) - return [[e] for e in vcat(edges(g), reverse.(edges(g)))] + es = collect(edges(g)) + return [[e] for e in vcat(es, reverse.(es))] end diff --git a/src/formnetworks/abstractformnetwork.jl b/src/formnetworks/abstractformnetwork.jl index 07ef69399..b4a124bdf 100644 --- a/src/formnetworks/abstractformnetwork.jl +++ b/src/formnetworks/abstractformnetwork.jl @@ -1,5 +1,5 @@ using Graphs: induced_subgraph -using NamedGraphs.SimilarType: SimilarType +using NamedGraphs: NamedGraphs default_bra_vertex_suffix() = "bra" default_ket_vertex_suffix() = "ket" @@ -9,22 +9,22 @@ abstract type AbstractFormNetwork{V} <: AbstractITensorNetwork{V} end #Needed for interface dual_index_map(f::AbstractFormNetwork) = not_implemented() -# TODO: Use `NamedGraphs.GraphsExtensions.parent_graph`. +# TODO: Use `NamedGraphs.parent_graph`. tensornetwork(f::AbstractFormNetwork) = not_implemented() Base.copy(f::AbstractFormNetwork) = not_implemented() operator_vertex_suffix(f::AbstractFormNetwork) = not_implemented() bra_vertex_suffix(f::AbstractFormNetwork) = not_implemented() ket_vertex_suffix(f::AbstractFormNetwork) = not_implemented() -function SimilarType.similar_type(f::AbstractFormNetwork) +function NamedGraphs.similar_type(f::AbstractFormNetwork) return typeof(tensornetwork(f)) end -# TODO: Use `NamedGraphs.GraphsExtensions.parent_graph_type`. +# TODO: Use `NamedGraphs.parent_graph_type`. function data_graph_type(f::AbstractFormNetwork) return data_graph_type(tensornetwork(f)) end -# TODO: Use `NamedGraphs.GraphsExtensions.parent_graph`. +# TODO: Use `NamedGraphs.parent_graph`. data_graph(f::AbstractFormNetwork) = data_graph(tensornetwork(f)) function operator_vertices(f::AbstractFormNetwork) diff --git a/src/formnetworks/bilinearformnetwork.jl b/src/formnetworks/bilinearformnetwork.jl index e0bc24aa7..56c10047e 100644 --- a/src/formnetworks/bilinearformnetwork.jl +++ b/src/formnetworks/bilinearformnetwork.jl @@ -1,7 +1,7 @@ using Adapt: adapt using ITensors.NDTensors: datatype, denseblocks using ITensors: ITensor, Op, delta, prime, sim -using NamedGraphs.GraphsExtensions: disjoint_union +using NamedGraphs: disjoint_union default_dual_site_index_map = prime default_dual_link_index_map = sim @@ -55,7 +55,7 @@ end operator_vertex_suffix(blf::BilinearFormNetwork) = blf.operator_vertex_suffix bra_vertex_suffix(blf::BilinearFormNetwork) = blf.bra_vertex_suffix ket_vertex_suffix(blf::BilinearFormNetwork) = blf.ket_vertex_suffix -# TODO: Use `NamedGraphs.GraphsExtensions.parent_graph`. +# TODO: Use `NamedGraphs.parent_graph`. tensornetwork(blf::BilinearFormNetwork) = blf.tensornetwork function Base.copy(blf::BilinearFormNetwork) diff --git a/src/formnetworks/linearformnetwork.jl b/src/formnetworks/linearformnetwork.jl index 94c45f960..3d3ff0b50 100644 --- a/src/formnetworks/linearformnetwork.jl +++ b/src/formnetworks/linearformnetwork.jl @@ -1,7 +1,6 @@ using Graphs: AbstractGraph using ITensors: ITensor, prime -using NamedGraphs.GraphsExtensions: disjoint_union -using NamedGraphs: similar_graph +using NamedGraphs: disjoint_union, similar_graph default_dual_link_index_map = prime @@ -37,7 +36,7 @@ end bra_vertex_suffix(lf::LinearFormNetwork) = lf.bra_vertex_suffix ket_vertex_suffix(lf::LinearFormNetwork) = lf.ket_vertex_suffix -# TODO: Use `NamedGraphs.GraphsExtensions.parent_graph`. +# TODO: Use `NamedGraphs.parent_graph`. tensornetwork(lf::LinearFormNetwork) = lf.tensornetwork function NamedGraphs.similar_graph( diff --git a/src/indsnetwork.jl b/src/indsnetwork.jl index c7aadb3e4..4084a8e81 100644 --- a/src/indsnetwork.jl +++ b/src/indsnetwork.jl @@ -5,9 +5,8 @@ using Dictionaries: AbstractDictionary, Dictionary, Indices using Graphs.SimpleGraphs: AbstractSimpleGraph using Graphs: Graphs using ITensors: Index, QN, dag -using NamedGraphs.GraphsExtensions: vertextype -using NamedGraphs.NamedGraphGenerators: named_path_graph -using NamedGraphs: NamedGraphs, AbstractNamedGraph, NamedEdge, NamedGraph +using NamedGraphs: + NamedGraphs, AbstractNamedGraph, NamedEdge, NamedGraph, named_path_graph, vertextype using SimpleTraits: SimpleTraits, @traitfn, Not struct IndsNetwork{V, I} <: AbstractIndsNetwork{V, I} diff --git a/src/itensornetwork.jl b/src/itensornetwork.jl index 7073c5da2..5ad11b1eb 100644 --- a/src/itensornetwork.jl +++ b/src/itensornetwork.jl @@ -52,7 +52,7 @@ ITensorNetwork(f, graph::AbstractNamedGraph; link_space = 1) # Example ```jldoctest -julia> using NamedGraphs.NamedGraphGenerators: named_grid +julia> using NamedGraphs: named_grid julia> g = named_grid((4,)); diff --git a/src/lib/ITensorsExtensions/src/itensor_more.jl b/src/lib/ITensorsExtensions/src/itensor_more.jl index 2121d86ff..eba6bbc1d 100644 --- a/src/lib/ITensorsExtensions/src/itensor_more.jl +++ b/src/lib/ITensorsExtensions/src/itensor_more.jl @@ -1,7 +1,6 @@ using Dictionaries: AbstractDictionary, Dictionary using ITensors.NDTensors: NDTensors using ITensors: ITensors, ITensor, Index, QN, filterinds, inds, op, replaceinds, uniqueinds -using NamedGraphs.Keys: Key # Tensor sum: `A ⊞ B = A ⊗ Iᴮ + Iᴬ ⊗ B` # https://github.com/JuliaLang/julia/issues/13333#issuecomment-143825995 @@ -20,11 +19,6 @@ function tensor_sum(A::ITensor, B::ITensor) return A + B end -# Patch for contraction sequences with `Key` -# leaf values. -# TODO: Move patch to `ITensors.jl`. -ITensors._contract(As, index::Key) = As[index] - # TODO: Replace with a trait of the same name. const IsIndexSpace = Union{<:Integer, Vector{<:Pair{QN, <:Integer}}} diff --git a/src/lib/ITensorsExtensions/src/opsum.jl b/src/lib/ITensorsExtensions/src/opsum.jl index 7c5d4c63a..f7a330e85 100644 --- a/src/lib/ITensorsExtensions/src/opsum.jl +++ b/src/lib/ITensorsExtensions/src/opsum.jl @@ -31,7 +31,7 @@ end function group_terms(ℋ::Sum, g) grouped_terms = group(ITensors.terms(ℋ)) do t - findfirst(edges(g)) do e + findfirst(collect(edges(g))) do e return to_tuple.(ITensors.sites(t)) ⊆ [src(e), dst(e)] end end diff --git a/src/partitioneditensornetwork.jl b/src/partitioneditensornetwork.jl index a559bcc66..3a0dc056f 100644 --- a/src/partitioneditensornetwork.jl +++ b/src/partitioneditensornetwork.jl @@ -1,7 +1,7 @@ using Graphs: dst, src using ITensors: commoninds -using NamedGraphs.GraphsExtensions: subgraph using NamedGraphs.PartitionedGraphs: PartitionedGraph, QuotientEdge +using NamedGraphs: subgraph function linkinds(pitn::PartitionedGraph, edge::QuotientEdge) src_e_itn = subgraph(pitn, src(edge)) diff --git a/src/solvers/region_plans/dfs_plans.jl b/src/solvers/region_plans/dfs_plans.jl index 7a5c32b7c..79d51dbd9 100644 --- a/src/solvers/region_plans/dfs_plans.jl +++ b/src/solvers/region_plans/dfs_plans.jl @@ -1,6 +1,5 @@ using Graphs: dst, src -using NamedGraphs.GraphsExtensions: - default_root_vertex, post_order_dfs_edges, post_order_dfs_vertices +using NamedGraphs: default_root_vertex, post_order_dfs_edges, post_order_dfs_vertices function post_order_dfs_plan( graph, sweep_kwargs; nsites, root_vertex = default_root_vertex(graph) diff --git a/src/solvers/region_plans/euler_plans.jl b/src/solvers/region_plans/euler_plans.jl index d4076c118..856988e06 100644 --- a/src/solvers/region_plans/euler_plans.jl +++ b/src/solvers/region_plans/euler_plans.jl @@ -1,5 +1,5 @@ using Graphs: dst, src -using NamedGraphs.GraphsExtensions: default_root_vertex +using NamedGraphs: default_root_vertex function euler_sweep( graph; diff --git a/src/solvers/subspace/densitymatrix.jl b/src/solvers/subspace/densitymatrix.jl index 558efdf69..973509e6e 100644 --- a/src/solvers/subspace/densitymatrix.jl +++ b/src/solvers/subspace/densitymatrix.jl @@ -1,5 +1,5 @@ using ITensors: hascommoninds, uniqueinds -using NamedGraphs.GraphsExtensions: incident_edges +using NamedGraphs: incident_edges using Printf: @printf function subspace_expand!( diff --git a/src/treetensornetworks/abstracttreetensornetwork.jl b/src/treetensornetworks/abstracttreetensornetwork.jl index 8aa93cc43..5d14afa6b 100644 --- a/src/treetensornetworks/abstracttreetensornetwork.jl +++ b/src/treetensornetworks/abstracttreetensornetwork.jl @@ -1,9 +1,7 @@ using Graphs: has_vertex using ITensors: ITensors, @Algorithm_str, Algorithm, directsum, hasinds, permute, plev using IsApprox: IsApprox, Approx -using NamedGraphs.GraphsExtensions: GraphsExtensions, a_star, edge_path, leaf_vertices, - post_order_dfs_edges, post_order_dfs_vertices -using NamedGraphs: namedgraph_a_star, steiner_tree +using NamedGraphs: default_root_vertex, post_order_dfs_edges, post_order_dfs_vertices using TupleTools: TupleTools abstract type AbstractTreeTensorNetwork{V} <: AbstractITensorNetwork{V} end @@ -82,7 +80,7 @@ Truncation parameters are passed through `kwargs`. See also: [`orthogonalize`](@ref). """ function Base.truncate( - tn::AbstractTTN; root_vertex = GraphsExtensions.default_root_vertex(tn), kwargs... + tn::AbstractTTN; root_vertex = default_root_vertex(tn), kwargs... ) for e in post_order_dfs_edges(tn, root_vertex) # always orthogonalize towards source first to make truncations controlled @@ -104,7 +102,7 @@ end # TODO: decide on contraction order: reverse dfs vertices or forward dfs edges? function NDTensors.contract( - tn::AbstractTTN, root_vertex = GraphsExtensions.default_root_vertex(tn); kwargs... + tn::AbstractTTN, root_vertex = default_root_vertex(tn); kwargs... ) tn = copy(tn) # reverse post order vertices @@ -129,7 +127,7 @@ Both networks must have the same graph structure and compatible site indices. See also: [`loginner`](@ref ITensorNetworks.loginner), `norm`, [`inner(y, A, x)`](@ref ITensorNetworks.inner). """ function ITensors.inner( - x::AbstractTTN, y::AbstractTTN; root_vertex = GraphsExtensions.default_root_vertex(x) + x::AbstractTTN, y::AbstractTTN; root_vertex = default_root_vertex(x) ) xᴴ = sim(dag(x); sites = []) y = sim(y; sites = []) @@ -218,7 +216,7 @@ end # TODO: stick with this traversal or find optimal contraction sequence? function loginner( tn1::AbstractTTN, tn2::AbstractTTN; - root_vertex = GraphsExtensions.default_root_vertex(tn1) + root_vertex = default_root_vertex(tn1) ) N = nv(tn1) if nv(tn2) != N @@ -258,7 +256,7 @@ end function Base.:+( ::Algorithm"directsum", tns::AbstractTTN...; - root_vertex = GraphsExtensions.default_root_vertex(first(tns)) + root_vertex = default_root_vertex(first(tns)) ) @assert all(tn -> nv(first(tns)) == nv(tn), tns) @@ -372,7 +370,7 @@ function ITensors.inner( y::AbstractTTN, A::AbstractTTN, x::AbstractTTN; - root_vertex = GraphsExtensions.default_root_vertex(x) + root_vertex = default_root_vertex(x) ) traversal_order = reverse(post_order_dfs_vertices(x, root_vertex)) ydag = sim(dag(y); sites = []) @@ -390,7 +388,7 @@ function ITensors.inner( y::AbstractTTN, A::AbstractTTN, x::AbstractTTN; - root_vertex = GraphsExtensions.default_root_vertex(B) + root_vertex = default_root_vertex(B) ) N = nv(B) if nv(y) != N || nv(x) != N || nv(A) != N @@ -450,7 +448,7 @@ function expect( state::AbstractTTN; vertices = vertices(state), # TODO: verify that this is a sane default - root_vertex = GraphsExtensions.default_root_vertex(state) + root_vertex = default_root_vertex(state) ) # TODO: Optimize this with proper caching. state /= norm(state) diff --git a/src/treetensornetworks/opsum_to_ttn/opsum_to_ttn.jl b/src/treetensornetworks/opsum_to_ttn/opsum_to_ttn.jl index 2f5308584..0f3c3310c 100644 --- a/src/treetensornetworks/opsum_to_ttn/opsum_to_ttn.jl +++ b/src/treetensornetworks/opsum_to_ttn/opsum_to_ttn.jl @@ -5,8 +5,7 @@ using ITensors.LazyApply: Prod, Sum, coefficient using ITensors.NDTensors: Block, blockdim, maxdim, nblocks, nnzblocks, truncate! using ITensors.Ops: Op, OpSum, argument, coefficient, name, params, site, terms, which_op using ITensors: flux, has_fermion_string, itensor, removeqns, space -using NamedGraphs.GraphsExtensions: - GraphsExtensions, boundary_edges, degrees, is_leaf_vertex, vertex_path +using NamedGraphs: boundary_edges, default_root_vertex, is_leaf_vertex using StaticArrays: MVector # @@ -640,7 +639,7 @@ Convert an OpSum object `os` to a TreeTensorNetwork, with indices given by `site function ttn( os::OpSum, sites::IndsNetwork; - root_vertex = GraphsExtensions.default_root_vertex(sites), + root_vertex = default_root_vertex(sites), kwargs... ) length(terms(os)) == 0 && error("OpSum has no terms") diff --git a/src/treetensornetworks/projttns/abstractprojttn.jl b/src/treetensornetworks/projttns/abstractprojttn.jl index 462dbbb23..5f48f31af 100644 --- a/src/treetensornetworks/projttns/abstractprojttn.jl +++ b/src/treetensornetworks/projttns/abstractprojttn.jl @@ -1,8 +1,7 @@ using DataGraphs: DataGraphs, underlying_graph using Graphs: neighbors using ITensors: ITensor, contract, order, product -using NamedGraphs.GraphsExtensions: incident_edges -using NamedGraphs: NamedGraphs, NamedEdge, vertextype +using NamedGraphs: NamedGraphs, NamedEdge, incident_edges, vertextype abstract type AbstractProjTTN{V} end diff --git a/src/treetensornetworks/projttns/projouterprodttn.jl b/src/treetensornetworks/projttns/projouterprodttn.jl index cfd4db635..5afc05144 100644 --- a/src/treetensornetworks/projttns/projouterprodttn.jl +++ b/src/treetensornetworks/projttns/projouterprodttn.jl @@ -1,7 +1,7 @@ using DataGraphs: DataGraphs using Dictionaries: set! using ITensors: ITensor, hascommoninds -using NamedGraphs.GraphsExtensions: incident_edges, is_leaf_vertex +using NamedGraphs: incident_edges, is_leaf_vertex struct ProjOuterProdTTN{V} <: AbstractProjTTN{V} pos::Union{Vector{<:V}, NamedEdge{V}} diff --git a/src/treetensornetworks/projttns/projttn.jl b/src/treetensornetworks/projttns/projttn.jl index 09f2ed342..7e735083d 100644 --- a/src/treetensornetworks/projttns/projttn.jl +++ b/src/treetensornetworks/projttns/projttn.jl @@ -2,8 +2,7 @@ using DataGraphs: DataGraphs, underlying_graph using Dictionaries: Dictionary, Indices using Graphs: edgetype, vertices using ITensors: ITensor, hascommoninds -using NamedGraphs.GraphsExtensions: incident_edges, is_leaf_vertex -using NamedGraphs: NamedEdge +using NamedGraphs: NamedEdge, incident_edges, is_leaf_vertex struct ProjTTN{V, Pos <: Union{Indices{V}, NamedEdge{V}}} <: AbstractProjTTN{V} pos::Pos diff --git a/src/treetensornetworks/projttns/projttnsum.jl b/src/treetensornetworks/projttns/projttnsum.jl index 6bb996f28..b852678d5 100644 --- a/src/treetensornetworks/projttns/projttnsum.jl +++ b/src/treetensornetworks/projttns/projttnsum.jl @@ -1,7 +1,6 @@ using ITensors.LazyApply: LazyApply, terms using ITensors: ITensors, contract, product -using NamedGraphs.GraphsExtensions: incident_edges -using NamedGraphs: NamedGraphs +using NamedGraphs: NamedGraphs, incident_edges struct ProjTTNSum{V, T <: AbstractProjTTN{V}, Z <: Number} <: AbstractProjTTN{V} terms::Vector{T} diff --git a/src/treetensornetworks/treetensornetwork.jl b/src/treetensornetworks/treetensornetwork.jl index 481033846..d7e999002 100644 --- a/src/treetensornetworks/treetensornetwork.jl +++ b/src/treetensornetworks/treetensornetwork.jl @@ -2,8 +2,7 @@ using Dictionaries: Indices using Graphs: path_graph using ITensors: ITensor using LinearAlgebra: factorize, normalize -using NamedGraphs.GraphsExtensions: GraphsExtensions, vertextype -using NamedGraphs: similar_graph +using NamedGraphs: default_root_vertex, similar_graph, vertextype """ TreeTensorNetwork{V} <: AbstractTreeTensorNetwork{V} @@ -50,7 +49,7 @@ Throws an error if the underlying graph of `tn` is not a tree. # Example ```jldoctest -julia> using NamedGraphs.NamedGraphGenerators: named_comb_tree +julia> using NamedGraphs: named_comb_tree julia> using Graphs: vertices @@ -134,7 +133,7 @@ Call [`orthogonalize`](@ref) to impose a gauge. # Example ```jldoctest -julia> using NamedGraphs.NamedGraphGenerators: named_comb_tree +julia> using NamedGraphs: named_comb_tree julia> g = named_comb_tree((2, 2)); @@ -203,7 +202,7 @@ Extra `kwargs` (e.g. `cutoff`, `maxdim`) are forwarded to the factorization. # Example ```jldoctest -julia> using NamedGraphs.NamedGraphGenerators: named_comb_tree +julia> using NamedGraphs: named_comb_tree julia> using ITensors: ITensors @@ -220,7 +219,7 @@ julia> ttn_A = ttn(A, s); function ttn( a::ITensor, is::IndsNetwork; - ortho_region = Indices([GraphsExtensions.default_root_vertex(is)]), + ortho_region = Indices([default_root_vertex(is)]), kwargs... ) for v in vertices(is) diff --git a/test/Project.toml b/test/Project.toml index 569a96fff..b790ccf66 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -39,14 +39,14 @@ AbstractTrees = "0.4.5" Adapt = "4.3" Aqua = "0.8.11" Compat = "4.16" -DataGraphs = "0.4.1, 0.5" +DataGraphs = "0.6" Dictionaries = "0.4.4" Distributions = "0.25.118" Glob = "1.3.1" Graphs = "1.12" GraphsFlows = "0.1.1" ITensorMPS = "0.3.6, 0.4" -ITensorNetworks = "0.21" +ITensorNetworks = "0.22" ITensorPkgSkeleton = "0.3.42" ITensorVisualizationBase = "0.1" ITensors = "0.7, 0.8, 0.9" @@ -54,7 +54,7 @@ KrylovKit = "0.8, 0.9, 0.10" LinearAlgebra = "1.10" Metis = "1.5" NDTensors = "0.3, 0.4" -NamedGraphs = "0.11.1, 0.12, 0.13" +NamedGraphs = "0.14" OMEinsumContractionOrders = "0.9.5, 1" Pkg = "1.10" Random = "1.10" diff --git a/test/solvers/test_applyexp.jl b/test/solvers/test_applyexp.jl index 81f0e0e4c..961e06d3e 100644 --- a/test/solvers/test_applyexp.jl +++ b/test/solvers/test_applyexp.jl @@ -3,8 +3,7 @@ using ITensorNetworks: ITensorNetworks, applyexp, dmrg, maxlinkdim, siteinds, time_evolve, ttn using ITensors using ITensors.Ops: OpSum -using NamedGraphs.NamedGraphGenerators: named_path_graph -using NamedGraphs: NamedGraph +using NamedGraphs: NamedGraph, named_path_graph using TensorOperations: TensorOperations using Test: @test, @testset #For contraction order finding diff --git a/test/test_abstractgraph.jl b/test/test_abstractgraph.jl index 954ead5c2..486a4f6af 100644 --- a/test/test_abstractgraph.jl +++ b/test/test_abstractgraph.jl @@ -1,6 +1,5 @@ using Graphs: add_edge!, add_vertex! -using NamedGraphs.GraphsExtensions: is_binary_arborescence, is_rooted, root_vertex -using NamedGraphs: NamedDiGraph +using NamedGraphs: NamedDiGraph, is_binary_arborescence, is_rooted, root_vertex using Test: @test, @testset @testset "test rooted directed graphs" begin diff --git a/test/test_additensornetworks.jl b/test/test_additensornetworks.jl index b96768624..4139f94f7 100644 --- a/test/test_additensornetworks.jl +++ b/test/test_additensornetworks.jl @@ -2,8 +2,7 @@ using Graphs: rem_edge!, vertices using ITensorNetworks: ITensorNetwork, inner_network, orthogonalize, siteinds, truncate, ttn using ITensors: ITensors, apply, inner, op, scalar using LinearAlgebra: norm_sqr -using NamedGraphs.NamedGraphGenerators: named_comb_tree, named_grid -using NamedGraphs: NamedEdge +using NamedGraphs: NamedEdge, named_comb_tree, named_grid using StableRNGs: StableRNG using TensorOperations: TensorOperations using Test: @test, @testset diff --git a/test/test_apply.jl b/test/test_apply.jl index 7c0838fed..8f9850e3f 100644 --- a/test/test_apply.jl +++ b/test/test_apply.jl @@ -3,7 +3,7 @@ using Graphs: vertices using ITensorNetworks: BeliefPropagationCache, apply, environment, norm_sqr_network, siteinds, update using ITensors: ITensors, Algorithm, ITensor, inner, op -using NamedGraphs.NamedGraphGenerators: named_grid +using NamedGraphs: named_grid using SplitApplyCombine: group using StableRNGs: StableRNG using TensorOperations: TensorOperations diff --git a/test/test_belief_propagation.jl b/test/test_belief_propagation.jl index ca22e679c..9b2adc19c 100644 --- a/test/test_belief_propagation.jl +++ b/test/test_belief_propagation.jl @@ -9,9 +9,8 @@ using ITensors.NDTensors: array using ITensors: ITensors, Algorithm, ITensor, combiner, dag, inds, inner, op, prime, random_itensor using LinearAlgebra: eigvals, tr -using NamedGraphs.NamedGraphGenerators: named_comb_tree, named_grid using NamedGraphs.PartitionedGraphs: quotientedges -using NamedGraphs: NamedEdge, NamedGraph +using NamedGraphs: NamedEdge, NamedGraph, named_comb_tree, named_grid using SplitApplyCombine: group using StableRNGs: StableRNG using TensorOperations: TensorOperations diff --git a/test/test_contraction_sequence.jl b/test/test_contraction_sequence.jl index 2dc3f16f3..d418d8317 100644 --- a/test/test_contraction_sequence.jl +++ b/test/test_contraction_sequence.jl @@ -1,6 +1,6 @@ using ITensorNetworks: contraction_sequence, norm_sqr_network, siteinds using ITensors: ITensors, contract -using NamedGraphs.NamedGraphGenerators: named_grid +using NamedGraphs: named_grid using OMEinsumContractionOrders: OMEinsumContractionOrders using StableRNGs: StableRNG using TensorOperations: TensorOperations diff --git a/test/test_expect.jl b/test/test_expect.jl index 73a0891b0..a42d2c6f5 100644 --- a/test/test_expect.jl +++ b/test/test_expect.jl @@ -1,8 +1,7 @@ using Graphs: SimpleGraph, uniform_tree using ITensorNetworks: BeliefPropagationCache, ITensorNetwork, expect, original_state_vertex, siteinds -using NamedGraphs.NamedGraphGenerators: named_grid -using NamedGraphs: NamedGraph, vertices +using NamedGraphs: NamedGraph, named_grid, vertices using SplitApplyCombine: group using StableRNGs: StableRNG using TensorOperations: TensorOperations diff --git a/test/test_forms.jl b/test/test_forms.jl index 3d71fdae7..faae1451a 100644 --- a/test/test_forms.jl +++ b/test/test_forms.jl @@ -6,7 +6,7 @@ using ITensorNetworks: BeliefPropagationCache, BilinearFormNetwork, LinearFormNe tensornetwork, union_all_inds, update using ITensors: Index, contract, dag, inds, prime, random_itensor, sim using LinearAlgebra: norm -using NamedGraphs.NamedGraphGenerators: named_comb_tree, named_grid +using NamedGraphs: named_comb_tree, named_grid using StableRNGs: StableRNG using TensorOperations: TensorOperations using Test: @test, @testset diff --git a/test/test_indsnetwork.jl b/test/test_indsnetwork.jl index 2ae3e8294..37ed32404 100644 --- a/test/test_indsnetwork.jl +++ b/test/test_indsnetwork.jl @@ -4,7 +4,7 @@ using Graphs: edges, ne, nv, vertices using ITensorNetworks: IndsNetwork, union_all_inds using ITensors.NDTensors: dim using ITensors: Index -using NamedGraphs.NamedGraphGenerators: named_comb_tree +using NamedGraphs: named_comb_tree using StableRNGs: StableRNG using Test: @test, @testset @testset "IndsNetwork constructors" begin diff --git a/test/test_itensornetwork.jl b/test/test_itensornetwork.jl index 7f1b6926f..f1c5ebdd6 100644 --- a/test/test_itensornetwork.jl +++ b/test/test_itensornetwork.jl @@ -11,9 +11,7 @@ using ITensors: ITensors, ITensor, Index, Op, commonind, commoninds, contract, d inds, inner, itensor, onehot, order, prime, random_itensor, scalartype, sim using LinearAlgebra: factorize using NDTensors: NDTensors, dim -using NamedGraphs.GraphsExtensions: disjoint_union, incident_edges -using NamedGraphs.NamedGraphGenerators: named_comb_tree, named_grid -using NamedGraphs: NamedEdge +using NamedGraphs: NamedEdge, disjoint_union, incident_edges, named_comb_tree, named_grid using Random: randn! using StableRNGs: StableRNG using TensorOperations: TensorOperations diff --git a/test/test_itensornetworksadaptext.jl b/test/test_itensornetworksadaptext.jl index 3594a6793..b84ae4206 100644 --- a/test/test_itensornetworksadaptext.jl +++ b/test/test_itensornetworksadaptext.jl @@ -1,7 +1,7 @@ using Adapt: Adapt, adapt using ITensorNetworks: siteinds using ITensors: ITensors -using NamedGraphs.NamedGraphGenerators: named_grid +using NamedGraphs: named_grid using Test: @test, @testset include("utils.jl") diff --git a/test/test_normalize.jl b/test/test_normalize.jl index 9fa7e06ba..10c006273 100644 --- a/test/test_normalize.jl +++ b/test/test_normalize.jl @@ -3,8 +3,7 @@ using ITensorNetworks: BeliefPropagationCache, QuadraticFormNetwork, edge_scalar norm_sqr_network, rescale, scalartype, siteinds, vertex_scalars using ITensors: dag, inner, scalar using LinearAlgebra: normalize -using NamedGraphs.NamedGraphGenerators: named_comb_tree, named_grid -using NamedGraphs: NamedGraph +using NamedGraphs: NamedGraph, named_comb_tree, named_grid using StableRNGs: StableRNG using TensorOperations: TensorOperations using Test: @test, @testset diff --git a/test/test_opsum_to_ttn.jl b/test/test_opsum_to_ttn.jl index f54076e86..6c07e8ae9 100644 --- a/test/test_opsum_to_ttn.jl +++ b/test/test_opsum_to_ttn.jl @@ -1,7 +1,7 @@ using Graphs: vertices using ITensorNetworks: ITensorNetworks, OpSum, siteinds, ttn using ITensors.NDTensors: with_auto_fermion -using NamedGraphs.NamedGraphGenerators: named_grid +using NamedGraphs: named_grid using Test: @test, @testset @testset "OpSum to TTN converter" begin diff --git a/test/test_opsum_to_ttn_mpo_cross_check.jl b/test/test_opsum_to_ttn_mpo_cross_check.jl index a7b161435..8b6cb408c 100644 --- a/test/test_opsum_to_ttn_mpo_cross_check.jl +++ b/test/test_opsum_to_ttn_mpo_cross_check.jl @@ -8,8 +8,7 @@ using ITensors.NDTensors: matrix, with_auto_fermion using ITensors: @disable_warn_order, ITensor, Index, combinedind, combiner, contract, dag, inds, removeqns using LinearAlgebra: norm -using NamedGraphs.GraphsExtensions: leaf_vertices, post_order_dfs_vertices -using NamedGraphs.NamedGraphGenerators: named_comb_tree +using NamedGraphs: leaf_vertices, named_comb_tree, post_order_dfs_vertices using Test: @test, @test_broken, @testset include("utils.jl") using .ModelHamiltonians: ModelHamiltonians diff --git a/test/test_sitetype.jl b/test/test_sitetype.jl index c8c53f7f5..3a6974f73 100644 --- a/test/test_sitetype.jl +++ b/test/test_sitetype.jl @@ -4,7 +4,7 @@ using Graphs: nv, vertices using ITensorNetworks: IndsNetwork, siteinds using ITensors.NDTensors: dim using ITensors: Index, SiteType, hastags, space -using NamedGraphs.NamedGraphGenerators: named_grid +using NamedGraphs: named_grid using Test: @test, @testset @testset "Site ind system" begin diff --git a/test/test_tebd.jl b/test/test_tebd.jl index 8ff879915..dc131bb32 100644 --- a/test/test_tebd.jl +++ b/test/test_tebd.jl @@ -2,8 +2,7 @@ using Graphs: vertices using ITensorNetworks.ITensorsExtensions: group_terms using ITensorNetworks: ITensorNetwork, cartesian_to_linear, dmrg, expect, siteinds, tebd using ITensors: ITensors -using NamedGraphs.GraphsExtensions: rename_vertices -using NamedGraphs.NamedGraphGenerators: named_grid +using NamedGraphs: named_grid, rename_vertices using Test: @test, @test_broken, @testset include("utils.jl") using .ModelHamiltonians: ModelHamiltonians diff --git a/test/test_ttn_expect.jl b/test/test_ttn_expect.jl index e9fabd7d5..656ad9e58 100644 --- a/test/test_ttn_expect.jl +++ b/test/test_ttn_expect.jl @@ -1,7 +1,7 @@ using Graphs: vertices using ITensorNetworks: expect, siteinds, ttn using LinearAlgebra: norm -using NamedGraphs.NamedGraphGenerators: named_comb_tree +using NamedGraphs: named_comb_tree using StableRNGs: StableRNG using Test: @test, @testset @testset "TTN expect" begin diff --git a/test/test_ttn_position.jl b/test/test_ttn_position.jl index 5be35608b..d8d83371a 100644 --- a/test/test_ttn_position.jl +++ b/test/test_ttn_position.jl @@ -3,8 +3,7 @@ using Graphs: vertices using ITensorNetworks: ITensorNetwork, ProjTTN, environments, position, siteinds, ttn using ITensors.NDTensors: with_auto_fermion using ITensors: ITensor -using NamedGraphs.NamedGraphGenerators: named_comb_tree, named_path_graph -using NamedGraphs: NamedEdge +using NamedGraphs: NamedEdge, named_comb_tree, named_path_graph using Test: @test, @testset include("utils.jl") using .ModelHamiltonians: ModelHamiltonians diff --git a/test/test_ttno.jl b/test/test_ttno.jl index b4e8b55fa..cb25b3705 100644 --- a/test/test_ttno.jl +++ b/test/test_ttno.jl @@ -2,7 +2,7 @@ using Graphs: vertices using ITensorNetworks: contract, ortho_region, siteinds, ttn, union_all_inds using ITensors: @disable_warn_order, prime, random_itensor using LinearAlgebra: norm -using NamedGraphs.NamedGraphGenerators: named_comb_tree +using NamedGraphs: named_comb_tree using Random: shuffle using StableRNGs: StableRNG using Test: @test, @testset diff --git a/test/test_ttns.jl b/test/test_ttns.jl index 1c045db9c..437724467 100644 --- a/test/test_ttns.jl +++ b/test/test_ttns.jl @@ -4,7 +4,7 @@ using ITensorNetworks: ITensorNetwork, TreeTensorNetwork, contract, ortho_region, orthogonalize, siteinds, ttn using ITensors: @disable_warn_order, random_itensor using LinearAlgebra: norm -using NamedGraphs.NamedGraphGenerators: named_comb_tree +using NamedGraphs: named_comb_tree using Random: shuffle using StableRNGs: StableRNG using Test: @test, @testset diff --git a/test/utils.jl b/test/utils.jl index 69a54020b..73371bb80 100644 --- a/test/utils.jl +++ b/test/utils.jl @@ -10,7 +10,7 @@ using ITensorNetworks: ITensorNetworks, ITensorNetwork, IndsNetwork using ITensors.NDTensors: dim using ITensors: ITensor, Index, itensor using LinearAlgebra: normalize -using NamedGraphs.GraphsExtensions: incident_edges +using NamedGraphs: incident_edges using Random: Random, AbstractRNG using SimpleTraits: SimpleTraits, @traitfn