diff --git a/demonstrations_v2/tutorial_circuit_compilation/demo.py b/demonstrations_v2/tutorial_circuit_compilation/demo.py index 20efc5e028..7e59378e9c 100644 --- a/demonstrations_v2/tutorial_circuit_compilation/demo.py +++ b/demonstrations_v2/tutorial_circuit_compilation/demo.py @@ -93,7 +93,7 @@ def circuit(angles): # transform, which removes consecutive inverse operations. # -cancelled_circuit = qml.transforms.cancel_inverses(commuted_circuit) +cancelled_circuit = qml.transforms.cancel_inverses(commuted_circuit, recursive=False) qnode = qml.QNode(cancelled_circuit, dev) @@ -128,7 +128,7 @@ def circuit(angles): @qml.qnode(dev) @partial(qml.transforms.merge_rotations, atol=1e-8, include_gates=None) -@qml.transforms.cancel_inverses +@qml.transforms.cancel_inverses(recursive=False) @partial(qml.transforms.commute_controlled, direction="right") def q_fun(angles): qml.Hadamard(wires=1) @@ -163,7 +163,12 @@ def q_fun(angles): # :func:`~pennylane.compile` function, which yields the same final circuit. # -compiled_circuit = qml.compile(circuit) +pipelines = [ + partial(qml.transforms.commute_controlled, direction="right"), + partial(qml.transforms.cancel_inverses, recursive=False), + partial(qml.transforms.merge_rotations, atol=1e-8, include_gates=None), +] +compiled_circuit = qml.compile(circuit, pipeline=pipelines) qnode = qml.QNode(compiled_circuit, dev) qml.draw_mpl(qnode, decimals=1, style="sketch")(angles) @@ -178,7 +183,7 @@ def q_fun(angles): # Let us see the resulting circuit with two passes. # -compiled_circuit = qml.compile(circuit, num_passes=2) +compiled_circuit = qml.compile(circuit, pipeline=pipelines, num_passes=2) qnode = qml.QNode(compiled_circuit, dev) qml.draw_mpl(qnode, decimals=1, style="sketch")(angles) @@ -197,7 +202,7 @@ def q_fun(angles): pipeline=[ partial(qml.transforms.commute_controlled, direction="left"), # Opposite direction partial(qml.transforms.merge_rotations, include_gates=["RZ"]), # Different threshold - qml.transforms.cancel_inverses, # Cancel inverses after rotations + partial(qml.transforms.cancel_inverses, recursive=False), # Cancel inverses after rotations ], num_passes=3, )