From 0307d2c098d6530fa8f4b8d9c296a53a1403a44a Mon Sep 17 00:00:00 2001 From: JerryChen97 Date: Tue, 6 Jan 2026 10:13:19 -0500 Subject: [PATCH 1/5] recursive=False --- demonstrations_v2/tutorial_circuit_compilation/demo.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/demonstrations_v2/tutorial_circuit_compilation/demo.py b/demonstrations_v2/tutorial_circuit_compilation/demo.py index 20efc5e028..8ec83f77b0 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) @@ -129,7 +129,7 @@ def circuit(angles): @qml.qnode(dev) @partial(qml.transforms.merge_rotations, atol=1e-8, include_gates=None) @qml.transforms.cancel_inverses -@partial(qml.transforms.commute_controlled, direction="right") +@partial(qml.transforms.commute_controlled, direction="right", recursive=False) def q_fun(angles): qml.Hadamard(wires=1) qml.Hadamard(wires=2) @@ -197,7 +197,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, ) From f58f4d9798cd2b609abbe36ed814600a3e627cce Mon Sep 17 00:00:00 2001 From: JerryChen97 Date: Tue, 6 Jan 2026 10:49:11 -0500 Subject: [PATCH 2/5] fix --- demonstrations_v2/tutorial_circuit_compilation/demo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demonstrations_v2/tutorial_circuit_compilation/demo.py b/demonstrations_v2/tutorial_circuit_compilation/demo.py index 8ec83f77b0..7d0e7df3f5 100644 --- a/demonstrations_v2/tutorial_circuit_compilation/demo.py +++ b/demonstrations_v2/tutorial_circuit_compilation/demo.py @@ -129,7 +129,7 @@ def circuit(angles): @qml.qnode(dev) @partial(qml.transforms.merge_rotations, atol=1e-8, include_gates=None) @qml.transforms.cancel_inverses -@partial(qml.transforms.commute_controlled, direction="right", recursive=False) +@partial(qml.transforms.commute_controlled, direction="right") def q_fun(angles): qml.Hadamard(wires=1) qml.Hadamard(wires=2) From 246807205958161b4e64d7a383f82ef049bbc7cc Mon Sep 17 00:00:00 2001 From: JerryChen97 Date: Tue, 6 Jan 2026 11:08:56 -0500 Subject: [PATCH 3/5] one more --- demonstrations_v2/tutorial_circuit_compilation/demo.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/demonstrations_v2/tutorial_circuit_compilation/demo.py b/demonstrations_v2/tutorial_circuit_compilation/demo.py index 7d0e7df3f5..bbb1a022d2 100644 --- a/demonstrations_v2/tutorial_circuit_compilation/demo.py +++ b/demonstrations_v2/tutorial_circuit_compilation/demo.py @@ -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) @@ -197,7 +197,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 - partial(qml.transforms.cancel_inverses, recursive=False), # Cancel inverses after rotations + qml.transforms.cancel_inverses(recursive=False), # Cancel inverses after rotations ], num_passes=3, ) From e986064ea77f79487158c7ba724ef32cd1dc8f3d Mon Sep 17 00:00:00 2001 From: JerryChen97 Date: Tue, 6 Jan 2026 11:41:58 -0500 Subject: [PATCH 4/5] oops let's stick to partial for now --- demonstrations_v2/tutorial_circuit_compilation/demo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demonstrations_v2/tutorial_circuit_compilation/demo.py b/demonstrations_v2/tutorial_circuit_compilation/demo.py index bbb1a022d2..fa11ef618b 100644 --- a/demonstrations_v2/tutorial_circuit_compilation/demo.py +++ b/demonstrations_v2/tutorial_circuit_compilation/demo.py @@ -197,7 +197,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(recursive=False), # Cancel inverses after rotations + partial(qml.transforms.cancel_inverses, recursive=False), # Cancel inverses after rotations ], num_passes=3, ) From d3b1864728c07e2e99064b2d74ee89899b5cd394 Mon Sep 17 00:00:00 2001 From: JerryChen97 Date: Tue, 6 Jan 2026 15:17:09 -0500 Subject: [PATCH 5/5] try new default pipelines --- demonstrations_v2/tutorial_circuit_compilation/demo.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/demonstrations_v2/tutorial_circuit_compilation/demo.py b/demonstrations_v2/tutorial_circuit_compilation/demo.py index fa11ef618b..7e59378e9c 100644 --- a/demonstrations_v2/tutorial_circuit_compilation/demo.py +++ b/demonstrations_v2/tutorial_circuit_compilation/demo.py @@ -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)