From cd8bc019072316ba85020ca5f47d6c4b1636f252 Mon Sep 17 00:00:00 2001 From: Pete Shadbolt Date: Sun, 24 Jul 2016 17:08:35 +0100 Subject: [PATCH] Test passing --- abp/graphstate.py | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/abp/graphstate.py b/abp/graphstate.py index 1db5970..23e0adc 100644 --- a/abp/graphstate.py +++ b/abp/graphstate.py @@ -132,8 +132,8 @@ class GraphState(object): #basis, phase = clifford.conjugate(basis, ha) basis, phase = clifford.conjugate(basis, self.node[node]["vop"]) - print "MEASURE" - print "Op: {} Phase: {}".format(basis, phase) + #print "MEASURE" + #print "Op: {} Phase: {}".format(basis, phase) # Flip a coin result = force if force!=None else random.choice([0, 1]) @@ -183,15 +183,15 @@ class GraphState(object): # Update the VOPs. TODO: pretty ugly if result: # Do a z on all ngb(vb) \ ngb(v) \ {v}, and some other stuff - self.act_local_rotation(node, "pz") - self.act_local_rotation(friend, "msqy") + self.act_local_rotation2(node, "pz") + self.act_local_rotation2(friend, "msqy") for n in set(self.adj[friend]) - set(self.adj[node]) - {node}: - self.act_local_rotation(n, "pz") + self.act_local_rotation2(n, "pz") else: # Do a z on all ngb(v) \ ngb(vb) \ {vb}, and sqy on the friend - self.act_local_rotation(friend, "sqy") + self.act_local_rotation2(friend, "sqy") for n in set(self.adj[node]) - set(self.adj[friend]) - {friend}: - self.act_local_rotation(n, "pz") + self.act_local_rotation2(n, "pz") # Toggle the edges. TODO: Yuk. Just awful! a = set(self.adj[node].keys()) @@ -212,7 +212,7 @@ class GraphState(object): # Do some rotations for neighbour in self.adj[node]: # NB: should these be hermitian_conjugated? - self.act_local_rotation(neighbour, "sqz" if result else "msqz") + self.act_local_rotation2(neighbour, "sqz" if result else "msqz") # A sort of local complementation vngbh = set(self.adj[node]) | {node} @@ -222,9 +222,9 @@ class GraphState(object): # lcoS.herm_adjoint() if result else lcoS # else smiZ # 5 else 6 - print "RESULT is {:d}, op is {} doing {}".format(result, self.node[node]["vop"], 5 if result else 6) + #print "RESULT is {:d}, op is {} doing {}".format(result, self.node[node]["vop"], 5 if result else 6) self.act_local_rotation2(node, 5 if result else 6) - print "BECAME ", self.node[node]["vop"] + #print "BECAME ", self.node[node]["vop"] return result def measure_z(self, node, result): @@ -234,12 +234,14 @@ class GraphState(object): for neighbour in tuple(self.adj[node]): self.del_edge(node, neighbour) if result: - self.act_local_rotation(neighbour, "pz") + self.act_local_rotation2(neighbour, "pz") # Rotate - self.act_local_rotation(node, "hadamard") if result: - self.act_local_rotation(node, "px") + self.act_local_rotation2(node, "px") + self.act_local_rotation2(node, "hadamard") + else: + self.act_local_rotation2(node, "hadamard") return result