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

Make PauliMeasurementGate respect sign of the pauli observable. #4836

Merged
merged 2 commits into from
Jan 14, 2022

Conversation

tanujkhattar
Copy link
Collaborator

Fixes #4814

Note that this is a breaking change because:

  • Serialization of the PauliMeasurementGate is now different -- the serialized observable is DensePauliString instead of a tuple of Pauli's.
  • A DensePauliString with coefficient != +1/-1 will now raise a ValueError whereas earlier the coefficient was simply ignored.

@tanujkhattar tanujkhattar requested review from cduck, vtomole and a team as code owners January 13, 2022 23:23
@tanujkhattar tanujkhattar requested a review from maffoo January 13, 2022 23:23
@CirqBot CirqBot added the size: M 50< lines changed <250 label Jan 13, 2022
@MichaelBroughton MichaelBroughton self-assigned this Jan 13, 2022
@tanujkhattar tanujkhattar added the BREAKING CHANGE For pull requests that are important to mention in release notes. label Jan 13, 2022
Copy link
Collaborator

@MichaelBroughton MichaelBroughton left a comment

Choose a reason for hiding this comment

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

LGTM

coefficient = (
observable.coefficient if isinstance(observable, dps.BaseDensePauliString) else 1
)
if coefficient not in [+1, -1]:
Copy link
Collaborator

Choose a reason for hiding this comment

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

Nit: can just do [1, -1]

@tanujkhattar tanujkhattar added the automerge Tells CirqBot to sync and merge this PR. (If it's running.) label Jan 14, 2022
@CirqBot CirqBot added the front_of_queue_automerge CirqBot uses this label to indicate (and remember) what's being merged next. label Jan 14, 2022
@CirqBot CirqBot merged commit bfa2602 into quantumlib:master Jan 14, 2022
@CirqBot CirqBot removed automerge Tells CirqBot to sync and merge this PR. (If it's running.) front_of_queue_automerge CirqBot uses this label to indicate (and remember) what's being merged next. labels Jan 14, 2022
MichaelBroughton pushed a commit to MichaelBroughton/Cirq that referenced this pull request Jan 22, 2022
…antumlib#4836)

Fixes quantumlib#4814 

Note that this is a breaking change because:
- Serialization of the `PauliMeasurementGate` is now different -- the serialized observable is `DensePauliString` instead of a tuple of Pauli's.
-  A DensePauliString with coefficient != +1/-1 will now raise a `ValueError` whereas earlier the coefficient was simply ignored.
rht pushed a commit to rht/Cirq that referenced this pull request May 1, 2023
…antumlib#4836)

Fixes quantumlib#4814 

Note that this is a breaking change because:
- Serialization of the `PauliMeasurementGate` is now different -- the serialized observable is `DensePauliString` instead of a tuple of Pauli's.
-  A DensePauliString with coefficient != +1/-1 will now raise a `ValueError` whereas earlier the coefficient was simply ignored.
harry-phasecraft pushed a commit to PhaseCraft/Cirq that referenced this pull request Oct 31, 2024
…antumlib#4836)

Fixes quantumlib#4814 

Note that this is a breaking change because:
- Serialization of the `PauliMeasurementGate` is now different -- the serialized observable is `DensePauliString` instead of a tuple of Pauli's.
-  A DensePauliString with coefficient != +1/-1 will now raise a `ValueError` whereas earlier the coefficient was simply ignored.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BREAKING CHANGE For pull requests that are important to mention in release notes. size: M 50< lines changed <250
Projects
None yet
Development

Successfully merging this pull request may close these issues.

PauliMeasurementGate ignores the sign of the observable given to it
3 participants