@@ -99,14 +99,14 @@ class GraphState(object): | |||||
def act_circuit(self, circuit): | def act_circuit(self, circuit): | ||||
""" Run many gates in one call. | """ Run many gates in one call. | ||||
:param circuit: An iterable containing tuples of the form ``(node, operation)``. If ``operation`` is a name for a local operation (e.g. ``6``, ``hadamard``) then that operation is performed on ``node``. If ``operation`` is ``cz`` then a CZ is performed on the two nodes in ``node``. | |||||
:param circuit: An iterable containing tuples of the form ``(operation, node)``. If ``operation`` is a name for a local operation (e.g. ``6``, ``hadamard``) then that operation is performed on ``node``. If ``operation`` is ``cz`` then a CZ is performed on the two nodes in ``node``. | |||||
Example (makes a Bell pair):: | Example (makes a Bell pair):: | ||||
>>> g.act_circuit([(0, "hadamard"), (1, "hadamard"), ((0, 1), "cz")]) | |||||
>>> g.act_circuit([("hadamard", 0), ("hadamard", 1), ("cz", (0, 1))]) | |||||
""" | """ | ||||
for node, operation in circuit: | |||||
for operation, node in circuit: | |||||
if operation == "cz": | if operation == "cz": | ||||
self.act_cz(*node) | self.act_cz(*node) | ||||
else: | else: | ||||
@@ -41,6 +41,19 @@ html, body { margin: 0; padding: 0; overflow: hidden; font-size: 10pt; font-fam | |||||
font-size: 9pt; | font-size: 9pt; | ||||
} | } | ||||
#options { | |||||
background-color: rgba(256, 256, 256, .5); | |||||
color: black; | |||||
padding: 10px; | |||||
font-family: monospace; | |||||
position: absolute; | |||||
text-align: right; | |||||
bottom: 10px; | |||||
right: 10px; | |||||
font-size: 9pt; | |||||
} | |||||
#version { | #version { | ||||
color:black; | color:black; | ||||
padding: 10px; | padding: 10px; | ||||
@@ -12,7 +12,7 @@ materials.prepare = function() { | |||||
materials.edge = new THREE.LineBasicMaterial({ | materials.edge = new THREE.LineBasicMaterial({ | ||||
color: "gray", | color: "gray", | ||||
transparent: false, | transparent: false, | ||||
linewidth: 3 | |||||
linewidth: 5 | |||||
}); | }); | ||||
materials.edge.depthTest = false; | materials.edge.depthTest = false; | ||||
materials.qubit = new THREE.PointsMaterial({ | materials.qubit = new THREE.PointsMaterial({ | ||||
@@ -39,7 +39,7 @@ class AndersWrapper(graphsim.GraphRegister): | |||||
return self.to_json() == other.to_json() | return self.to_json() == other.to_json() | ||||
def act_circuit(self, circuit): | def act_circuit(self, circuit): | ||||
for node, operation in circuit: | |||||
for operation, node in circuit: | |||||
if operation == "cz": | if operation == "cz": | ||||
self.act_cz(*node) | self.act_cz(*node) | ||||
else: | else: | ||||
@@ -103,8 +103,8 @@ def named_node_graph(): | |||||
""" A graph with named nodes""" | """ A graph with named nodes""" | ||||
edges = (0, 1), (1, 2), (2, 0), (0, 3), (100, 200), (200, "named") | edges = (0, 1), (1, 2), (2, 0), (0, 3), (100, 200), (200, "named") | ||||
g = ABPWrapper([0, 1, 2, 3, 100, 200, "named"]) | g = ABPWrapper([0, 1, 2, 3, 100, 200, "named"]) | ||||
g.act_circuit((i, "hadamard") for i in g.node) | |||||
g.act_circuit((edge, "cz") for edge in edges) | |||||
g.act_circuit(("hadamard", i) for i in g.node) | |||||
g.act_circuit(("cz", edge) for edge in edges) | |||||
return g | return g | ||||
@@ -112,8 +112,8 @@ def simple_graph(): | |||||
""" A simple graph to test with""" | """ A simple graph to test with""" | ||||
edges = (0, 1), (1, 2), (2, 0), (0, 3), (100, 200) | edges = (0, 1), (1, 2), (2, 0), (0, 3), (100, 200) | ||||
g = ABPWrapper([0, 1, 2, 3, 100, 200]) | g = ABPWrapper([0, 1, 2, 3, 100, 200]) | ||||
g.act_circuit((i, "hadamard") for i in g.node) | |||||
g.act_circuit((edge, "cz") for edge in edges) | |||||
g.act_circuit(("hadamard", i) for i in g.node) | |||||
g.act_circuit(("cz", edge) for edge in edges) | |||||
return g | return g | ||||