@@ -17,12 +17,9 @@ decompositions = ("xxxx", "xx", "zzxx", "zz", "zxx", "z", "zzz", "xxz", | |||||
"xzx", "xzxxx", "xzzzx", "xxxzx", "xzz", "zzx", "xxx", "x", | "xzx", "xzxxx", "xzzzx", "xxxzx", "xzz", "zzx", "xxx", "x", | ||||
"zzzx", "xxzx", "zx", "zxxx", "xxxz", "xzzz", "xz", "xzxx") | "zzzx", "xxzx", "zx", "zxxx", "xxxz", "xzzz", "xz", "xzxx") | ||||
#{"UUUU", "UU", "VVUU", "VV", | |||||
#"VUU", "V", "VVV", "UUV", | |||||
#"UVU", "UVUUU", "UVVVU", "UUUVU", | |||||
#"UVV", "VVU", "UUU", "U", | |||||
#"VVVU", "UUVU", "VU", "VUUU", | |||||
#"UUUV", "UVVV", "UV", "UVUU"}; | |||||
#{"UUUU", "UU", "VVUU", "VV", #"VUU", "V", "VVV", "UUV", | |||||
#"UVU", "UVUUU", "UVVVU", "UUUVU", #"UVV", "VVU", "UUU", "U", | |||||
#"VVVU", "UUVU", "VU", "VUUU", #"UUUV", "UVVV", "UV", "UVUU"}; | |||||
#string LocCliffOp::get_name (void) const | #string LocCliffOp::get_name (void) const | ||||
#{ | #{ | ||||
@@ -30,7 +27,9 @@ decompositions = ("xxxx", "xx", "zzxx", "zz", "zxx", "z", "zzz", "xxz", | |||||
#return string (paulinames[op & 0x03]) + (char) ('A' + op / 4); | #return string (paulinames[op & 0x03]) + (char) ('A' + op / 4); | ||||
#} | #} | ||||
ab_names = {0: "IA"} | |||||
def get_name(i): | |||||
""" Get the human-readable name of this clifford """ | |||||
return "IXYZ"[i & 0x03] + "ABCDEF"[i / 4] | |||||
def find_clifford(needle, haystack): | def find_clifford(needle, haystack): | ||||
@@ -172,7 +172,7 @@ class GraphState(object): | |||||
rows = [] | rows = [] | ||||
for key, vop in self.vops.items(): | for key, vop in self.vops.items(): | ||||
ngbh = " ".join(map(str, sorted(self.ngbh[key]))) | ngbh = " ".join(map(str, sorted(self.ngbh[key]))) | ||||
vop = clifford.ab_names.get(vop, vop) | |||||
vop = clifford.get_name(vop) | |||||
s = "Vertex {}: VOp {}, neighbors {}".format(key, vop, ngbh) | s = "Vertex {}: VOp {}, neighbors {}".format(key, vop, ngbh) | ||||
rows.append(s) | rows.append(s) | ||||
return " \n".join(rows)+ " \n" | return " \n".join(rows)+ " \n" | ||||
@@ -0,0 +1,19 @@ | |||||
from abp.graphstate import GraphState | |||||
from anders_briegel import graphsim | |||||
def test_1(): | |||||
N=10 | |||||
a = graphsim.GraphRegister(N) | |||||
b = GraphState() | |||||
for i in range(N): | |||||
a.hadamard(i) | |||||
b.add_vertex(i) | |||||
b.act_hadamard(i) | |||||
for i in range(N-1): | |||||
a.cphase(i, i+1) | |||||
b.act_cz(i, i+1) | |||||
assert a.get_adj_list() == b.adj_list() |
@@ -0,0 +1,7 @@ | |||||
from abp import clifford | |||||
def test_names(): | |||||
""" Test the naming scheme """ | |||||
for i in range(24): | |||||
clifford.get_name(i) | |||||
assert clifford.get_name(16)=="IE" |
@@ -0,0 +1,8 @@ | |||||
from abp.graphstate import GraphState | |||||
def test_logic_101(): | |||||
""" Some really simple tests """ | |||||
g = GraphState() | |||||
g.act_local_rotation_by_name(0, "hadamard") | |||||
#print g. | |||||