-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Issue #4182 Initializer should use at most 2^(n+1)-2n cnots #4183
Conversation
As far as I recall, both these optimizations were implemented three years ago. EDIT: Oops, I relooked at the paper and see that I missed this optimization. Indeed a version of this optimization was implemented within a multiplexed Rz or Ry call, but the paper shows that the same optimization can be made between two "neighbouring" multiplexed Rz and Ry calls. Thank you for spotting this. |
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, I think for @ismaila-at-za-ibm as well as from the comment above. @ajavadia or @kdk could you have a final look and approve if it is alright for you?
…skit#4183) * reverse multiplexed Ry * simplifying cnots * simplifying cnots * simplify last cnot * test initializer number of cnots * fix style * numbers which test failed for the old implementation Co-authored-by: Julien Gacon <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Summary
Fix #4182 Initializer should use at most$2^(n+1)$ -2n cnots
Details and comments
Optimizations described in arXiv:quant-ph/0406176