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

Apply some minor doc fixes #6289

Merged
merged 2 commits into from
Sep 18, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
16 changes: 8 additions & 8 deletions cirq-core/cirq/circuits/circuit.py
Original file line number Diff line number Diff line change
Expand Up @@ -1465,14 +1465,14 @@ def concat_ragged(

Beware that this method is *not* associative. For example:

>>> a, b = cirq.LineQubit.range(2)
>>> A = cirq.Circuit(cirq.H(a))
>>> B = cirq.Circuit(cirq.H(b))
>>> f = cirq.Circuit.concat_ragged
>>> f(f(A, B), A) == f(A, f(B, A))
False
>>> len(f(f(f(A, B), A), B)) == len(f(f(A, f(B, A)), B))
False
>>> a, b = cirq.LineQubit.range(2)
>>> A = cirq.Circuit(cirq.H(a))
>>> B = cirq.Circuit(cirq.H(b))
>>> f = cirq.Circuit.concat_ragged
>>> f(f(A, B), A) == f(A, f(B, A))
False
>>> len(f(f(f(A, B), A), B)) == len(f(f(A, f(B, A)), B))
False

Args:
*circuits: The circuits to concatenate.
Expand Down
78 changes: 40 additions & 38 deletions cirq-core/cirq/interop/quirk/url_to_circuit.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,39 +77,40 @@ def quirk_url_to_circuit(
a billion laughs attack in the form of nested custom gates.

Examples:
>>> print(cirq.quirk_url_to_circuit(
... 'http://algassert.com/quirk#circuit={"cols":[["H"],["•","X"]]}'
... ))
0: ───H───@───
1: ───────X───

>>> print(cirq.quirk_url_to_circuit(
... 'http://algassert.com/quirk#circuit={"cols":[["H"],["•","X"]]}',
... qubits=[cirq.NamedQubit('Alice'), cirq.NamedQubit('Bob')]
... ))
Alice: ───H───@───
Bob: ─────────X───

>>> print(cirq.quirk_url_to_circuit(
... 'http://algassert.com/quirk#circuit={"cols":[["iswap"]]}',
... extra_cell_makers={'iswap': cirq.ISWAP}))
0: ───iSwap───
1: ───iSwap───

>>> print(cirq.quirk_url_to_circuit(
... 'http://algassert.com/quirk#circuit={"cols":[["iswap"]]}',
... extra_cell_makers=[
... cirq.interop.quirk.cells.CellMaker(
... identifier='iswap',
... size=2,
... maker=lambda args: cirq.ISWAP(*args.qubits))
... ]))
0: ───iSwap───

>>> print(cirq.quirk_url_to_circuit(
... 'http://algassert.com/quirk#circuit={"cols":[["H"],["•","X"]]}'
... ))
0: ───H───@───
1: ───iSwap───
1: ───────X───

>>> print(cirq.quirk_url_to_circuit(
... 'http://algassert.com/quirk#circuit={"cols":[["H"],["•","X"]]}',
... qubits=[cirq.NamedQubit('Alice'), cirq.NamedQubit('Bob')]
... ))
Alice: ───H───@───
Bob: ─────────X───

>>> print(cirq.quirk_url_to_circuit(
... 'http://algassert.com/quirk#circuit={"cols":[["iswap"]]}',
... extra_cell_makers={'iswap': cirq.ISWAP}))
0: ───iSwap───
1: ───iSwap───

>>> print(cirq.quirk_url_to_circuit(
... 'http://algassert.com/quirk#circuit={"cols":[["iswap"]]}',
... extra_cell_makers=[
... cirq.interop.quirk.cells.CellMaker(
... identifier='iswap',
... size=2,
... maker=lambda args: cirq.ISWAP(*args.qubits))
... ]))
0: ───iSwap───
1: ───iSwap───

Returns:
The parsed circuit.
Expand Down Expand Up @@ -172,12 +173,13 @@ def quirk_json_to_circuit(
a billion laughs attack in the form of nested custom gates.

Examples:
>>> print(cirq.quirk_json_to_circuit(
... {"cols":[["H"], ["•", "X"]]}
... ))
0: ───H───@───
1: ───────X───

>>> print(cirq.quirk_json_to_circuit(
... {"cols":[["H"], ["•", "X"]]}
... ))
0: ───H───@───
1: ───────X───

Returns:
The parsed circuit.
Expand Down
15 changes: 9 additions & 6 deletions cirq-core/cirq/protocols/apply_channel_protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,16 @@ class ApplyChannelArgs:
r"""Arguments for efficiently performing a channel.

A channel performs the mapping
$$
X \rightarrow \sum_i A_i X A_i^\dagger
$$

$$
X \rightarrow \sum_i A_i X A_i^\dagger
$$

for operators $A_i$ that satisfy the normalization condition
$$
\sum_i A_i^\dagger A_i = I.
$$

$$
\sum_i A_i^\dagger A_i = I.
$$

The receiving object is expected to mutate `target_tensor` so that it
contains the density matrix after multiplication, and then return
Expand Down