From 41298c503cd57187379dc431f2182bca2e1dc787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Sat, 25 Oct 2025 12:35:38 +0200 Subject: [PATCH 1/5] Update DataStructures to v0.19 --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 299a03b2..7e3d7796 100644 --- a/Project.toml +++ b/Project.toml @@ -19,7 +19,7 @@ SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" SymbolicWedderburn = "858aa9a9-4c7c-4c62-b466-2421203962a2" [compat] -DataStructures = "0.18" +DataStructures = "0.18, 0.19" JuMP = "1.10" MathOptInterface = "1.13" MultivariateBases = "0.2" From 815b5bd733efd9cb3892c90337293b2c3ee2ac24 Mon Sep 17 00:00:00 2001 From: schillic Date: Thu, 13 Nov 2025 08:04:33 +0100 Subject: [PATCH 2/5] Add support for both versions --- Project.toml | 2 +- src/Certificate/Sparsity/ChordalExtensionGraph.jl | 7 ++++++- src/Certificate/Symmetry/block_diag.jl | 13 +++++++------ 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/Project.toml b/Project.toml index 7e3d7796..585c60b1 100644 --- a/Project.toml +++ b/Project.toml @@ -19,7 +19,7 @@ SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" SymbolicWedderburn = "858aa9a9-4c7c-4c62-b466-2421203962a2" [compat] -DataStructures = "0.18, 0.19" +DataStructures = "0.18 - 0.19" JuMP = "1.10" MathOptInterface = "1.13" MultivariateBases = "0.2" diff --git a/src/Certificate/Sparsity/ChordalExtensionGraph.jl b/src/Certificate/Sparsity/ChordalExtensionGraph.jl index fcd3319c..0d516d1e 100644 --- a/src/Certificate/Sparsity/ChordalExtensionGraph.jl +++ b/src/Certificate/Sparsity/ChordalExtensionGraph.jl @@ -1,6 +1,11 @@ module ChordalExtensionGraph -using DataStructures +import DataStructures +if isdefined(DataStructures, :IntDisjointSet) + const IntDisjointSet = DataStructures.IntDisjointSet # changed in DataStructures v0.19.0 +else + const IntDisjointSet = DataStructures.IntDisjointSets +end export AbstractCompletion, ChordalCompletion, ClusterCompletion export LabelledGraph, add_node!, add_edge!, add_clique!, chordal_extension diff --git a/src/Certificate/Symmetry/block_diag.jl b/src/Certificate/Symmetry/block_diag.jl index e48663a9..0a7fbc9c 100644 --- a/src/Certificate/Symmetry/block_diag.jl +++ b/src/Certificate/Symmetry/block_diag.jl @@ -1,4 +1,9 @@ import DataStructures +if isdefined(DataStructures, :IntDisjointSet) + const IntDisjointSet = DataStructures.IntDisjointSet # changed in DataStructures v0.19.0 +else + const IntDisjointSet = DataStructures.IntDisjointSets +end _isapproxless(a::Real, b::Real) = a < b function _isapproxless(a::Complex, b::Complex) @@ -253,7 +258,7 @@ function block_diag(As, d) iZ = Z' @assert iZ ≈ inv(Z) n = LinearAlgebra.checksquare(A) - union_find = DataStructures.IntDisjointSets(n) + union_find = IntDisjointSet(n) Bs = [iZ * A * Z for A in As] for B in Bs merge_sparsity!(union_find, B) @@ -287,11 +292,7 @@ function block_diag(As, d) end end -function merge_sparsity!( - union_find::DataStructures.IntDisjointSets, - A, - tol = 1e-8, -) +function merge_sparsity!(union_find::IntDisjointSet, A, tol = 1e-8) for I in CartesianIndices(A) i, j = I.I if abs(A[I]) > tol From 096a161569dfded7d2c5a72f074ba275ee8105f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Wed, 19 Nov 2025 21:27:37 +1300 Subject: [PATCH 3/5] Last fix --- src/Certificate/Sparsity/ChordalExtensionGraph.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Certificate/Sparsity/ChordalExtensionGraph.jl b/src/Certificate/Sparsity/ChordalExtensionGraph.jl index 0d516d1e..5a696ac8 100644 --- a/src/Certificate/Sparsity/ChordalExtensionGraph.jl +++ b/src/Certificate/Sparsity/ChordalExtensionGraph.jl @@ -348,7 +348,7 @@ Return a cluster completion of `G` and the corresponding maximal cliques. """ function completion(G::Graph, ::ClusterCompletion) H = copy(G) - union_find = IntDisjointSets(num_nodes(G)) + union_find = IntDisjointSet(num_nodes(G)) for from in 1:num_nodes(G) for to in neighbors(G, from) union!(union_find, from, to) From 4db702c55f09b1c6bbbe9ce3a0db9787da32a1a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Wed, 19 Nov 2025 21:39:32 +1300 Subject: [PATCH 4/5] Add prefix --- src/Certificate/Sparsity/ChordalExtensionGraph.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Certificate/Sparsity/ChordalExtensionGraph.jl b/src/Certificate/Sparsity/ChordalExtensionGraph.jl index 5a696ac8..0735142b 100644 --- a/src/Certificate/Sparsity/ChordalExtensionGraph.jl +++ b/src/Certificate/Sparsity/ChordalExtensionGraph.jl @@ -354,11 +354,11 @@ function completion(G::Graph, ::ClusterCompletion) union!(union_find, from, to) end end - cliques = [Int[] for i in 1:num_groups(union_find)] + cliques = [Int[] for i in 1:DataStructures.num_groups(union_find)] ids = zeros(Int, num_nodes(G)) k = 0 for node in 1:num_nodes(G) - root = find_root!(union_find, node) + root = DataStructures.find_root!(union_find, node) if iszero(ids[root]) k += 1 ids[root] = k From ac06229833357f145b9dc77bafea266e41d0b9f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Wed, 19 Nov 2025 21:58:24 +1300 Subject: [PATCH 5/5] Remove Mosek --- docs/Project.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/Project.toml b/docs/Project.toml index f2cc13a1..24143629 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -18,7 +18,6 @@ Literate = "98b081ad-f1c9-55d3-8b20-4c87d4299306" MathOptInterface = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" MatrixEquations = "99c1a7ee-ab34-5fd5-8076-27c950a045f4" MixedSubdivisions = "291d046c-3347-11e9-1e74-c3d251d406c6" -MosekTools = "1ec41992-ff65-5c91-ac43-2df89e9693a4" MultivariateBases = "be282fd4-ad43-11e9-1d11-8bd9d7e43378" MultivariateMoments = "f4abf1af-0426-5881-a0da-e2f168889b5e" MultivariatePolynomials = "102ac46a-7ee4-5c85-9060-abc95bfdeaa3"