-
Notifications
You must be signed in to change notification settings - Fork 605
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
Solovay-Kitaev Decomposition Algorithm #4801
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #4801 +/- ##
==========================================
- Coverage 99.65% 99.64% -0.02%
==========================================
Files 383 385 +2
Lines 34600 34460 -140
==========================================
- Hits 34480 34337 -143
- Misses 120 123 +3 ☔ View full report in Codecov by Sentry. |
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com> Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎉
# Conflicts: # doc/releases/changelog-dev.md
…neAI/pennylane into solovay_kitaev_decompose
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @obliviateandsurrender @timmysilv! My only remaining comments are related to the docs.
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
:')
Context: Implements the
Solovay-Kitaev
decomposition algorithm using the description mentioned in arXiv:0505030Description of the Change: This adds a Solovay-Kitaev decomposition for the Clifford+T workflow in the
solovay_kitaev.py
file.sk_decomposition
technique is the parent method, which takes in any single-qubit operator and uses itsSU(2)
representation for finding its decomposition in the specified basis up to a global phase via recursive implementation contained in_solovay_kitaev
function._approximate_set
method allows us to build an approximate set of Clifford sequences that are used in the base case return for the above_solovay_kitaev
recursive call._group_commutator_decompose
allows us to perform the group commutation decomposition and uses the recipe mentioned in Sec 4.1 arXiv:0505030.Benefits: Should allow one to do the Clifford+T decomposition.
Possible Drawbacks: Better algorithms exist in the literature, specifically for decomposing rotation gates.
Related GitHub Issues: