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 pauli.evolve dtype casting error #8877

Merged
merged 3 commits into from
Oct 12, 2022
Merged

Conversation

chriseclectic
Copy link
Member

Summary

Fixes #8438

Fixes issue where Pauli.evolve and PauliList.evolve would raise a dtype error when evolving by certain Clifford gates which modified the Pauli's phase.

Details and comments

This fix make it so that rather than cast the dtype of the phase vector to a fixed type, it will accept any signed or unsigned integer dtype and work with that.

@chriseclectic chriseclectic requested review from a team and ikkoham as code owners October 11, 2022 19:27
@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:

@chriseclectic chriseclectic changed the title Fix pauli Fix pauli.evolve dtype casting error Oct 11, 2022
@jakelishman jakelishman self-assigned this Oct 11, 2022
@coveralls
Copy link

coveralls commented Oct 11, 2022

Pull Request Test Coverage Report for Build 3236028185

  • 20 of 21 (95.24%) changed or added relevant lines in 3 files are covered.
  • 1 unchanged line in 1 file lost coverage.
  • Overall coverage remained the same at 84.766%

Changes Missing Coverage Covered Lines Changed/Added Lines %
qiskit/quantum_info/operators/symplectic/pauli.py 2 3 66.67%
Files with Coverage Reduction New Missed Lines %
qiskit/quantum_info/operators/symplectic/pauli.py 1 80.61%
Totals Coverage Status
Change from base Build 3235718324: 0.0%
Covered Lines: 61936
Relevant Lines: 73067

💛 - Coveralls

@mtreinish mtreinish added Changelog: Bugfix Include in the "Fixed" section of the changelog stable backport potential The bug might be minimal and/or import enough to be port to stable labels Oct 11, 2022
@jakelishman jakelishman added this to the 0.22 milestone Oct 12, 2022
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 quick fix, this looks great. I only had one question, but the answer doesn't really matter for merging.

Comment on lines -642 to +644
base_phase = np.mod(cls._phase_from_complex(op.coeff) + _count_y(base_x, base_z), 4)
base_phase = np.mod(
cls._phase_from_complex(op.coeff) + _count_y(base_x, base_z), 4, dtype=int
)
Copy link
Member

Choose a reason for hiding this comment

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

I'm guessing this is int for consistency with other methods in this class?

@mtreinish mtreinish mentioned this pull request Oct 12, 2022
5 tasks
@mergify mergify bot merged commit e6d23d5 into Qiskit:main Oct 12, 2022
mergify bot pushed a commit that referenced this pull request Oct 12, 2022
* Fix pauli phase evolve

* Update for unsigned int phases

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
(cherry picked from commit e6d23d5)
mergify bot added a commit that referenced this pull request Oct 12, 2022
* Fix pauli phase evolve

* Update for unsigned int phases

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
(cherry picked from commit e6d23d5)

Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: Bugfix Include in the "Fixed" section of the changelog stable backport potential The bug might be minimal and/or import enough to be port to stable
Projects
None yet
Development

Successfully merging this pull request may close these issues.

PauliList.evolve raises exception when evolving certain Clifford circuits.
5 participants