Skip to content
This repository was archived by the owner on Jan 30, 2023. It is now read-only.

Commit fe6f742

Browse files
committed
trac #34306: better use of graphs in src/sage/geometry/hyperplane_arrangement/library.py
1 parent 12be2d9 commit fe6f742

File tree

1 file changed

+16
-12
lines changed
  • src/sage/geometry/hyperplane_arrangement

1 file changed

+16
-12
lines changed

src/sage/geometry/hyperplane_arrangement/library.py

+16-12
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,10 @@ def bigraphical(self, G, A=None, K=QQ, names=None):
152152
H = make_parent(K, n, names)
153153
x = H.gens()
154154
hyperplanes = []
155-
for e in G.edges(sort=True):
156-
i = G.vertices(sort=True).index(e[0])
157-
j = G.vertices(sort=True).index(e[1])
155+
vertex_to_int = {u: i for i, u in enumerate(G)}
156+
for u, v in G.edge_iterator(labels=False, sort_vertices=False):
157+
i = vertex_to_int[u]
158+
j = vertex_to_int[v]
158159
hyperplanes.append( x[i] - x[j] - A[i][j])
159160
hyperplanes.append(-x[i] + x[j] - A[j][i])
160161
return H(*hyperplanes)
@@ -264,9 +265,10 @@ def G_semiorder(self, G, K=QQ, names=None):
264265
H = make_parent(K, n, names)
265266
x = H.gens()
266267
hyperplanes = []
267-
for e in G.edges(sort=True):
268-
i = G.vertices(sort=True).index(e[0])
269-
j = G.vertices(sort=True).index(e[1])
268+
vertex_to_int = {u: i for i, u in enumerate(G.vertices(sort=True))}
269+
for u, v in G.edge_iterator(labels=False):
270+
i = vertex_to_int[u]
271+
j = vertex_to_int[v]
270272
hyperplanes.append(x[i] - x[j] - 1)
271273
hyperplanes.append(x[i] - x[j] + 1)
272274
return H(*hyperplanes)
@@ -303,9 +305,10 @@ def G_Shi(self, G, K=QQ, names=None):
303305
H = make_parent(K, n, names)
304306
x = H.gens()
305307
hyperplanes = []
306-
for e in G.edges(sort=True):
307-
i = G.vertices(sort=True).index(e[0])
308-
j = G.vertices(sort=True).index(e[1])
308+
vertex_to_int = {u: i for i, u in enumerate(G.vertices(sort=True))}
309+
for u, v in G.edge_iterator(labels=False):
310+
i = vertex_to_int[u]
311+
j = vertex_to_int[v]
309312
hyperplanes.append(x[i] - x[j])
310313
hyperplanes.append(x[i] - x[j] - 1)
311314
return H(*hyperplanes)
@@ -351,9 +354,10 @@ def graphical(self, G, K=QQ, names=None):
351354
H = make_parent(K, n, names)
352355
x = H.gens()
353356
hyperplanes = []
354-
for e in G.edges(sort=True):
355-
i = G.vertices(sort=True).index(e[0])
356-
j = G.vertices(sort=True).index(e[1])
357+
vertex_to_int = {u: i for i, u in enumerate(G.vertices(sort=True))}
358+
for u, v in G.edge_iterator(labels=False):
359+
i = vertex_to_int[u]
360+
j = vertex_to_int[v]
357361
hyperplanes.append(x[i] - x[j])
358362
A = H(*hyperplanes)
359363
charpoly = G.chromatic_polynomial()

0 commit comments

Comments
 (0)