cirq-core 1.6.0.dev20250521215048__py3-none-any.whl → 1.6.0.dev20250523155818__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cirq-core might be problematic. Click here for more details.

cirq/_version.py CHANGED
@@ -28,4 +28,4 @@ if sys.version_info < (3, 11, 0): # pragma: no cover
28
28
  'of cirq (e.g. "python -m pip install cirq==1.5.0")'
29
29
  )
30
30
 
31
- __version__ = "1.6.0.dev20250521215048"
31
+ __version__ = "1.6.0.dev20250523155818"
cirq/_version_test.py CHANGED
@@ -3,4 +3,4 @@ import cirq
3
3
 
4
4
 
5
5
  def test_version() -> None:
6
- assert cirq.__version__ == "1.6.0.dev20250521215048"
6
+ assert cirq.__version__ == "1.6.0.dev20250523155818"
cirq/circuits/circuit.py CHANGED
@@ -918,7 +918,7 @@ class AbstractCircuit(abc.ABC):
918
918
  def all_qubits(self) -> frozenset[cirq.Qid]:
919
919
  """Returns the qubits acted upon by Operations in this circuit.
920
920
 
921
- Returns: FrozenSet of `cirq.Qid` objects acted on by all operations
921
+ Returns: frozenset of `cirq.Qid` objects acted on by all operations
922
922
  in this circuit.
923
923
  """
924
924
  return frozenset(q for m in self.moments for q in m.qubits)
@@ -966,7 +966,7 @@ class AbstractCircuit(abc.ABC):
966
966
  def _measurement_key_objs_(self) -> frozenset[cirq.MeasurementKey]:
967
967
  """Returns the set of all measurement keys in this circuit.
968
968
 
969
- Returns: FrozenSet of `cirq.MeasurementKey` objects that are
969
+ Returns: frozenset of `cirq.MeasurementKey` objects that are
970
970
  in this circuit.
971
971
  """
972
972
  return self.all_measurement_key_objs()
@@ -974,7 +974,7 @@ class AbstractCircuit(abc.ABC):
974
974
  def all_measurement_key_names(self) -> frozenset[str]:
975
975
  """Returns the set of all measurement key names in this circuit.
976
976
 
977
- Returns: FrozenSet of strings that are the measurement key
977
+ Returns: frozenset of strings that are the measurement key
978
978
  names in this circuit.
979
979
  """
980
980
  return frozenset(
@@ -116,7 +116,7 @@ def unitary_eig(
116
116
  was unitary.
117
117
 
118
118
  Returns:
119
- A Tuple of
119
+ A tuple of
120
120
  eigvals: The eigenvalues of `matrix`.
121
121
  V: The unitary matrix with the eigenvectors as columns.
122
122
 
@@ -44,21 +44,21 @@ class ArithmeticGate(Gate, metaclass=abc.ABCMeta):
44
44
  >>> class Add(cirq.ArithmeticGate):
45
45
  ... def __init__(
46
46
  ... self,
47
- ... target_register: '[int, Sequence[int]]',
48
- ... input_register: 'Union[int, Sequence[int]]',
47
+ ... target_register: int | Sequence[int],
48
+ ... input_register: int | Sequence[int],
49
49
  ... ):
50
50
  ... self.target_register = target_register
51
51
  ... self.input_register = input_register
52
52
  ...
53
- ... def registers(self) -> 'Sequence[Union[int, Sequence[int]]]':
53
+ ... def registers(self) -> Sequence[int | Sequence[int]]:
54
54
  ... return self.target_register, self.input_register
55
55
  ...
56
56
  ... def with_registers(
57
- ... self, *new_registers: 'Union[int, Sequence[int]]'
57
+ ... self, *new_registers: int | Sequence[int]
58
58
  ... ) -> 'Add':
59
59
  ... return Add(*new_registers)
60
60
  ...
61
- ... def apply(self, *register_values: int) -> 'Union[int, Iterable[int]]':
61
+ ... def apply(self, *register_values: int) -> int | Iterable[int]:
62
62
  ... return sum(register_values)
63
63
  >>> cirq.unitary(
64
64
  ... Add(target_register=[2, 2],
cirq/ops/common_gates.py CHANGED
@@ -222,25 +222,17 @@ class XPowGate(eigen_gate.EigenGate):
222
222
  A `cirq.ControlledGate` (or `cirq.CXPowGate` if possible) representing
223
223
  `self` controlled by the given control values and qubits.
224
224
  """
225
- if control_values and not isinstance(control_values, cv.AbstractControlValues):
226
- control_values = cv.ProductOfSums(
227
- tuple(
228
- (val,) if isinstance(val, int) else tuple(sorted(val)) for val in control_values
229
- )
230
- )
231
225
  result = super().controlled(num_controls, control_values, control_qid_shape)
232
226
  if (
233
227
  self._global_shift == 0
234
228
  and isinstance(result, controlled_gate.ControlledGate)
235
229
  and isinstance(result.control_values, cv.ProductOfSums)
236
- and result.control_values[-1] == (1,)
237
- and result.control_qid_shape[-1] == 2
230
+ and result.control_values.is_trivial
238
231
  ):
239
- return cirq.CXPowGate(
240
- exponent=self._exponent, global_shift=self._global_shift
241
- ).controlled(
242
- result.num_controls() - 1, result.control_values[:-1], result.control_qid_shape[:-1]
243
- )
232
+ if result.control_qid_shape == (2,):
233
+ return cirq.CXPowGate(exponent=self._exponent)
234
+ if result.control_qid_shape == (2, 2):
235
+ return cirq.CCXPowGate(exponent=self._exponent)
244
236
  return result
245
237
 
246
238
  def _pauli_expansion_(self) -> value.LinearDict[str]:
@@ -694,25 +686,17 @@ class ZPowGate(eigen_gate.EigenGate):
694
686
  A `cirq.ControlledGate` (or `cirq.CZPowGate` if possible) representing
695
687
  `self` controlled by the given control values and qubits.
696
688
  """
697
- if control_values and not isinstance(control_values, cv.AbstractControlValues):
698
- control_values = cv.ProductOfSums(
699
- tuple(
700
- (val,) if isinstance(val, int) else tuple(sorted(val)) for val in control_values
701
- )
702
- )
703
689
  result = super().controlled(num_controls, control_values, control_qid_shape)
704
690
  if (
705
691
  self._global_shift == 0
706
692
  and isinstance(result, controlled_gate.ControlledGate)
707
693
  and isinstance(result.control_values, cv.ProductOfSums)
708
- and result.control_values[-1] == (1,)
709
- and result.control_qid_shape[-1] == 2
694
+ and result.control_values.is_trivial
710
695
  ):
711
- return cirq.CZPowGate(
712
- exponent=self._exponent, global_shift=self._global_shift
713
- ).controlled(
714
- result.num_controls() - 1, result.control_values[:-1], result.control_qid_shape[:-1]
715
- )
696
+ if result.control_qid_shape == (2,):
697
+ return cirq.CZPowGate(exponent=self._exponent)
698
+ if result.control_qid_shape == (2, 2):
699
+ return cirq.CCZPowGate(exponent=self._exponent)
716
700
  return result
717
701
 
718
702
  def _qid_shape_(self) -> tuple[int, ...]:
@@ -1138,26 +1122,14 @@ class CZPowGate(gate_features.InterchangeableQubitsGate, eigen_gate.EigenGate):
1138
1122
  A `cirq.ControlledGate` (or `cirq.CCZPowGate` if possible) representing
1139
1123
  `self` controlled by the given control values and qubits.
1140
1124
  """
1141
- if control_values and not isinstance(control_values, cv.AbstractControlValues):
1142
- control_values = cv.ProductOfSums(
1143
- tuple(
1144
- (val,) if isinstance(val, int) else tuple(sorted(val)) for val in control_values
1145
- )
1146
- )
1147
1125
  result = super().controlled(num_controls, control_values, control_qid_shape)
1148
- if (
1149
- self._global_shift == 0
1150
- and isinstance(result, controlled_gate.ControlledGate)
1151
- and isinstance(result.control_values, cv.ProductOfSums)
1152
- and result.control_values[-1] == (1,)
1153
- and result.control_qid_shape[-1] == 2
1154
- ):
1155
- return cirq.CCZPowGate(
1156
- exponent=self._exponent, global_shift=self._global_shift
1157
- ).controlled(
1158
- result.num_controls() - 1, result.control_values[:-1], result.control_qid_shape[:-1]
1159
- )
1160
- return result
1126
+ if self._global_shift != 0 or not isinstance(result, controlled_gate.ControlledGate):
1127
+ return result
1128
+ return ZPowGate(exponent=self.exponent).controlled(
1129
+ num_controls=result.num_controls() + 1,
1130
+ control_values=result.control_values & cv.ProductOfSums([1]),
1131
+ control_qid_shape=result.control_qid_shape + (2,),
1132
+ )
1161
1133
 
1162
1134
  def _circuit_diagram_info_(self, args: cirq.CircuitDiagramInfoArgs) -> cirq.CircuitDiagramInfo:
1163
1135
  return protocols.CircuitDiagramInfo(
@@ -1340,26 +1312,14 @@ class CXPowGate(eigen_gate.EigenGate):
1340
1312
  A `cirq.ControlledGate` (or `cirq.CCXPowGate` if possible) representing
1341
1313
  `self` controlled by the given control values and qubits.
1342
1314
  """
1343
- if control_values and not isinstance(control_values, cv.AbstractControlValues):
1344
- control_values = cv.ProductOfSums(
1345
- tuple(
1346
- (val,) if isinstance(val, int) else tuple(sorted(val)) for val in control_values
1347
- )
1348
- )
1349
1315
  result = super().controlled(num_controls, control_values, control_qid_shape)
1350
- if (
1351
- self._global_shift == 0
1352
- and isinstance(result, controlled_gate.ControlledGate)
1353
- and isinstance(result.control_values, cv.ProductOfSums)
1354
- and result.control_values[-1] == (1,)
1355
- and result.control_qid_shape[-1] == 2
1356
- ):
1357
- return cirq.CCXPowGate(
1358
- exponent=self._exponent, global_shift=self._global_shift
1359
- ).controlled(
1360
- result.num_controls() - 1, result.control_values[:-1], result.control_qid_shape[:-1]
1361
- )
1362
- return result
1316
+ if self._global_shift != 0 or not isinstance(result, controlled_gate.ControlledGate):
1317
+ return result
1318
+ return XPowGate(exponent=self.exponent).controlled(
1319
+ num_controls=result.num_controls() + 1,
1320
+ control_values=result.control_values & cv.ProductOfSums([1]),
1321
+ control_qid_shape=result.control_qid_shape + (2,),
1322
+ )
1363
1323
 
1364
1324
  def _qasm_(self, args: cirq.QasmArgs, qubits: tuple[cirq.Qid, ...]) -> str | None:
1365
1325
  if self._exponent != 1:
@@ -109,19 +109,19 @@ def test_z_init():
109
109
 
110
110
 
111
111
  @pytest.mark.parametrize(
112
- 'input_gate, specialized_output',
112
+ 'input_gate, specialized_output, base_gate',
113
113
  [
114
- (cirq.Z, cirq.CZ),
115
- (cirq.CZ, cirq.CCZ),
116
- (cirq.X, cirq.CX),
117
- (cirq.CX, cirq.CCX),
118
- (cirq.ZPowGate(exponent=0.5), cirq.CZPowGate(exponent=0.5)),
119
- (cirq.CZPowGate(exponent=0.5), cirq.CCZPowGate(exponent=0.5)),
120
- (cirq.XPowGate(exponent=0.5), cirq.CXPowGate(exponent=0.5)),
121
- (cirq.CXPowGate(exponent=0.5), cirq.CCXPowGate(exponent=0.5)),
114
+ (cirq.Z, cirq.CZ, cirq.Z),
115
+ (cirq.CZ, cirq.CCZ, cirq.Z),
116
+ (cirq.X, cirq.CX, cirq.X),
117
+ (cirq.CX, cirq.CCX, cirq.X),
118
+ (cirq.ZPowGate(exponent=0.5), cirq.CZPowGate(exponent=0.5), cirq.S),
119
+ (cirq.CZPowGate(exponent=0.5), cirq.CCZPowGate(exponent=0.5), cirq.S),
120
+ (cirq.XPowGate(exponent=0.5), cirq.CXPowGate(exponent=0.5), cirq.XPowGate(exponent=0.5)),
121
+ (cirq.CXPowGate(exponent=0.5), cirq.CCXPowGate(exponent=0.5), cirq.XPowGate(exponent=0.5)),
122
122
  ],
123
123
  )
124
- def test_specialized_control(input_gate, specialized_output):
124
+ def test_specialized_control(input_gate, specialized_output, base_gate):
125
125
  # Single qubit control on the input gate gives the specialized output
126
126
  assert input_gate.controlled() == specialized_output
127
127
  assert input_gate.controlled(num_controls=1) == specialized_output
@@ -151,20 +151,24 @@ def test_specialized_control(input_gate, specialized_output):
151
151
  )
152
152
 
153
153
  # When a control_value 1 qubit is not acting first, results in a regular
154
- # ControlledGate on the input gate instance.
154
+ # ControlledGate on the base gate instance, with any extra control layer
155
+ # of the input gate being absorbed into the ControlledGate.
156
+ absorbed = 0 if base_gate == input_gate else 1
157
+ absorbed_values = ((1,),) * absorbed
158
+ absorbed_shape = (2,) * absorbed
155
159
  assert input_gate.controlled(num_controls=1, control_qid_shape=(3,)) == cirq.ControlledGate(
156
- input_gate, num_controls=1, control_qid_shape=(3,)
160
+ base_gate, num_controls=1 + absorbed, control_qid_shape=(3,) + absorbed_shape
157
161
  )
158
162
  assert input_gate.controlled(control_values=((0,), (1,), (0,))) == cirq.ControlledGate(
159
- input_gate, num_controls=3, control_values=((0,), (1,), (0,))
163
+ base_gate, num_controls=3 + absorbed, control_values=((0,), (1,), (0,)) + absorbed_values
160
164
  )
161
165
  assert input_gate.controlled(control_qid_shape=(3, 2, 3)) == cirq.ControlledGate(
162
- input_gate, num_controls=3, control_qid_shape=(3, 2, 3)
166
+ base_gate, num_controls=3 + absorbed, control_qid_shape=(3, 2, 3) + absorbed_shape
163
167
  )
164
168
  assert input_gate.controlled(control_qid_shape=(3,)).controlled(
165
169
  control_qid_shape=(2,)
166
170
  ).controlled(control_qid_shape=(4,)) != cirq.ControlledGate(
167
- input_gate, num_controls=3, control_qid_shape=(3, 2, 4)
171
+ base_gate, num_controls=3 + absorbed, control_qid_shape=(3, 2, 4) + absorbed_shape
168
172
  )
169
173
 
170
174
 
@@ -151,12 +151,7 @@ class ControlledGate(raw_types.Gate):
151
151
  )
152
152
  # Prefer the subgate controlled version if available
153
153
  if self != controlled_sub_gate:
154
- # Prevent 2-cycle from appearing in the recursive decomposition
155
- # TODO: Remove after #7241 is resolved
156
- if not isinstance(controlled_sub_gate, ControlledGate) or not isinstance(
157
- controlled_sub_gate.sub_gate, common_gates.CZPowGate
158
- ):
159
- return controlled_sub_gate.on(*qubits)
154
+ return controlled_sub_gate.on(*qubits)
160
155
  if (
161
156
  protocols.has_unitary(self.sub_gate)
162
157
  and protocols.num_qubits(self.sub_gate) == 1
cirq/ops/op_tree.py CHANGED
@@ -40,7 +40,7 @@ document(
40
40
  - A list of operations (a `list[cirq.Operation]`).
41
41
  - A list of lists of operations (a `list[list[cirq.Operation]]`).
42
42
  - A list mixing operations and generators of operations
43
- (a `list[Union[cirq.Operation, Iterator[cirq.Operation]]]`).
43
+ (a `list[cirq.Operation | Iterator[cirq.Operation]]`).
44
44
  - Generally anything that can be iterated, and its items iterated, and
45
45
  so forth recursively until a bottom layer of operations is found.
46
46
  """,
cirq/ops/raw_types.py CHANGED
@@ -449,7 +449,7 @@ class Gate(metaclass=value.ABCMetaImplementAnyOneOf):
449
449
 
450
450
  @value.alternative(requires='_num_qubits_', implementation=_default_shape_from_num_qubits)
451
451
  def _qid_shape_(self) -> tuple[int, ...]:
452
- """Returns a Tuple containing the number of quantum levels of each qid
452
+ """Returns a tuple containing the number of quantum levels of each qid
453
453
  the gate acts on. E.g. (2, 2, 2) for the three-qubit CCZ gate and
454
454
  (3, 3) for a 2-qutrit ternary gate.
455
455
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cirq-core
3
- Version: 1.6.0.dev20250521215048
3
+ Version: 1.6.0.dev20250523155818
4
4
  Summary: A framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.
5
5
  Home-page: http://github.com/quantumlib/cirq
6
6
  Author: The Cirq Developers
@@ -4,8 +4,8 @@ cirq/_compat_test.py,sha256=ZSmenkbqEfRJpGsvutmV8vgIlfZCWj8GAVgi3t5YRso,34635
4
4
  cirq/_doc.py,sha256=BrnoABo1hk5RgB3Cgww4zLHUfiyFny0F1V-tOMCbdaU,2909
5
5
  cirq/_import.py,sha256=ixBu4EyGl46Ram2cP3p5eZVEFDW5L2DS-VyTjz4N9iw,8429
6
6
  cirq/_import_test.py,sha256=oF4izzOVZLc7NZ0aZHFcGv-r01eiFFt_JORx_x7_D4s,1089
7
- cirq/_version.py,sha256=dakA8JAKX51-zN06snON2OjWAWjAN-yseCsEttLOSYw,1206
8
- cirq/_version_test.py,sha256=YWy60E0GGhJ24yQUm2ScvytTzxliQeRABpDz3xF_2oE,155
7
+ cirq/_version.py,sha256=LLxwzI15uCCvDa3SM2lM_PHPTGZ3HWJS66wMi96J36U,1206
8
+ cirq/_version_test.py,sha256=oSKD2eT8ftngXLKW-pqKeA7vt83MJrXqgjbuS7WN0Tc,155
9
9
  cirq/conftest.py,sha256=X7yLFL8GLhg2CjPw0hp5e_dGASfvHx1-QT03aUbhKJw,1168
10
10
  cirq/json_resolver_cache.py,sha256=S-zUVI4D_XnAxyR6z7WHDImCVmB_awJp6EStD1-CNPU,13621
11
11
  cirq/py.typed,sha256=VFSlmh_lNwnaXzwY-ZuW-C2Ws5PkuDoVgBdNCs0jXJE,63
@@ -16,7 +16,7 @@ cirq/circuits/_box_drawing_character_data.py,sha256=hExbMJHm9LGORhlhNiUvPiHquv4p
16
16
  cirq/circuits/_box_drawing_character_data_test.py,sha256=GyiNQDtiu_drzEe_y8DOXCFRYDKr2k8KetXN5RVDp18,1668
17
17
  cirq/circuits/_bucket_priority_queue.py,sha256=U564r2mou4aZsOlpVYiZCgirqS6mVznG3ESyawBt4gE,6749
18
18
  cirq/circuits/_bucket_priority_queue_test.py,sha256=7XXeGMhz-dyfo9xeqbBKSxJ0hHVuakGMR45Zp7she88,5324
19
- cirq/circuits/circuit.py,sha256=thMCMQkCtm11YAMyPH121kPNMnE0nH4Zy6bpd7nBcPg,118908
19
+ cirq/circuits/circuit.py,sha256=om-XK7MQzTXssrKf8KOA4OPCZwOUQ4FWfVmFlV-6ctk,118908
20
20
  cirq/circuits/circuit_operation.py,sha256=5LN0vXQT8hoUP8Vhkozm3d6hPqw0BUX5WBhKMr5qOng,36252
21
21
  cirq/circuits/circuit_operation_test.py,sha256=hSwtOjX_GVnYtFXBVPVu_LjY12CPLWx8r8Y6Vz42v-I,48868
22
22
  cirq/circuits/circuit_test.py,sha256=8lOt-U48Taxa2DzGG0XP0uXgzA0mAJAKaVpkXDzmJ98,162773
@@ -254,7 +254,7 @@ cirq/ion/__init__.py,sha256=F6tf4JZOGpDdxX0FxT42qgq8rF96ZTFHMJ0OV09Yj1c,787
254
254
  cirq/linalg/__init__.py,sha256=0dSlIBy-TVzf7b_-rLLlrS8ZFkgCfYg0pJjWs72xYOk,4045
255
255
  cirq/linalg/combinators.py,sha256=7V9oNSojc466NvOXyt4FMu50yDQ77iM5N4oZ37fV9tc,5347
256
256
  cirq/linalg/combinators_test.py,sha256=GohGZwFF87XW37sZtldaG5TlDp5-DA0Nc7k2gTZIlNo,4922
257
- cirq/linalg/decompositions.py,sha256=vvCLLbOa4dKdWxEDlSzxdd31kZWr0d2nJ7k2YC2sYkE,38573
257
+ cirq/linalg/decompositions.py,sha256=q0h8waz3Xn_KjY83glyJVxk4ZfXbh1Dz-uXriWv_VjA,38573
258
258
  cirq/linalg/decompositions_test.py,sha256=b61HGNDPhykEazp48lHk8Kgw08cKCMW4ZHtVDN8yDFA,25472
259
259
  cirq/linalg/diagonalize.py,sha256=3PpGmlI7CCkQS3JKr0AkgdHOZedXLniZkxmUtpCNQPk,10074
260
260
  cirq/linalg/diagonalize_test.py,sha256=c6-ksL2PDZ5hqr2ib2iS0uEnJuCHSv16cuiJK4PLjok,9161
@@ -271,7 +271,7 @@ cirq/neutral_atoms/convert_to_neutral_atom_gates.py,sha256=2sIJd5CzWjehMi_rfFW8Q
271
271
  cirq/neutral_atoms/convert_to_neutral_atom_gates_test.py,sha256=fhCJubuFa81aRwd__sgBLc7D2z5VnwfzH-0lZvEv6jo,1905
272
272
  cirq/neutral_atoms/neutral_atom_devices.py,sha256=2q7sPeQIb9UbseTPyRSaHeo4dZKF_EcNUDH5u6eIb98,1394
273
273
  cirq/ops/__init__.py,sha256=HNtQJBFeiJJ-MbbNqe3f6KfcmZ_4YP5oTcCcZnGkYbY,8318
274
- cirq/ops/arithmetic_operation.py,sha256=838sWl6eARWQQV9eNXyGMMvW0m0nX51bHbLz_FKvlTQ,10086
274
+ cirq/ops/arithmetic_operation.py,sha256=FO2ne5ZHIcUCJySgOC60UApfDtfVBaZqlrhM46f7-34,10051
275
275
  cirq/ops/arithmetic_operation_test.py,sha256=F5fPQF_sRWi8qyP_SgDzJ8kfX0jUVMj59_VOPpbXH_0,4938
276
276
  cirq/ops/boolean_hamiltonian.py,sha256=x25fraM9NNs-XzDKDl2AZ1AMpkVovfe-dNm_0wOolyI,14927
277
277
  cirq/ops/boolean_hamiltonian_test.py,sha256=g99wUCiC_fap2UCkO7StpwKzR3GomESwbLXLL785VOY,8577
@@ -283,11 +283,11 @@ cirq/ops/common_channels.py,sha256=BD8-qJDGITOSP0bJVcWGgjbI5dj2dwFkSzzWb-qgfcc,3
283
283
  cirq/ops/common_channels_test.py,sha256=Qzw7nDrWgO1GDB7qkN2YUZi3NDswvvBJ9TEnSNakJX4,30755
284
284
  cirq/ops/common_gate_families.py,sha256=trK4ZXCKqYahZkyuwaAn-TcjUu7gmI9n9geO8PYiRGE,8606
285
285
  cirq/ops/common_gate_families_test.py,sha256=uePsNHQJG7zr28P5KYBBiRQHtl5nYl3tYPVjl5jH4mM,5312
286
- cirq/ops/common_gates.py,sha256=swHOtGrUEfwwQEJhSortO_5-PiaZr0f9dTkMYk0YMno,57892
287
- cirq/ops/common_gates_test.py,sha256=0q09MBVhYuLpfi1xejTrmzgyP4QaeCS-oW_aHOLKje8,46909
286
+ cirq/ops/common_gates.py,sha256=uNDMUj3mru-WsfLPJrxtiXfKfsZ5y8y3Ngha0AsZaXs,56206
287
+ cirq/ops/common_gates_test.py,sha256=Yan_k_H8xBmBWAWpKdB-gZIbhlA6vo0EpTjCKMJgt1Q,47367
288
288
  cirq/ops/control_values.py,sha256=GrNi8YJZSZDCl8Su6Ocimvd1R1SejFJjVu2thcJ8VLI,13346
289
289
  cirq/ops/control_values_test.py,sha256=JYaFLJSIqZSaQ94y0kyWRRVzcQ9mgc6-s1ws2q4EiAg,12943
290
- cirq/ops/controlled_gate.py,sha256=YzHEkJdR0lFQPJee8ITcQQtRMmRv3I8tjHCtzEtsKSA,15632
290
+ cirq/ops/controlled_gate.py,sha256=8VRUW95foVgPTFwDvuBnT84M8LiGH4pzpRZVaDOAtHk,15331
291
291
  cirq/ops/controlled_gate_test.py,sha256=VcBb572S17Boe70TJddU-sqhaJqZSUKiqGstJzSspsE,26765
292
292
  cirq/ops/controlled_operation.py,sha256=l0pjUfru39HBuAbBkRCqJmrJDxah0JOFxXXILcUt0v8,13978
293
293
  cirq/ops/controlled_operation_test.py,sha256=qXpnUoeWmOQaTMZPAuuICtX9Idf-JWtdARTsTENv54g,16546
@@ -327,7 +327,7 @@ cirq/ops/mixed_unitary_channel.py,sha256=guje2Jbj2uWG8NSlwazK1r-XjxlTHA6s7ti52tW
327
327
  cirq/ops/mixed_unitary_channel_test.py,sha256=QXnkw6-kP9HowdoV5aUtnEBAGG0bjqgzxKYe0dbV5XY,5277
328
328
  cirq/ops/named_qubit.py,sha256=e2GdyDfeyKNgmXiiQh8yW59t4qDIvAEzXjb_NfyhgHs,9997
329
329
  cirq/ops/named_qubit_test.py,sha256=MHjKXSxHCVV3rUYtsQ0_FZVV6Sh--r3zdGc0rmmdaBs,5257
330
- cirq/ops/op_tree.py,sha256=UCuBJZtIpDYhTtnNTcuPZaXcsXTIxvOE-8OGp4uEzsI,5283
330
+ cirq/ops/op_tree.py,sha256=w2jnYMi8UtV13CROphi4Gesydc5YzmuvXJZsIAGm65k,5277
331
331
  cirq/ops/op_tree_test.py,sha256=1WAIeVkmmEU3wRaEnM9DdGBU0_CVbYMwgunIO2LrBc4,5737
332
332
  cirq/ops/parallel_gate.py,sha256=B6uwL0lPJLiv_TL62U4HGyv7FZn_CvljSUK7jKTuu-M,6257
333
333
  cirq/ops/parallel_gate_test.py,sha256=ruFdVnB8PS9LOPQLPZACdf0nh3l-sApQe9bk10EDBJI,6463
@@ -366,7 +366,7 @@ cirq/ops/qubit_order_or_list.py,sha256=5kChRv1gUnBKB-kF6okXoXcCa5CXbJ6HoB6ETpfl3
366
366
  cirq/ops/qubit_order_test.py,sha256=e8gBGSCHyKu9nJHPwEPVO060uDpJCpO0ok5n6toR0PU,4274
367
367
  cirq/ops/random_gate_channel.py,sha256=i4eg9GA4CF6ZWQRrICa5lfYqvdZzN8oLEWwXHcxRStM,5115
368
368
  cirq/ops/random_gate_channel_test.py,sha256=p-xtDOMIYBJ1wVHLJmrALi-ZU978l3AVuX0kgoan1Ac,8523
369
- cirq/ops/raw_types.py,sha256=1gi75D_J6MNQRNy47vjyC9ZnwNwTttJqYHatOO4xS4g,43579
369
+ cirq/ops/raw_types.py,sha256=IAMUkEn0lFrvlr0Ay_B-C0aZN2_azuUGk6HLzkLYl5E,43579
370
370
  cirq/ops/raw_types_test.py,sha256=YyyR1UDyW4Vail8Zsvz-nCLlqRsnjCnuzQEBn2oEZyM,34751
371
371
  cirq/ops/state_preparation_channel.py,sha256=3qbqrrYaVN2eHL1qiBHcItj1Pzjxhtq10tSEkRz9GNM,4781
372
372
  cirq/ops/state_preparation_channel_test.py,sha256=Seis5RvdCCSgMlED9JYKZIfAElJdtoUHSPgoYTiMEnU,6023
@@ -1220,8 +1220,8 @@ cirq/work/sampler.py,sha256=rxbMWvrhu3gfNSBjZKozw28lLKVvBAS_1EGyPdYe8Xg,19041
1220
1220
  cirq/work/sampler_test.py,sha256=SsMrRvLDYELyOAWLKISjkdEfrBwLYWRsT6D8WrsLM3Q,13533
1221
1221
  cirq/work/zeros_sampler.py,sha256=Fs2JWwq0n9zv7_G5Rm-9vPeHUag7uctcMOHg0JTkZpc,2371
1222
1222
  cirq/work/zeros_sampler_test.py,sha256=lQLgQDGBLtfImryys2HzQ2jOSGxHgc7-koVBUhv8qYk,3345
1223
- cirq_core-1.6.0.dev20250521215048.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1224
- cirq_core-1.6.0.dev20250521215048.dist-info/METADATA,sha256=FAKKEE5Hu3OJpcByLNp3rKZTTqaRr5M5ZKXFVWIpN88,4857
1225
- cirq_core-1.6.0.dev20250521215048.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
1226
- cirq_core-1.6.0.dev20250521215048.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1227
- cirq_core-1.6.0.dev20250521215048.dist-info/RECORD,,
1223
+ cirq_core-1.6.0.dev20250523155818.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1224
+ cirq_core-1.6.0.dev20250523155818.dist-info/METADATA,sha256=DxfVnOq9K86Aa6H5FaJiTb9KWNS6ojbgrCGUfys5ytE,4857
1225
+ cirq_core-1.6.0.dev20250523155818.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
1226
+ cirq_core-1.6.0.dev20250523155818.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1227
+ cirq_core-1.6.0.dev20250523155818.dist-info/RECORD,,