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

Fix internal transpiler error in CommutativeCancellation with classical conditions #8556

Merged
merged 6 commits into from
Aug 17, 2022

Conversation

alexanderivrii
Copy link
Contributor

Summary

This is a fix for #8553, due to a bug I have introduced in #8184. Previously, when checking whether two gates commute, the commutation checking returned False when at least one of the gates was conditional, and it should stay this way for now. This is definitely sub-optimal, and in the future we should think of ways to improve this.

The code in #8184 was handling this incorrectly though, since it returned True for gates with different quantum and classical bits, without looking at conditions, the fix immediately returns False as soon as one of the gates is conditional.

However, if we do generalize commutation checking to pairs of commuting conditional gates, we would need to also update the CommutativeCancellation pass to avoid throwing errors for conditional gates.

Details and comments

@alexanderivrii alexanderivrii requested a review from a team as a code owner August 16, 2022 16:31
@qiskit-bot
Copy link
Collaborator

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:

  • @Qiskit/terra-core

@coveralls
Copy link

coveralls commented Aug 16, 2022

Pull Request Test Coverage Report for Build 2877530322

  • 2 of 2 (100.0%) changed or added relevant lines in 1 file are covered.
  • 3 unchanged lines in 1 file lost coverage.
  • Overall coverage decreased (-0.004%) to 84.05%

Files with Coverage Reduction New Missed Lines %
qiskit/pulse/library/waveform.py 3 89.36%
Totals Coverage Status
Change from base Build 2873051927: -0.004%
Covered Lines: 56310
Relevant Lines: 66996

💛 - Coveralls

Copy link
Member

@jakelishman jakelishman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the super speedy fix! I shrunk the regression test down to a minimal reproducer, and corrected the comments in the commute method to reflect the changes, but since this is just restoring the previous behaviour of CommutationAnalysis with regard to conditions, I think we're good to go.

@jakelishman jakelishman added automerge Changelog: None Do not include in changelog labels Aug 16, 2022
@jakelishman jakelishman changed the title Bug fix related to issue 8553 Fix internal transpiler error in CommutativeCancellation with classical conditions Aug 16, 2022
@jakelishman jakelishman linked an issue Aug 16, 2022 that may be closed by this pull request
@jakelishman
Copy link
Member

@Mergifyio requeue

@mergify
Copy link
Contributor

mergify bot commented Aug 17, 2022

requeue

✅ The queue state of this pull request has been cleaned. It can be re-embarked automatically

@mergify mergify bot merged commit a2ae2ed into Qiskit:main Aug 17, 2022
@alexanderivrii alexanderivrii deleted the test6 branch October 23, 2023 07:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: None Do not include in changelog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Internal transpiler error in CommutativeCancellation
4 participants