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

Update docstrings for PauliSum. #5596

Merged
merged 5 commits into from
Jul 7, 2022

Conversation

MichaelBroughton
Copy link
Collaborator

No description provided.

@MichaelBroughton MichaelBroughton requested review from a team, vtomole and cduck as code owners June 23, 2022 23:24
@CirqBot CirqBot added the size: S 10< lines changed <50 label Jun 23, 2022
cirq-core/cirq/ops/linear_combinations.py Show resolved Hide resolved
cirq-core/cirq/ops/linear_combinations.py Show resolved Hide resolved
cirq-core/cirq/ops/linear_combinations.py Outdated Show resolved Hide resolved
cirq-core/cirq/ops/linear_combinations.py Outdated Show resolved Hide resolved
cirq-core/cirq/ops/linear_combinations.py Show resolved Hide resolved
cirq-core/cirq/ops/linear_combinations.py Show resolved Hide resolved
cirq-core/cirq/ops/linear_combinations.py Show resolved Hide resolved
@@ -459,6 +476,21 @@ def qubits(self) -> Tuple[raw_types.Qid, ...]:
return tuple(sorted(qs))

def with_qubits(self, *new_qubits: 'cirq.Qid') -> 'PauliSum':
"""Return a new PauliSum on `new_qubits`.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I think we can use some example here / highlight that self.qubits will give a sorted list of all qubits used in the pauli sum; and new qubits will be mapped 1:1 with the sorted qubits.

The fact that pauli sum will always return a sorted list of qubits is tricky and could be helpful to provide some examples.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Were you thinking maybe a code snippet ?

cirq-core/cirq/ops/linear_combinations.py Outdated Show resolved Hide resolved
cirq-core/cirq/ops/linear_combinations.py Outdated Show resolved Hide resolved
@tanujkhattar tanujkhattar self-assigned this Jun 23, 2022
Copy link
Collaborator

@tanujkhattar tanujkhattar left a comment

Choose a reason for hiding this comment

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

LGTM % nits.



>>> a, b = cirq.GridQubit.rect(1, 2)
>>> sum = cirq.PauliSum()
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 we show an example which constructs a non-empty pauli sum? Maybe using the .from_pauli_strings method, since that's the recommended way?

>>> a, b = cirq.GridQubit.rect(1, 2)
>>> psum = cirq.X(a) * cirq.X(b) + 3.0 * cirq.Y(a)
>>> two_psum = 2 * psum
>>> four_psum = two_psum + two_psum
Copy link
Collaborator

Choose a reason for hiding this comment

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

Add a print(four_sum) statement before computing the expectation, for clarity.

Comment on lines 577 to 579
qubits: Iterable of qubits, ordering to determine the computational
basis of qubits. If none is provided the default ordering of
`self.qubits` is used.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
qubits: Iterable of qubits, ordering to determine the computational
basis of qubits. If none is provided the default ordering of
`self.qubits` is used.
qubits: Ordered collection of qubits that determine the subspace
in which the matrix representation of the Pauli sum is to
be computed. If none is provided the default ordering of
`self.qubits` is used. Qubits present in `qubits` but absent from
`self.qubits` are acted on by the identity.

@MichaelBroughton MichaelBroughton added the automerge Tells CirqBot to sync and merge this PR. (If it's running.) label Jul 7, 2022
@CirqBot CirqBot added the front_of_queue_automerge CirqBot uses this label to indicate (and remember) what's being merged next. label Jul 7, 2022
@CirqBot CirqBot merged commit b436c4b into quantumlib:master Jul 7, 2022
rht pushed a commit to rht/Cirq that referenced this pull request May 1, 2023
harry-phasecraft pushed a commit to PhaseCraft/Cirq that referenced this pull request Oct 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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. size: S 10< lines changed <50
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants