Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve approximate set generation in qml.ops.sk_decomposition #6855

Merged
merged 23 commits into from
Feb 1, 2025
Merged
Changes from 1 commit
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
4c10f6d
improve set generation
obliviateandsurrender Jan 17, 2025
c5e5e42
add `changelog`
obliviateandsurrender Jan 17, 2025
a05ecca
Update pennylane/ops/op_math/decompositions/solovay_kitaev.py
obliviateandsurrender Jan 17, 2025
5b317fe
look up speedup
obliviateandsurrender Jan 20, 2025
5dc36f2
Merge branch 'sk_approx_set' of https://github.com/PennyLaneAI/pennyl…
obliviateandsurrender Jan 20, 2025
3b392ca
apply suggestions
obliviateandsurrender Jan 20, 2025
c7ef551
add a test case
obliviateandsurrender Jan 23, 2025
464e528
Merge branch 'master' into sk_approx_set
obliviateandsurrender Jan 23, 2025
0896305
add comments
obliviateandsurrender Jan 24, 2025
eb6ee0a
Merge branch 'sk_approx_set' of https://github.com/PennyLaneAI/pennyl…
obliviateandsurrender Jan 24, 2025
93fcc50
minor tweaks
obliviateandsurrender Jan 24, 2025
46ab3e8
apply suggestions
obliviateandsurrender Jan 24, 2025
f26257a
apply suggestions
obliviateandsurrender Jan 27, 2025
9d7411d
Merge branch 'master' into sk_approx_set
obliviateandsurrender Jan 27, 2025
cd83c85
Update pennylane/ops/op_math/decompositions/solovay_kitaev.py
obliviateandsurrender Jan 27, 2025
20a552a
Merge branch 'master' into sk_approx_set
obliviateandsurrender Jan 27, 2025
19b2452
minor tweaks
obliviateandsurrender Jan 28, 2025
9be3b31
Merge branch 'master' into sk_approx_set
obliviateandsurrender Jan 31, 2025
4fafee1
Update test_cliffordt_transform.py
obliviateandsurrender Jan 31, 2025
ea1ef24
minor cleanup
obliviateandsurrender Jan 31, 2025
a6ab793
Merge branch 'sk_approx_set' of https://github.com/PennyLaneAI/pennyl…
obliviateandsurrender Jan 31, 2025
aff4ab7
Merge branch 'master' into sk_approx_set
obliviateandsurrender Jan 31, 2025
dd1efbc
minor tweak
obliviateandsurrender Jan 31, 2025
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
Prev Previous commit
Next Next commit
add a test case
obliviateandsurrender committed Jan 23, 2025

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
commit c7ef551e050abe36b87e2e9c008c9288bd73dba2
20 changes: 12 additions & 8 deletions tests/ops/op_math/test_solovay_kitaev.py
Original file line number Diff line number Diff line change
@@ -138,19 +138,23 @@ def test_group_commutator_decompose(op):


@pytest.mark.parametrize(
("op"),
("op", "max_depth"),
[
qml.RX(math.pi / 42, wires=[1]),
qml.RY(math.pi / 7, wires=["a"]),
qml.prod(*[qml.RX(1.0, "a"), qml.T("a")]),
qml.prod(*[qml.T(0), qml.Hadamard(0)] * 5),
(qml.RX(math.pi / 42, wires=[1]), 5),
(qml.RY(math.pi / 7, wires=["a"]), 5),
(qml.prod(*[qml.RX(1.0, "a"), qml.T("a")]), 5),
(qml.prod(*[qml.T(0), qml.Hadamard(0)] * 5), 5),
(qml.RZ(-math.pi / 2, wires=[1]), 1),
(qml.adjoint(qml.S(wires=["a"])), 1),
(qml.PhaseShift(5 * math.pi / 2, wires=[0]), 1),
(qml.PhaseShift(-3 * math.pi / 4, wires=["b"]), 1),
],
)
def test_solovay_kitaev(op):
"""Test Solovay-Kitaev decomposition method"""
def test_solovay_kitaev(op, max_depth):
"""Test Solovay-Kitaev decomposition method with specified max-depth"""

with qml.queuing.AnnotatedQueue() as q:
gates = sk_decomposition(op, epsilon=1e-4, max_depth=5, basis_set=("T", "T*", "H"))
gates = sk_decomposition(op, epsilon=1e-4, max_depth=max_depth, basis_set=("T", "T*", "H"))
assert q.queue == gates

matrix_sk = qml.matrix(qml.tape.QuantumScript(gates))