From 6e788cd9836a362289f48184585cbafa5d74bb39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20G=C3=B6ttgens?= Date: Thu, 5 Dec 2024 17:18:54 +0100 Subject: [PATCH] Replace `setdiff!` by iterators --- src/ArcDiagram.jl | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/ArcDiagram.jl b/src/ArcDiagram.jl index c68019cb..ba8e4c60 100644 --- a/src/ArcDiagram.jl +++ b/src/ArcDiagram.jl @@ -666,8 +666,8 @@ function iter_possible_adjacencies_undir( i = findfirst(iszero, partial_upper) if !isnothing(i) i = -i - poss_upper_adjs = setdiff!(setdiff!(map(-, findall(iszero, partial_upper)), i), forbidden_neighbors[i]) - poss_lower_adjs = setdiff!(findall(iszero, partial_lower), forbidden_neighbors[i]) + poss_upper_adjs = (-j for j in findall(iszero, partial_upper) if i != -j && !(-j in forbidden_neighbors[i])) + poss_lower_adjs = (j for j in findall(iszero, partial_lower) if !(j in forbidden_neighbors[i])) choices = Iterators.map(Iterators.flatten([poss_upper_adjs, poss_lower_adjs])) do j partial_upper2 = copy(partial_upper) partial_lower2 = copy(partial_lower) @@ -689,7 +689,7 @@ function iter_possible_adjacencies_undir( else i = findfirst(iszero, partial_lower) if !isnothing(i) - poss_lower_adjs = setdiff!(setdiff!(findall(iszero, partial_lower), i), forbidden_neighbors[i]) + poss_lower_adjs = (j for j in findall(iszero, partial_lower) if i != j && !(j in forbidden_neighbors[i])) choices = Iterators.map(poss_lower_adjs) do j partial_lower2 = copy(partial_lower) partial_lower2[i] = j @@ -836,12 +836,12 @@ function iter_possible_adjacencies_dir( if !isnothing(i) i = -i poss_upper_adjs = ( - j for j in setdiff!(setdiff!(map(-, findall(iszero, partial_upper)), i), forbidden_neighbors[i]) if - parity_upper_verts[-i] != parity_upper_verts[-j] + -j for j in findall(iszero, partial_upper) if + i != -j && !(-j in forbidden_neighbors[i]) && parity_upper_verts[-i] != parity_upper_verts[j] ) poss_lower_adjs = ( - j for j in setdiff!(findall(iszero, partial_lower), forbidden_neighbors[i]) if - parity_upper_verts[-i] == parity_lower_verts[j] + j for j in findall(iszero, partial_lower) if + !(j in forbidden_neighbors[i]) && parity_upper_verts[-i] == parity_lower_verts[j] ) choices = Iterators.map(Iterators.flatten([poss_upper_adjs, poss_lower_adjs])) do j partial_upper2 = copy(partial_upper) @@ -867,8 +867,8 @@ function iter_possible_adjacencies_dir( i = findfirst(iszero, partial_lower) if !isnothing(i) poss_lower_adjs = ( - j for j in setdiff!(setdiff!(findall(iszero, partial_lower), i), forbidden_neighbors[i]) if - parity_lower_verts[i] != parity_lower_verts[j] + j for j in findall(iszero, partial_lower) if + i != j && !(j in forbidden_neighbors[i]) && parity_lower_verts[i] != parity_lower_verts[j] ) choices = Iterators.map(poss_lower_adjs) do j partial_lower2 = copy(partial_lower)