From 126c819d2c871323e68efb48e1041264495a6f54 Mon Sep 17 00:00:00 2001 From: Pete Shadbolt Date: Sat, 23 Jul 2016 19:37:52 +0100 Subject: [PATCH] Add pics --- abp/fancy.py | 8 ++++---- abp/graphstate.py | 2 +- demo.gif => img/demo.gif | Bin img/viz.png | Bin 0 -> 10589 bytes 4 files changed, 5 insertions(+), 5 deletions(-) rename demo.gif => img/demo.gif (100%) create mode 100644 img/viz.png diff --git a/abp/fancy.py b/abp/fancy.py index 7bb276f..c8d1c25 100644 --- a/abp/fancy.py +++ b/abp/fancy.py @@ -48,13 +48,13 @@ class GraphState(graphstate.GraphState, networkx.Graph): #self.ws.close() #self.connect_to_server() - def layout(self, dim=2): + def layout(self): """ Automatically lay out the graph """ - pos = networkx.spring_layout(self, dim, scale=np.sqrt(self.order())) + pos = networkx.spring_layout(self, 3, scale=np.sqrt(self.order())) middle = np.average(pos.values(), axis=0) pos = {key: value - middle for key, value in pos.items()} - for key, (x, y) in pos.items(): - self.node[key]["position"] = util.xyz(x, y, 0) + for key, (x, y, z) in pos.items(): + self.node[key]["position"] = util.xyz(x, y, z) def add_vops(self): """ Automatically add vops if they're not present """ diff --git a/abp/graphstate.py b/abp/graphstate.py index 91d2c35..1498872 100644 --- a/abp/graphstate.py +++ b/abp/graphstate.py @@ -114,7 +114,7 @@ class GraphState(object): va = self.node[a]["vop"] vb = self.node[b]["vop"] new_edge, self.node[a]["vop"], self.node[b]["vop"] = \ - clifford.cz_table[edge, va, vb] + clifford.cz_table[int(edge), va, vb] if new_edge != edge: self.toggle_edge(a, b) diff --git a/demo.gif b/img/demo.gif similarity index 100% rename from demo.gif rename to img/demo.gif diff --git a/img/viz.png b/img/viz.png new file mode 100644 index 0000000000000000000000000000000000000000..1997da84960587a41773e269dc2f7f17632c89af GIT binary patch literal 10589 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