-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Apply variable-spaced optimization to QROM circuits #6257
Apply variable-spaced optimization to QROM circuits #6257
Conversation
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.
LGTM % adding an additional test case.
@fdmalone Added more tests and also updated the |
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.
LGTM
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## master #6257 +/- ##
==========================================
- Coverage 97.60% 97.60% -0.01%
==========================================
Files 1116 1116
Lines 95772 95815 +43
==========================================
+ Hits 93481 93519 +38
- Misses 2291 2296 +5
☔ View full report in Codecov by Sentry. |
Updates the unary iteration framework to allow "early termination" and uses this trick to apply the variable-spacing optimization to QROM circuits described in https://arxiv.org/pdf/2007.07391.pdf
As a drive-by fix, the PR also fixes a flaky bug in
GreedyQubitManager
where the free'd qubits were added to the pool of managed qubits in a non-deterministic order due to finding unique elements viaset(qubits)
. Replaced with an order-preserving way of finding unique elements.