Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 10 additions & 5 deletions demonstrations_v2/tutorial_circuit_compilation/demo.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand All @@ -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)
Expand All @@ -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,
)
Expand Down