diff --git a/cirq-core/cirq/devices/grid_qubit.py b/cirq-core/cirq/devices/grid_qubit.py
index a3100ecb94f..acbdd910929 100644
--- a/cirq-core/cirq/devices/grid_qubit.py
+++ b/cirq-core/cirq/devices/grid_qubit.py
@@ -134,14 +134,12 @@ class GridQid(_BaseGridQid):
New GridQid can be constructed by adding or subtracting tuples or numpy
arrays
- >>> cirq.GridQid(2, 3, dimension=2) + (3, 1)
- cirq.GridQid(5, 4, dimension=2)
-
- >>> cirq.GridQid(2, 3, dimension=2) - (1, 2)
- cirq.GridQid(1, 1, dimension=2)
-
- >>> cirq.GridQid(2, 3, dimension=2) + np.array([3, 1], dtype=int)
- cirq.GridQid(5, 4, dimension=2)
+ >>> cirq.GridQid(2, 3, dimension=2) + (3, 1)
+ cirq.GridQid(5, 4, dimension=2)
+ >>> cirq.GridQid(2, 3, dimension=2) - (1, 2)
+ cirq.GridQid(1, 1, dimension=2)
+ >>> cirq.GridQid(2, 3, dimension=2) + np.array([3, 1], dtype=int)
+ cirq.GridQid(5, 4, dimension=2)
"""
def __init__(self, row: int, col: int, *, dimension: int) -> None:
@@ -284,14 +282,12 @@ class GridQubit(_BaseGridQid):
New GridQubits can be constructed by adding or subtracting tuples
- >>> cirq.GridQubit(2, 3) + (3, 1)
- cirq.GridQubit(5, 4)
-
- >>> cirq.GridQubit(2, 3) - (1, 2)
- cirq.GridQubit(1, 1)
-
- >>> cirq.GridQubit(2, 3,) + np.array([3, 1], dtype=int)
- cirq.GridQubit(5, 4)
+ >>> cirq.GridQubit(2, 3) + (3, 1)
+ cirq.GridQubit(5, 4)
+ >>> cirq.GridQubit(2, 3) - (1, 2)
+ cirq.GridQubit(1, 1)
+ >>> cirq.GridQubit(2, 3,) + np.array([3, 1], dtype=int)
+ cirq.GridQubit(5, 4)
"""
def __getstate__(self):
diff --git a/cirq-core/cirq/ops/pauli_string.py b/cirq-core/cirq/ops/pauli_string.py
index df0eef33939..1ba59ad76b5 100644
--- a/cirq-core/cirq/ops/pauli_string.py
+++ b/cirq-core/cirq/ops/pauli_string.py
@@ -140,26 +140,19 @@ class PauliString(raw_types.Operation, Generic[TKey]):
PauliStrings can be constructed via various different ways, some examples are
given as follows:
- >>> a, b, c = cirq.LineQubit.range(3)
-
- >>> print(cirq.PauliString([cirq.X(a), cirq.X(a)]))
- I
-
- >>> print(cirq.PauliString(-1, cirq.X(a), cirq.Y(b), cirq.Z(c)))
- -X(q(0))*Y(q(1))*Z(q(2))
-
- >>> print(-1 * cirq.X(a) * cirq.Y(b) * cirq.Z(c))
- -X(q(0))*Y(q(1))*Z(q(2))
-
- >>> print(cirq.PauliString({a: cirq.X}, [-2, 3, cirq.Y(a)]))
- -6j*Z(q(0))
-
- >>> print(cirq.PauliString({a: cirq.I, b: cirq.X}))
- X(q(1))
-
- >>> print(cirq.PauliString({a: cirq.Y},
- ... qubit_pauli_map={a: cirq.X}))
- 1j*Z(q(0))
+ >>> a, b, c = cirq.LineQubit.range(3)
+ >>> print(cirq.PauliString([cirq.X(a), cirq.X(a)]))
+ I
+ >>> print(cirq.PauliString(-1, cirq.X(a), cirq.Y(b), cirq.Z(c)))
+ -X(q(0))*Y(q(1))*Z(q(2))
+ >>> print(-1 * cirq.X(a) * cirq.Y(b) * cirq.Z(c))
+ -X(q(0))*Y(q(1))*Z(q(2))
+ >>> print(cirq.PauliString({a: cirq.X}, [-2, 3, cirq.Y(a)]))
+ -6j*Z(q(0))
+ >>> print(cirq.PauliString({a: cirq.I, b: cirq.X}))
+ X(q(1))
+ >>> print(cirq.PauliString({a: cirq.Y}, qubit_pauli_map={a: cirq.X}))
+ 1j*Z(q(0))
Note that `cirq.PauliString`s are immutable objects. If you need a mutable version
of pauli strings, see `cirq.MutablePauliString`.
diff --git a/cirq-core/cirq/study/flatten_expressions.py b/cirq-core/cirq/study/flatten_expressions.py
index c7c402273f2..0430afc4bad 100644
--- a/cirq-core/cirq/study/flatten_expressions.py
+++ b/cirq-core/cirq/study/flatten_expressions.py
@@ -55,53 +55,54 @@ def flatten(val: Any) -> Tuple[Any, 'ExpressionMap']:
are described above.
Examples:
- >>> qubit = cirq.LineQubit(0)
- >>> a = sympy.Symbol('a')
- >>> circuit = cirq.Circuit(
- ... cirq.X(qubit) ** (a/4),
- ... cirq.Y(qubit) ** (1-a/2),
- ... )
- >>> print(circuit)
- 0: ───X^(a/4)───Y^(1 - a/2)───
-
- >>> sweep = cirq.Linspace(a, start=0, stop=3, length=4)
- >>> print(cirq.ListSweep(sweep))
- Sweep:
- {'a': 0.0}
- {'a': 1.0}
- {'a': 2.0}
- {'a': 3.0}
-
- >>> c_flat, expr_map = cirq.flatten(circuit)
- >>> print(c_flat)
- 0: ───X^()───Y^(<1 - a/2>)───
- >>> expr_map
- cirq.ExpressionMap({a/4: , 1 - a/2: <1 - a/2>})
-
- >>> new_sweep = expr_map.transform_sweep(sweep)
- >>> print(new_sweep)
- Sweep:
- {'': 0.0, '<1 - a/2>': 1.0}
- {'': 0.25, '<1 - a/2>': 0.5}
- {'': 0.5, '<1 - a/2>': 0.0}
- {'': 0.75, '<1 - a/2>': -0.5}
-
- >>> for params in sweep: # Original
- ... print(circuit,
- ... '=>',
- ... cirq.resolve_parameters(circuit, params))
- 0: ───X^(a/4)───Y^(1 - a/2)─── => 0: ───X^0───Y───
- 0: ───X^(a/4)───Y^(1 - a/2)─── => 0: ───X^0.25───Y^0.5───
- 0: ───X^(a/4)───Y^(1 - a/2)─── => 0: ───X^0.5───Y^0───
- 0: ───X^(a/4)───Y^(1 - a/2)─── => 0: ───X^0.75───Y^-0.5───
-
- >>> for params in new_sweep: # Flattened
- ... print(c_flat, '=>', end=' ')
- ... print(cirq.resolve_parameters(c_flat, params))
- 0: ───X^()───Y^(<1 - a/2>)─── => 0: ───X^0───Y───
- 0: ───X^()───Y^(<1 - a/2>)─── => 0: ───X^0.25───Y^0.5───
- 0: ───X^()───Y^(<1 - a/2>)─── => 0: ───X^0.5───Y^0───
- 0: ───X^()───Y^(<1 - a/2>)─── => 0: ───X^0.75───Y^-0.5───
+
+ >>> qubit = cirq.LineQubit(0)
+ >>> a = sympy.Symbol('a')
+ >>> circuit = cirq.Circuit(
+ ... cirq.X(qubit) ** (a/4),
+ ... cirq.Y(qubit) ** (1-a/2),
+ ... )
+ >>> print(circuit)
+ 0: ───X^(a/4)───Y^(1 - a/2)───
+
+ >>> sweep = cirq.Linspace(a, start=0, stop=3, length=4)
+ >>> print(cirq.ListSweep(sweep))
+ Sweep:
+ {'a': 0.0}
+ {'a': 1.0}
+ {'a': 2.0}
+ {'a': 3.0}
+
+ >>> c_flat, expr_map = cirq.flatten(circuit)
+ >>> print(c_flat)
+ 0: ───X^()───Y^(<1 - a/2>)───
+ >>> expr_map
+ cirq.ExpressionMap({a/4: , 1 - a/2: <1 - a/2>})
+
+ >>> new_sweep = expr_map.transform_sweep(sweep)
+ >>> print(new_sweep)
+ Sweep:
+ {'': 0.0, '<1 - a/2>': 1.0}
+ {'': 0.25, '<1 - a/2>': 0.5}
+ {'': 0.5, '<1 - a/2>': 0.0}
+ {'': 0.75, '<1 - a/2>': -0.5}
+
+ >>> for params in sweep: # Original
+ ... print(circuit,
+ ... '=>',
+ ... cirq.resolve_parameters(circuit, params))
+ 0: ───X^(a/4)───Y^(1 - a/2)─── => 0: ───X^0───Y───
+ 0: ───X^(a/4)───Y^(1 - a/2)─── => 0: ───X^0.25───Y^0.5───
+ 0: ───X^(a/4)───Y^(1 - a/2)─── => 0: ───X^0.5───Y^0───
+ 0: ───X^(a/4)───Y^(1 - a/2)─── => 0: ───X^0.75───Y^-0.5───
+
+ >>> for params in new_sweep: # Flattened
+ ... print(c_flat, '=>', end=' ')
+ ... print(cirq.resolve_parameters(c_flat, params))
+ 0: ───X^()───Y^(<1 - a/2>)─── => 0: ───X^0───Y───
+ 0: ───X^()───Y^(<1 - a/2>)─── => 0: ───X^0.25───Y^0.5───
+ 0: ───X^()───Y^(<1 - a/2>)─── => 0: ───X^0.5───Y^0───
+ 0: ───X^()───Y^(<1 - a/2>)─── => 0: ───X^0.75───Y^-0.5───
"""
flattener = _ParamFlattener()
val_flat = flattener.flatten(val)