Skip to content

Commit 04b80c5

Browse files
mtfishmanclaude
andauthored
Remove approximate-contract (density_matrix / ttn_svd) algorithms (#329)
## Summary Delete the entire `src/contract_approx/` module (8 files, ~1200 lines) and the dead `ITensorNetworksGraphsFlowsExt` extension that only served it. **Breaking:** - `contract(tn; alg = "density_matrix")` and `contract(tn; alg = "ttn_svd")` are removed. - The `contract_approx` function and all of its supporting machinery (`path_graph_structure`, `binary_tree_structure`, `_partition`, `_mincut_partitions`, `_contract_deltas`, `_rem_leaf_vertices!`, …) are gone. - `GraphsFlows` is no longer a weak-dep / extension trigger of `ITensorNetworks`. It remains a direct test-time dep for the graph mincut test in `test/test_itensornetwork.jl`. **What stays:** - `contract(tn; alg = "exact")` and the rest of the contraction pipeline (TensorOperations / OMEinsumContractionOrders extensions) are unaffected. **Incidental import cleanups** A few imports were previously available inside `ITensorNetworks` as a side effect of `using` clauses in `src/contract_approx/*.jl`. They are now imported directly by the files that actually use them: - `Graphs: rem_vertex!` — `src/treetensornetworks/opsum_to_ttn/opsum_to_ttn.jl` - `ITensors: inds` — `src/abstractitensornetwork.jl` - `ITensors: noncommoninds` — `src/apply.jl` - `NamedGraphs.GraphsExtensions: disjoint_union` — `src/formnetworks/linearformnetwork.jl`, `src/formnetworks/bilinearformnetwork.jl` **Version** Bumps to `0.17.0` (pre-1.0 minor bump = breaking) and updates pinned `ITensorNetworks` compat in `test/`, `docs/`, and `examples/` Project.toml. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 6912226 commit 04b80c5

22 files changed

Lines changed: 10 additions & 1328 deletions

Project.toml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "ITensorNetworks"
22
uuid = "2919e153-833c-4bdc-8836-1ea460a35fc7"
3-
version = "0.16.0"
3+
version = "0.17.0"
44
authors = ["Matthew Fishman <mfishman@flatironinstitute.org>, Joseph Tindall <jtindall@flatironinstitute.org> and contributors"]
55

66
[workspace]
@@ -39,13 +39,11 @@ TimerOutputs = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f"
3939
TupleTools = "9d95972d-f1c8-5527-a6e0-b4b365fa01f6"
4040

4141
[weakdeps]
42-
GraphsFlows = "06909019-6f44-4949-96fc-b9d9aaa02889"
4342
OMEinsumContractionOrders = "6f22d1fd-8eed-4bb7-9776-e7d684900715"
4443
Observers = "338f10d5-c7f1-4033-a7d1-f9dec39bcaa0"
4544
TensorOperations = "6aa20fa7-93e2-5fca-9bc0-fbd0db3c71a2"
4645

4746
[extensions]
48-
ITensorNetworksGraphsFlowsExt = "GraphsFlows"
4947
ITensorNetworksOMEinsumContractionOrdersExt = "OMEinsumContractionOrders"
5048
ITensorNetworksObserversExt = "Observers"
5149
ITensorNetworksTensorOperationsExt = "TensorOperations"
@@ -63,7 +61,6 @@ Dictionaries = "0.4"
6361
Distributions = "0.25.86"
6462
DocStringExtensions = "0.9"
6563
Graphs = "1.8"
66-
GraphsFlows = "0.1.1"
6764
ITensors = "0.7, 0.8, 0.9"
6865
IsApprox = "0.1, 1, 2"
6966
IterTools = "1.4"

docs/Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ path = ".."
1616
Documenter = "1.10"
1717
Graphs = "1"
1818
ITensorFormatter = "0.2.27"
19-
ITensorNetworks = "0.16"
19+
ITensorNetworks = "0.17"
2020
ITensors = "0.9"
2121
Literate = "2.20.1"
2222
NamedGraphs = "0.8.2"

examples/Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ ITensorNetworks = "2919e153-833c-4bdc-8836-1ea460a35fc7"
55
path = ".."
66

77
[compat]
8-
ITensorNetworks = "0.16"
8+
ITensorNetworks = "0.17"

ext/ITensorNetworksGraphsFlowsExt/ITensorNetworksGraphsFlowsExt.jl

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/ITensorNetworks.jl

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,6 @@ include("abstractitensornetwork.jl")
1313
include("contraction_sequences.jl")
1414
include("tebd.jl")
1515
include("itensornetwork.jl")
16-
include("contract_approx/mincut.jl")
17-
include("contract_approx/contract_deltas.jl")
18-
include("contract_approx/utils.jl")
19-
include("contract_approx/density_matrix.jl")
20-
include("contract_approx/ttn_svd.jl")
21-
include("contract_approx/contract_approx.jl")
22-
include("contract_approx/partition.jl")
23-
include("contract_approx/binary_tree_partition.jl")
2416
include("contract.jl")
2517
include("specialitensornetworks.jl")
2618
include("partitioneditensornetwork.jl")

src/abstractitensornetwork.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ using Dictionaries: Dictionary
66
using Graphs: Graphs, Graph, add_edge!, add_vertex!, bfs_tree, center, dst, edges, edgetype,
77
ne, neighbors, rem_edge!, src, vertices
88
using ITensors: ITensors, @Algorithm_str, ITensor, addtags, combiner, commoninds,
9-
commontags, contract, dag, hascommoninds, noprime, onehot, prime, replaceprime,
9+
commontags, contract, dag, hascommoninds, inds, noprime, onehot, prime, replaceprime,
1010
replacetags, setprime, settags, sim, swaptags, unioninds, uniqueinds
1111
using LinearAlgebra: LinearAlgebra, factorize
1212
using MacroTools: @capture

src/apply.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
using .BaseExtensions: maybe_real
22
using Graphs: has_edge
33
using ITensors: ITensors, ITensor, Index, Ops, apply, commonind, commoninds, contract, dag,
4-
denseblocks, factorize, factorize_svd, hasqns, isdiag, noprime, prime, replaceind,
5-
replaceinds, unioninds, uniqueinds
4+
denseblocks, factorize, factorize_svd, hasqns, isdiag, noncommoninds, noprime, prime,
5+
replaceind, replaceinds, unioninds, uniqueinds
66
using KrylovKit: linsolve
77
using LinearAlgebra: eigen, norm, qr, svd
88
using NamedGraphs: NamedEdge, has_edge

src/contract.jl

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,6 @@ function NDTensors.contract(
2020
return contract(ts; sequence = sequence_linear_index, kwargs...)
2121
end
2222

23-
function NDTensors.contract(
24-
alg::Union{Algorithm"density_matrix", Algorithm"ttn_svd"},
25-
tn::AbstractITensorNetwork;
26-
output_structure::Function = path_graph_structure,
27-
kwargs...
28-
)
29-
return contract_approx(alg, tn, output_structure; kwargs...)
30-
end
31-
3223
function ITensors.scalar(alg::Algorithm"exact", tn::AbstractITensorNetwork; kwargs...)
3324
return contract(alg, tn; kwargs...)[]
3425
end

src/contract_approx/binary_tree_partition.jl

Lines changed: 0 additions & 133 deletions
This file was deleted.

src/contract_approx/contract_approx.jl

Lines changed: 0 additions & 129 deletions
This file was deleted.

0 commit comments

Comments
 (0)