-
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
Fix C3SXGate roundtrip in OpenQASM 2 #9183
Conversation
Qiskit and its version of `qelib1.inc` give `C3SXGate` different names: `c3sx` and `c3sqrtx` respectively. At this point, changing either of these two names is likely to cause user pain, and it should not be difficult for the OpenQASM 2 exporter to simply know about this remapping, like it knows about other standard gate mappings. In practice, the structure of the exporter makes this rather difficult, but we need not expose that complexity to users.
Thank you for opening a new pull request. Before your PR can be merged it will first need to pass continuous integration tests and be reviewed. Sometimes the review process can be slow, so please be patient. While you're waiting, please feel free to review other open PRs. While only a subset of people are authorized to approve pull requests for merging, everyone is encouraged to review open pull requests. Doing reviews helps reduce the burden on the core team and helps make the project's code better for everyone. One or more of the the following people are requested to review this: |
Pull Request Test Coverage Report for Build 4118341310
💛 - Coveralls |
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.
Some comments around.
* Fix C3SXGate roundtrip in OpenQASM 2 Qiskit and its version of `qelib1.inc` give `C3SXGate` different names: `c3sx` and `c3sqrtx` respectively. At this point, changing either of these two names is likely to cause user pain, and it should not be difficult for the OpenQASM 2 exporter to simply know about this remapping, like it knows about other standard gate mappings. In practice, the structure of the exporter makes this rather difficult, but we need not expose that complexity to users. * Correct namespace lookup * Break import cycle --------- Co-authored-by: Luciano Bello <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Summary
Qiskit and its version of
qelib1.inc
giveC3SXGate
different names:c3sx
andc3sqrtx
respectively. At this point, changing either of these two names is likely to cause user pain, and it should not be difficult for the OpenQASM 2 exporter to simply know about this remapping, like it knows about other standard gate mappings. In practice, the structure of the exporter makes this rather difficult, but we need not expose that complexity to users.Details and comments
Fix #7148.
Close #7241 (obsolete).
This PR is a more conservative version of #7148 that does not break backwards compatibility, and does not require changes to either Terra's version of
qelib1.inc
or the name ofC3SXGate
, both of which may cause user headaches.It should have been easier to do this output mapping (the general exporter should know how classes / names need to be mapped to OQ2 equivalents), but as it stands, it needs to be hacked in a little bit. This way is cleaner for the user experience, though.