Skip to content

Commit 737a626

Browse files
committed
use vector constructuctor for OMEinsum
1 parent ca47544 commit 737a626

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

src/networks.jl

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ struct Independence{CT<:EinTypes} <: GraphProblem
1515
end
1616

1717
function Independence(g::SimpleGraph; openvertices=(), optimizer=GreedyMethod(), simplifier=nothing)
18-
rawcode = EinCode(([(i,) for i in Graphs.vertices(g)]..., # labels for vertex tensors
19-
[minmax(e.src,e.dst) for e in Graphs.edges(g)]...), openvertices) # labels for edge tensors
18+
rawcode = EinCode(([[i] for i in Graphs.vertices(g)]..., # labels for vertex tensors
19+
[[minmax(e.src,e.dst)...] for e in Graphs.edges(g)]...), collect(Int, openvertices)) # labels for edge tensors
2020
code = _optimize_code(rawcode, uniformsize(rawcode, 2), optimizer, simplifier)
2121
Independence(code)
2222
end
@@ -32,7 +32,7 @@ struct MaxCut{CT<:EinTypes} <: GraphProblem
3232
code::CT
3333
end
3434
function MaxCut(g::SimpleGraph; openvertices=(), optimizer=GreedyMethod(), simplifier=nothing)
35-
rawcode = EinCode(([minmax(e.src,e.dst) for e in Graphs.edges(g)]...,), openvertices) # labels for edge tensors
35+
rawcode = EinCode([[minmax(e.src,e.dst)...] for e in Graphs.edges(g)], collect(Int, openvertices)) # labels for edge tensors
3636
MaxCut(_optimize_code(rawcode, uniformsize(rawcode, 2), optimizer, simplifier))
3737
end
3838

@@ -48,7 +48,7 @@ struct MaximalIndependence{CT<:EinTypes} <: GraphProblem
4848
end
4949

5050
function MaximalIndependence(g::SimpleGraph; openvertices=(), optimizer=GreedyMethod(), simplifier=nothing)
51-
rawcode = EinCode(([(Graphs.neighbors(g, v)..., v) for v in Graphs.vertices(g)]...,), openvertices)
51+
rawcode = EinCode(([[Graphs.neighbors(g, v)..., v] for v in Graphs.vertices(g)]...,), collect(Int, openvertices))
5252
MaximalIndependence(_optimize_code(rawcode, uniformsize(rawcode, 2), optimizer, simplifier))
5353
end
5454

@@ -69,8 +69,9 @@ struct Matching{CT<:EinTypes} <: GraphProblem
6969
end
7070

7171
function Matching(g::SimpleGraph; openvertices=(), optimizer=GreedyMethod(), simplifier=nothing)
72-
rawcode = EinCode(([(minmax(e.src,e.dst),) for e in Graphs.edges(g)]..., # labels for edge tensors
73-
[([minmax(i,j) for j in neighbors(g, i)]...,) for i in Graphs.vertices(g)]...,), openvertices) # labels for vertex tensors
72+
rawcode = EinCode(vcat([[minmax(e.src,e.dst)] for e in Graphs.edges(g)], # labels for edge tensors
73+
[[minmax(i,j) for j in neighbors(g, i)] for i in Graphs.vertices(g)]),
74+
collect(Tuple{Int,Int}, openvertices))
7475
Matching(_optimize_code(rawcode, uniformsize(rawcode, 2), optimizer, simplifier))
7576
end
7677

@@ -132,9 +133,9 @@ julia> res = best_solutions(gp; all=true)[]
132133
"""
133134
function set_packing(sets; openvertices=(), optimizer=GreedyMethod(), simplifier=nothing)
134135
n = length(sets)
135-
code = EinCode(([(i,) for i=1:n]..., [(i,j) for i=1:n,j=1:n if j>i && !isempty(sets[i] sets[j])]...), openvertices)
136+
code = EinCode(vcat([[i] for i=1:n], [[i,j] for i=1:n,j=1:n if j>i && !isempty(sets[i] sets[j])]), collect(Int,openvertices))
136137
Independence(_optimize_code(code, uniformsize(code, 2), optimizer, simplifier))
137138
end
138139

139140
_optimize_code(code, size_dict, optimizer::Nothing, simplifier) = code
140-
_optimize_code(code, size_dict, optimizer, simplifier) = optimize_code(code, size_dict, optimizer, simplifier)
141+
_optimize_code(code, size_dict, optimizer, simplifier) = optimize_code(code, size_dict, optimizer, simplifier)

0 commit comments

Comments
 (0)