cirq-core 1.5.0.dev20241118045917__py3-none-any.whl → 1.5.0.dev20241119000519__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, 10, 0): # pragma: no cover
28
28
  'of cirq (e.g. "python -m pip install cirq==1.1.*")'
29
29
  )
30
30
 
31
- __version__ = "1.5.0.dev20241118045917"
31
+ __version__ = "1.5.0.dev20241119000519"
cirq/_version_test.py CHANGED
@@ -3,4 +3,4 @@ import cirq
3
3
 
4
4
 
5
5
  def test_version():
6
- assert cirq.__version__ == "1.5.0.dev20241118045917"
6
+ assert cirq.__version__ == "1.5.0.dev20241119000519"
cirq/circuits/circuit.py CHANGED
@@ -1318,14 +1318,19 @@ class AbstractCircuit(abc.ABC):
1318
1318
  return self
1319
1319
  return self._from_moments(resolved_moments)
1320
1320
 
1321
- def _qasm_(self) -> str:
1322
- return self.to_qasm()
1321
+ def _qasm_(self, args: Optional['cirq.QasmArgs'] = None) -> str:
1322
+ if args is None:
1323
+ output = self._to_qasm_output()
1324
+ else:
1325
+ output = self._to_qasm_output(precision=args.precision, version=args.version)
1326
+ return str(output)
1323
1327
 
1324
1328
  def _to_qasm_output(
1325
1329
  self,
1326
1330
  header: Optional[str] = None,
1327
1331
  precision: int = 10,
1328
1332
  qubit_order: 'cirq.QubitOrderOrList' = ops.QubitOrder.DEFAULT,
1333
+ version: str = '2.0',
1329
1334
  ) -> 'cirq.QasmOutput':
1330
1335
  """Returns a QASM object equivalent to the circuit.
1331
1336
 
@@ -1335,6 +1340,8 @@ class AbstractCircuit(abc.ABC):
1335
1340
  precision: Number of digits to use when representing numbers.
1336
1341
  qubit_order: Determines how qubits are ordered in the QASM
1337
1342
  register.
1343
+ version: Version of OpenQASM to render as output. Defaults
1344
+ to OpenQASM 2.0. For OpenQASM 3.0, set this to '3.0'.
1338
1345
  """
1339
1346
  if header is None:
1340
1347
  header = f'Generated from Cirq v{cirq._version.__version__}'
@@ -1344,7 +1351,7 @@ class AbstractCircuit(abc.ABC):
1344
1351
  qubits=qubits,
1345
1352
  header=header,
1346
1353
  precision=precision,
1347
- version='2.0',
1354
+ version=version,
1348
1355
  )
1349
1356
 
1350
1357
  def to_qasm(
@@ -1352,6 +1359,7 @@ class AbstractCircuit(abc.ABC):
1352
1359
  header: Optional[str] = None,
1353
1360
  precision: int = 10,
1354
1361
  qubit_order: 'cirq.QubitOrderOrList' = ops.QubitOrder.DEFAULT,
1362
+ version: str = '2.0',
1355
1363
  ) -> str:
1356
1364
  """Returns QASM equivalent to the circuit.
1357
1365
 
@@ -1361,9 +1369,11 @@ class AbstractCircuit(abc.ABC):
1361
1369
  precision: Number of digits to use when representing numbers.
1362
1370
  qubit_order: Determines how qubits are ordered in the QASM
1363
1371
  register.
1372
+ version: Version of OpenQASM to output. Defaults to OpenQASM 2.0.
1373
+ Specify '3.0' if OpenQASM 3.0 is desired.
1364
1374
  """
1365
1375
 
1366
- return str(self._to_qasm_output(header, precision, qubit_order))
1376
+ return str(self._to_qasm_output(header, precision, qubit_order, version))
1367
1377
 
1368
1378
  def save_qasm(
1369
1379
  self,
@@ -3579,7 +3579,7 @@ def test_insert_operations_errors():
3579
3579
  @pytest.mark.parametrize('circuit_cls', [cirq.Circuit, cirq.FrozenCircuit])
3580
3580
  def test_to_qasm(circuit_cls):
3581
3581
  q0 = cirq.NamedQubit('q0')
3582
- circuit = circuit_cls(cirq.X(q0))
3582
+ circuit = circuit_cls(cirq.X(q0), cirq.measure(q0, key='mmm'))
3583
3583
  assert circuit.to_qasm() == cirq.qasm(circuit)
3584
3584
  assert (
3585
3585
  circuit.to_qasm()
@@ -3591,9 +3591,29 @@ include "qelib1.inc";
3591
3591
 
3592
3592
  // Qubits: [q0]
3593
3593
  qreg q[1];
3594
+ creg m_mmm[1];
3595
+
3596
+
3597
+ x q[0];
3598
+ measure q[0] -> m_mmm[0];
3599
+ """
3600
+ )
3601
+ assert circuit.to_qasm(version="3.0") == cirq.qasm(circuit, args=cirq.QasmArgs(version="3.0"))
3602
+ assert (
3603
+ circuit.to_qasm(version="3.0")
3604
+ == f"""// Generated from Cirq v{cirq.__version__}
3605
+
3606
+ OPENQASM 3.0;
3607
+ include "stdgates.inc";
3608
+
3609
+
3610
+ // Qubits: [q0]
3611
+ qubit[1] q;
3612
+ bit[1] m_mmm;
3594
3613
 
3595
3614
 
3596
3615
  x q[0];
3616
+ m_mmm[0] = measure q[0];
3597
3617
  """
3598
3618
  )
3599
3619
 
@@ -54,7 +54,7 @@ class QasmUGate(ops.Gate):
54
54
  return True
55
55
 
56
56
  def _qasm_(self, qubits: Tuple['cirq.Qid', ...], args: 'cirq.QasmArgs') -> str:
57
- args.validate_version('2.0')
57
+ args.validate_version('2.0', '3.0')
58
58
  return args.format(
59
59
  'u3({0:half_turns},{1:half_turns},{2:half_turns}) {3};\n',
60
60
  self.theta,
@@ -246,7 +246,7 @@ class QasmOutput:
246
246
  return ''.join(output)
247
247
 
248
248
  def _write_qasm(self, output_func: Callable[[str], None]) -> None:
249
- self.args.validate_version('2.0')
249
+ self.args.validate_version('2.0', '3.0')
250
250
 
251
251
  # Generate nice line spacing
252
252
  line_gap = [0]
@@ -267,8 +267,12 @@ class QasmOutput:
267
267
  output('\n')
268
268
 
269
269
  # Version
270
- output('OPENQASM 2.0;\n')
271
- output('include "qelib1.inc";\n')
270
+ output(f'OPENQASM {self.args.version};\n')
271
+ if self.args.version == '2.0':
272
+ output('include "qelib1.inc";\n')
273
+ else:
274
+ output('include "stdgates.inc";\n')
275
+
272
276
  output_line_gap(2)
273
277
 
274
278
  # Function definitions
@@ -276,9 +280,13 @@ class QasmOutput:
276
280
 
277
281
  # Register definitions
278
282
  # Qubit registers
283
+
279
284
  output(f"// Qubits: [{', '.join(map(str, self.qubits))}]\n")
280
285
  if len(self.qubits) > 0:
281
- output(f'qreg q[{len(self.qubits)}];\n')
286
+ if self.args.version == '2.0':
287
+ output(f'qreg q[{len(self.qubits)}];\n')
288
+ else:
289
+ output(f'qubit[{len(self.qubits)}] q;\n')
282
290
  # Classical registers
283
291
  # Pick an id for the creg that will store each measurement
284
292
  already_output_keys: Set[str] = set()
@@ -288,11 +296,15 @@ class QasmOutput:
288
296
  continue
289
297
  already_output_keys.add(key)
290
298
  meas_id = self.args.meas_key_id_map[key]
291
- comment = self.meas_comments[key]
292
- if comment is None:
293
- output(f'creg {meas_id}[{len(meas.qubits)}];\n')
299
+ if self.meas_comments[key] is not None:
300
+ comment = f' // Measurement: {self.meas_comments[key]}'
301
+ else:
302
+ comment = ''
303
+
304
+ if self.args.version == '2.0':
305
+ output(f'creg {meas_id}[{len(meas.qubits)}];{comment}\n')
294
306
  else:
295
- output(f'creg {meas_id}[{len(meas.qubits)}]; // Measurement: {comment}\n')
307
+ output(f'bit[{len(meas.qubits)}] {meas_id};{comment}\n')
296
308
  # In OpenQASM 2.0, the transformation of global phase gates is ignored.
297
309
  # Therefore, no newline is created when the operations contained in
298
310
  # a circuit consist only of global phase gates.
@@ -225,7 +225,7 @@ rx(pi*0.123) q[0];
225
225
  def test_version():
226
226
  (q0,) = _make_qubits(1)
227
227
  with pytest.raises(ValueError):
228
- output = cirq.QasmOutput((), (q0,), version='3.0')
228
+ output = cirq.QasmOutput((), (q0,), version='4.0')
229
229
  _ = str(output)
230
230
 
231
231
 
@@ -216,7 +216,7 @@ class ClassicallyControlledOperation(raw_types.Operation):
216
216
  return local_keys.union(protocols.control_keys(self._sub_operation))
217
217
 
218
218
  def _qasm_(self, args: 'cirq.QasmArgs') -> Optional[str]:
219
- args.validate_version('2.0')
219
+ args.validate_version('2.0', '3.0')
220
220
  if len(self._conditions) > 1:
221
221
  raise ValueError('QASM does not support multiple conditions.')
222
222
  subop_qasm = protocols.qasm(self._sub_operation, args=args)
@@ -702,7 +702,7 @@ class ResetChannel(raw_types.Gate):
702
702
  return True
703
703
 
704
704
  def _qasm_(self, args: 'cirq.QasmArgs', qubits: Tuple['cirq.Qid', ...]) -> Optional[str]:
705
- args.validate_version('2.0')
705
+ args.validate_version('2.0', '3.0')
706
706
  return args.format('reset {0};\n', qubits[0])
707
707
 
708
708
  def _qid_shape_(self):
cirq/ops/common_gates.py CHANGED
@@ -272,7 +272,7 @@ class XPowGate(eigen_gate.EigenGate):
272
272
  )
273
273
 
274
274
  def _qasm_(self, args: 'cirq.QasmArgs', qubits: Tuple['cirq.Qid', ...]) -> Optional[str]:
275
- args.validate_version('2.0')
275
+ args.validate_version('2.0', '3.0')
276
276
  if self._global_shift == 0:
277
277
  if self._exponent == 1:
278
278
  return args.format('x {0};\n', qubits[0])
@@ -374,7 +374,7 @@ class Rx(XPowGate):
374
374
  return f'cirq.Rx(rads={proper_repr(self._rads)})'
375
375
 
376
376
  def _qasm_(self, args: 'cirq.QasmArgs', qubits: Tuple['cirq.Qid', ...]) -> Optional[str]:
377
- args.validate_version('2.0')
377
+ args.validate_version('2.0', '3.0')
378
378
  return args.format('rx({0:half_turns}) {1};\n', self._exponent, qubits[0])
379
379
 
380
380
  def _json_dict_(self) -> Dict[str, Any]:
@@ -478,7 +478,7 @@ class YPowGate(eigen_gate.EigenGate):
478
478
  )
479
479
 
480
480
  def _qasm_(self, args: 'cirq.QasmArgs', qubits: Tuple['cirq.Qid', ...]) -> Optional[str]:
481
- args.validate_version('2.0')
481
+ args.validate_version('2.0', '3.0')
482
482
  if self._exponent == 1 and self.global_shift != -0.5:
483
483
  return args.format('y {0};\n', qubits[0])
484
484
 
@@ -560,7 +560,7 @@ class Ry(YPowGate):
560
560
  return f'cirq.Ry(rads={proper_repr(self._rads)})'
561
561
 
562
562
  def _qasm_(self, args: 'cirq.QasmArgs', qubits: Tuple['cirq.Qid', ...]) -> Optional[str]:
563
- args.validate_version('2.0')
563
+ args.validate_version('2.0', '3.0')
564
564
  return args.format('ry({0:half_turns}) {1};\n', self._exponent, qubits[0])
565
565
 
566
566
  def _json_dict_(self) -> Dict[str, Any]:
@@ -791,7 +791,7 @@ class ZPowGate(eigen_gate.EigenGate):
791
791
  return protocols.CircuitDiagramInfo(wire_symbols=('Z',), exponent=e)
792
792
 
793
793
  def _qasm_(self, args: 'cirq.QasmArgs', qubits: Tuple['cirq.Qid', ...]) -> Optional[str]:
794
- args.validate_version('2.0')
794
+ args.validate_version('2.0', '3.0')
795
795
 
796
796
  if self.global_shift == 0:
797
797
  if self._exponent == 1:
@@ -910,7 +910,7 @@ class Rz(ZPowGate):
910
910
  return f'cirq.Rz(rads={proper_repr(self._rads)})'
911
911
 
912
912
  def _qasm_(self, args: 'cirq.QasmArgs', qubits: Tuple['cirq.Qid', ...]) -> Optional[str]:
913
- args.validate_version('2.0')
913
+ args.validate_version('2.0', '3.0')
914
914
  return args.format('rz({0:half_turns}) {1};\n', self._exponent, qubits[0])
915
915
 
916
916
  def _json_dict_(self) -> Dict[str, Any]:
@@ -1016,7 +1016,7 @@ class HPowGate(eigen_gate.EigenGate):
1016
1016
  )
1017
1017
 
1018
1018
  def _qasm_(self, args: 'cirq.QasmArgs', qubits: Tuple['cirq.Qid', ...]) -> Optional[str]:
1019
- args.validate_version('2.0')
1019
+ args.validate_version('2.0', '3.0')
1020
1020
  if self._exponent == 0:
1021
1021
  return args.format('id {0};\n', qubits[0])
1022
1022
  elif self._exponent == 1 and self._global_shift == 0:
@@ -1204,7 +1204,7 @@ class CZPowGate(gate_features.InterchangeableQubitsGate, eigen_gate.EigenGate):
1204
1204
  def _qasm_(self, args: 'cirq.QasmArgs', qubits: Tuple['cirq.Qid', ...]) -> Optional[str]:
1205
1205
  if self._exponent != 1:
1206
1206
  return None # Don't have an equivalent gate in QASM
1207
- args.validate_version('2.0')
1207
+ args.validate_version('2.0', '3.0')
1208
1208
  return args.format('cz {0},{1};\n', qubits[0], qubits[1])
1209
1209
 
1210
1210
  def _has_stabilizer_effect_(self) -> Optional[bool]:
@@ -1405,7 +1405,7 @@ class CXPowGate(eigen_gate.EigenGate):
1405
1405
  def _qasm_(self, args: 'cirq.QasmArgs', qubits: Tuple['cirq.Qid', ...]) -> Optional[str]:
1406
1406
  if self._exponent != 1:
1407
1407
  return None # Don't have an equivalent gate in QASM
1408
- args.validate_version('2.0')
1408
+ args.validate_version('2.0', '3.0')
1409
1409
  return args.format('cx {0},{1};\n', qubits[0], qubits[1])
1410
1410
 
1411
1411
  def _has_stabilizer_effect_(self) -> Optional[bool]:
cirq/ops/identity.py CHANGED
@@ -138,7 +138,7 @@ class IdentityGate(raw_types.Gate):
138
138
  return ('I',) * self.num_qubits()
139
139
 
140
140
  def _qasm_(self, args: 'cirq.QasmArgs', qubits: Tuple['cirq.Qid', ...]) -> Optional[str]:
141
- args.validate_version('2.0')
141
+ args.validate_version('2.0', '3.0')
142
142
  return ''.join([args.format('id {0};\n', qubit) for qubit in qubits])
143
143
 
144
144
  @classmethod
cirq/ops/matrix_gates.py CHANGED
@@ -181,7 +181,7 @@ class MatrixGate(raw_types.Gate):
181
181
  return protocols.CircuitDiagramInfo(wire_symbols=[main, *rest])
182
182
 
183
183
  def _qasm_(self, args: 'cirq.QasmArgs', qubits: Tuple['cirq.Qid', ...]) -> Optional[str]:
184
- args.validate_version('2.0')
184
+ args.validate_version('2.0', '3.0')
185
185
  if self._qid_shape == (2,):
186
186
  return protocols.qasm(
187
187
  phased_x_z_gate.PhasedXZGate.from_matrix(self._matrix), args=args, qubits=qubits
@@ -227,7 +227,7 @@ class MeasurementGate(raw_types.Gate):
227
227
  def _qasm_(self, args: 'cirq.QasmArgs', qubits: Tuple['cirq.Qid', ...]) -> Optional[str]:
228
228
  if self.confusion_map or not all(d == 2 for d in self._qid_shape):
229
229
  return NotImplemented
230
- args.validate_version('2.0')
230
+ args.validate_version('2.0', '3.0')
231
231
  invert_mask = self.invert_mask
232
232
  if len(invert_mask) < len(qubits):
233
233
  invert_mask = invert_mask + (False,) * (len(qubits) - len(invert_mask))
@@ -235,7 +235,10 @@ class MeasurementGate(raw_types.Gate):
235
235
  for i, (qubit, inv) in enumerate(zip(qubits, invert_mask)):
236
236
  if inv:
237
237
  lines.append(args.format('x {0}; // Invert the following measurement\n', qubit))
238
- lines.append(args.format('measure {0} -> {1:meas}[{2}];\n', qubit, self.key, i))
238
+ if args.version == '2.0':
239
+ lines.append(args.format('measure {0} -> {1:meas}[{2}];\n', qubit, self.key, i))
240
+ else:
241
+ lines.append(args.format('{1:meas}[{2}] = measure {0};\n', qubit, self.key, i))
239
242
  if inv:
240
243
  lines.append(args.format('x {0}; // Undo the inversion\n', qubit))
241
244
  return ''.join(lines)
cirq/ops/phased_x_gate.py CHANGED
@@ -69,7 +69,7 @@ class PhasedXPowGate(raw_types.Gate):
69
69
  if cirq.is_parameterized(self):
70
70
  return None
71
71
 
72
- args.validate_version('2.0')
72
+ args.validate_version('2.0', '3.0')
73
73
 
74
74
  e = cast(float, value.canonicalize_half_turns(self._exponent))
75
75
  p = cast(float, self.phase_exponent)
cirq/ops/swap_gates.py CHANGED
@@ -148,7 +148,7 @@ class SwapPowGate(gate_features.InterchangeableQubitsGate, eigen_gate.EigenGate)
148
148
  def _qasm_(self, args: 'cirq.QasmArgs', qubits: Tuple['cirq.Qid', ...]) -> Optional[str]:
149
149
  if self._exponent != 1:
150
150
  return None # Don't have an equivalent gate in QASM
151
- args.validate_version('2.0')
151
+ args.validate_version('2.0', '3.0')
152
152
  return args.format('swap {0},{1};\n', qubits[0], qubits[1])
153
153
 
154
154
  def __str__(self) -> str:
@@ -164,7 +164,7 @@ class CCZPowGate(gate_features.InterchangeableQubitsGate, eigen_gate.EigenGate):
164
164
  if self._exponent != 1:
165
165
  return None
166
166
 
167
- args.validate_version('2.0')
167
+ args.validate_version('2.0', '3.0')
168
168
  lines = [
169
169
  args.format('h {0};\n', qubits[2]),
170
170
  args.format('ccx {0},{1},{2};\n', qubits[0], qubits[1], qubits[2]),
@@ -483,7 +483,7 @@ class CCXPowGate(gate_features.InterchangeableQubitsGate, eigen_gate.EigenGate):
483
483
  if self._exponent != 1:
484
484
  return None
485
485
 
486
- args.validate_version('2.0')
486
+ args.validate_version('2.0', '3.0')
487
487
  return args.format('ccx {0},{1},{2};\n', qubits[0], qubits[1], qubits[2])
488
488
 
489
489
  def __repr__(self) -> str:
@@ -661,7 +661,7 @@ class CSwapGate(gate_features.InterchangeableQubitsGate, raw_types.Gate):
661
661
  return protocols.CircuitDiagramInfo(('@', '×', '×'))
662
662
 
663
663
  def _qasm_(self, args: 'cirq.QasmArgs', qubits: Tuple['cirq.Qid', ...]) -> Optional[str]:
664
- args.validate_version('2.0')
664
+ args.validate_version('2.0', '3.0')
665
665
  return args.format('cswap {0},{1},{2};\n', qubits[0], qubits[1], qubits[2])
666
666
 
667
667
  def _value_equality_values_(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cirq-core
3
- Version: 1.5.0.dev20241118045917
3
+ Version: 1.5.0.dev20241119000519
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=Qq3ZcfgD-Nb81cEppQdJqhAyrVqXKtfXZYGXT0p-Wh0,34718
4
4
  cirq/_doc.py,sha256=yDyWUD_2JDS0gShfGRb-rdqRt9-WeL7DhkqX7np0Nko,2879
5
5
  cirq/_import.py,sha256=p9gMHJscbtDDkfHOaulvd3Aer0pwUF5AXpL89XR8dNw,8402
6
6
  cirq/_import_test.py,sha256=6K_v0riZJXOXUphHNkGA8MY-JcmGlezFaGmvrNhm3OQ,1015
7
- cirq/_version.py,sha256=bg5R-aZvxZKDXGzogZcVeLqM2pIHj4k10aX18mgu_AU,1206
8
- cirq/_version_test.py,sha256=qYLPmCA_UaiDG13VyRBRlcr9uN0eeuwtQM79jepu7TI,147
7
+ cirq/_version.py,sha256=D5HeM4T4b6K-E0WCZYxdESO6kT2NDPknq4t-9hrBxc0,1206
8
+ cirq/_version_test.py,sha256=I6AO4vSYs-cuE_MUqxoK-I8-EynvXP4T0ZM1xHbelF8,147
9
9
  cirq/conftest.py,sha256=X7yLFL8GLhg2CjPw0hp5e_dGASfvHx1-QT03aUbhKJw,1168
10
10
  cirq/json_resolver_cache.py,sha256=ytePZtNZgKjOF2NiVpUTuotB-JKZmQNOFIFdvXqsxHw,13271
11
11
  cirq/py.typed,sha256=VFSlmh_lNwnaXzwY-ZuW-C2Ws5PkuDoVgBdNCs0jXJE,63
@@ -16,10 +16,10 @@ cirq/circuits/_box_drawing_character_data.py,sha256=QLoCXwcLL7091RdxEKO259goxt4R
16
16
  cirq/circuits/_box_drawing_character_data_test.py,sha256=XO94z0piwZRHaNZHTf-5tKHQ4MKcDruMeRIKdT8GbYA,1624
17
17
  cirq/circuits/_bucket_priority_queue.py,sha256=hxFuii2fKD8G6EKT_aVLEsA7FmSfqFXPwIbA0KsoSC4,6745
18
18
  cirq/circuits/_bucket_priority_queue_test.py,sha256=t6u_hG7K2e2WKWrgCsKxNRtp4ghKwiCrp0_WSY0W25k,5288
19
- cirq/circuits/circuit.py,sha256=qo_38CMj8lUXELHN0BEPNY029w6_YxY4qqMqZ7DhGtQ,114588
19
+ cirq/circuits/circuit.py,sha256=nM3Ie2qSGJN1fZ-1HCKpjhUVoW8JBZFT0rNW3iCSTM0,115150
20
20
  cirq/circuits/circuit_operation.py,sha256=3CfJd7zhEMub792vgb2VO545rsj68yX_YEYMirySI3U,34705
21
21
  cirq/circuits/circuit_operation_test.py,sha256=u-23dDZ6htNSiP8oXR67rmtb-XDBmObvbJjJrARhmis,44646
22
- cirq/circuits/circuit_test.py,sha256=sRZC558PZZZUHByZ1R00_j8ez6TL9l5ZmT8YLGopH_Q,160117
22
+ cirq/circuits/circuit_test.py,sha256=1YMXK7wHcct-HK7MKH8lE63pQQ80-jCghVAsG0DsXpU,160524
23
23
  cirq/circuits/frozen_circuit.py,sha256=qSbLHqIszCbVipNZQy4N829v_mWf8N2926cYRzpxGqE,9243
24
24
  cirq/circuits/frozen_circuit_test.py,sha256=rHyii8hLhOQ6jdA8dC1OcYPGnyeBC4uY5Q53XspkkCk,4133
25
25
  cirq/circuits/insert_strategy.py,sha256=L0OLXuo24TtBfdJGOAG2PsVDMrbvQl4iN5lUk6IPuyo,2851
@@ -28,8 +28,8 @@ cirq/circuits/moment.py,sha256=mcwSw4Qa0UFUx3pGqYjPzxEBNP45TjN9EcMgGjT-Zoo,26165
28
28
  cirq/circuits/moment_test.py,sha256=SAZR-BxNiFaYaPLKLN59LCBqxvBMrVJWa-js1kfhOZA,26905
29
29
  cirq/circuits/optimization_pass.py,sha256=uw3ne0-ebZo6GNjwfQMuQ3b5u9RCgyaXRfhpbljlxao,6468
30
30
  cirq/circuits/optimization_pass_test.py,sha256=eQB0NBJ9EvqjgSFGQMgaHIh5niQhksdnvqSXhsj3nOg,5947
31
- cirq/circuits/qasm_output.py,sha256=Ry3sFtvdOSourjeYMLYm2rxeLS9jGXmQBtfsNkOj_7c,12052
32
- cirq/circuits/qasm_output_test.py,sha256=pQjA8bsiT9MryXZqiWOiN5uIYsI5k22XowcZx0bcKDk,12539
31
+ cirq/circuits/qasm_output.py,sha256=RrqtLmGHRcKaHIJPT0ZGIK8aC5mrixE_D8nhDUVMPNE,12441
32
+ cirq/circuits/qasm_output_test.py,sha256=vFKolO5mo9hX9J3O9vrJbhv0OUR71eyFk8_fquhzHKs,12539
33
33
  cirq/circuits/text_diagram_drawer.py,sha256=ctZUG5fk2pf4XswHTJG4kteQYzzH0TefL9JWUagLJvc,17232
34
34
  cirq/circuits/text_diagram_drawer_test.py,sha256=2bSoBIeQajRi0aQxqYDpbMlT2eqpx_f-Cmg9XO6A9Jk,10750
35
35
  cirq/contrib/__init__.py,sha256=Mha0eF2ci88OVQX3laQiXgdEVo0yGwM7R5a13ryQ8jM,1065
@@ -268,15 +268,15 @@ cirq/ops/arithmetic_operation.py,sha256=PBqIwOfADRlsij11Lo1ao_OZM-O8PDlObgZBxGKs
268
268
  cirq/ops/arithmetic_operation_test.py,sha256=axy8xy9IvDb-ATUV-LE1HNWRqCEz06VyZWVrLNOtXXI,4942
269
269
  cirq/ops/boolean_hamiltonian.py,sha256=li003lNq6zS8pNPTobqzfzYJvyvaIpCVo3wkliI6Hzk,14930
270
270
  cirq/ops/boolean_hamiltonian_test.py,sha256=1ey5yfYZPKZDsfM3jpCPAOpbPs_y8i4K_WvDK2d5_4Y,8518
271
- cirq/ops/classically_controlled_operation.py,sha256=bMqKutwzqbvN2r7mOVOI12HTPDGSJLkhQQgfAcTtbDU,9166
271
+ cirq/ops/classically_controlled_operation.py,sha256=dppPudKJQppYH3YsIWIfzy2-kJZYM5x6JivcC9tB3K0,9173
272
272
  cirq/ops/classically_controlled_operation_test.py,sha256=MNU0Adff4kTosqsrQ3PUT3ARcZee_PkchT6u0xDl8Qg,48039
273
273
  cirq/ops/clifford_gate.py,sha256=qAKS0wqqoHljOF63treyR95I6H0yWFZBiHQoM4sLgSc,39350
274
274
  cirq/ops/clifford_gate_test.py,sha256=NF_if1X8LCMA9hy0vBO7lxvVPdumlvMMnI2XRQ-RLpk,37472
275
- cirq/ops/common_channels.py,sha256=h2BlRs1qCz96qZmcOgXMWOVLjvvGtl4yb-r8XqyQVjM,38276
275
+ cirq/ops/common_channels.py,sha256=uqgocTUhtuJ4VZI_9_3L34gBRTf1A10mByhZY4Q1fB8,38283
276
276
  cirq/ops/common_channels_test.py,sha256=EL_PxbqD3KPC8ioihiukhmW8bUdclqqigKoFyUQpmIM,29690
277
277
  cirq/ops/common_gate_families.py,sha256=e5M8wlDYtdrpWBrhdns6iizIvSqzfxDyIsBdxt8hVMc,8611
278
278
  cirq/ops/common_gate_families_test.py,sha256=Oo3C7BPO3gt3ePuqwsI_lx_lY38et8Ps4AuVydX2Aww,5275
279
- cirq/ops/common_gates.py,sha256=amEfFE2Euje55UVWfk2TGErhzylSUmAriLQfJudrxGY,58057
279
+ cirq/ops/common_gates.py,sha256=9QAhME6hhj5UiW0xWpZ58ltII-h8t8DY1GoyMgeyMxo,58120
280
280
  cirq/ops/common_gates_test.py,sha256=XCVswZbd_k9Y2k5n-2TXnS8CnJoLoC3VmBQN0QijIKw,46218
281
281
  cirq/ops/control_values.py,sha256=nNDN6pgz_aWkUfrpOZ9zHHD42AGFaplWhVQj9rmJwbQ,13410
282
282
  cirq/ops/control_values_test.py,sha256=iDtdQjL39u80MaR16XLp00LRZqWgJqC54cIeADWf0IY,12906
@@ -304,17 +304,17 @@ cirq/ops/global_phase_op.py,sha256=4qYUov6BnBql2_yqUHI9DE60fLiLmCsKI9ZkfMLRRyo,4
304
304
  cirq/ops/global_phase_op_test.py,sha256=FjtUsohIYabTtiGytvPQw9Rzkqd6dlT7qrj4oltDbTI,9814
305
305
  cirq/ops/greedy_qubit_manager.py,sha256=O9qY8GB1KGxm3B7JEjq50sGVD51bNwTSupJpi3WUeAc,4039
306
306
  cirq/ops/greedy_qubit_manager_test.py,sha256=iVZDKes-r08raTiJHpYNmP-Dp89ok3hIU-QboL2BHdw,3300
307
- cirq/ops/identity.py,sha256=MmyA7YWsWb8jHTZLiDCl0qjk1TvW1E2QncqLrCKMmKo,5811
307
+ cirq/ops/identity.py,sha256=Lag4bK_QfDebiJD2xN5yM46IXn9KsoF3Afzs8c4eluw,5818
308
308
  cirq/ops/identity_test.py,sha256=-z5TjxNaD3_z73nGdR3RbHt6ytaYOAyYggCzwZtlQDw,7568
309
309
  cirq/ops/kraus_channel.py,sha256=tCPAEzr_GAL5vTwI43rBoiOnT04l-ebZanuuEuYWDo8,5085
310
310
  cirq/ops/kraus_channel_test.py,sha256=qH2Y9cngXzKCabd-Mq5xBYcM_wyL8c6KkrXw8kZr7Dc,4726
311
311
  cirq/ops/linear_combinations.py,sha256=WqQ2STxGpgO6KUj4yc6LfSI9OWCdzlmWMt6BkTkf2wA,39694
312
312
  cirq/ops/linear_combinations_test.py,sha256=qpzRo53mJtcidYE11loKMP2b9guKMGtzrKWQ_u0jr4Y,66387
313
- cirq/ops/matrix_gates.py,sha256=8ARvpHWYFgwmlT99-Gxoa24i_mxKLvdj_RhoQvglKQw,9290
313
+ cirq/ops/matrix_gates.py,sha256=inBhKPsNx7ZeejNpmbPEGl5hgyrTqmA852BVlKMUZmg,9297
314
314
  cirq/ops/matrix_gates_test.py,sha256=m5rMwq_sqVvsmkc5opVr3Ikd1ERuULmSRNAvGZUg7ds,14224
315
315
  cirq/ops/measure_util.py,sha256=wkT0XC6rIddOkqNGwkvI-m7Ncr8j5QPN_evwecc6nrw,7390
316
316
  cirq/ops/measure_util_test.py,sha256=Yzlced4nb4DHO-0cM_a-QZGO_3R8oqExkpIALN_pG4A,5307
317
- cirq/ops/measurement_gate.py,sha256=4nZPQ-ckEu8Atv1HGlDUPvXjP4WOlub-O-yPHK28GBw,11823
317
+ cirq/ops/measurement_gate.py,sha256=jBRJzLcEmWYWnCk6y-GiXjhS7s0AJNsxFF6i__JhWZg,11986
318
318
  cirq/ops/measurement_gate_test.py,sha256=XfTDqbYUUc7zsMURh7D3jo8DwKWVVT9uJRBvtTm8Frk,18308
319
319
  cirq/ops/mixed_unitary_channel.py,sha256=k3O4ovH3bFs1WnAZc647IgCK8thC5JnTGxsCzjBacEY,5259
320
320
  cirq/ops/mixed_unitary_channel_test.py,sha256=x8LIAea2KcutNupnRJ_cLy1kmxhbUh3K3BkZtg3OkKQ,5058
@@ -344,7 +344,7 @@ cirq/ops/permutation_gate.py,sha256=2h8n76N2M3nu5MA8JkRQgVLByq5cOEluKUN042ClSRs,
344
344
  cirq/ops/permutation_gate_test.py,sha256=SwXRgsZNLn5jnGhfcKPJ0J0CIssNzElbFaqylV2TXD8,3281
345
345
  cirq/ops/phased_iswap_gate.py,sha256=j55nFjdF0r63oaT7cGw0YtosavaV24qUjC9T-8Y4Ghw,8997
346
346
  cirq/ops/phased_iswap_gate_test.py,sha256=oH3RQ8tlSD0sU5Cf3M0uR92y3M1Xd7Yk3ayOoca9Neg,6708
347
- cirq/ops/phased_x_gate.py,sha256=JknLsbDDJejvVjs60GjZdw3frOEonFKY7VvswqUcYqQ,9976
347
+ cirq/ops/phased_x_gate.py,sha256=qjlkdbj7SWMvgTJkTqEqsLe2XDgAGioA6ayanns-apg,9983
348
348
  cirq/ops/phased_x_gate_test.py,sha256=IpY-Z-MsqtYbyIEdxWu1NqgAJF2B7nddxPc2Hxafr4s,10202
349
349
  cirq/ops/phased_x_z_gate.py,sha256=wh12AXeeDvMojtZd-zecV13Yur_QSBYc4kvYBdcfBBA,11555
350
350
  cirq/ops/phased_x_z_gate_test.py,sha256=KK5-FD5zoaqZkw7p6UKxFddzaFWoxnQnE8LpCiKtIk8,10690
@@ -363,11 +363,11 @@ cirq/ops/raw_types.py,sha256=ISnjY0TPcle_qe6uzHCF_4d_SQevJ4lSWJWGR36lYuU,40309
363
363
  cirq/ops/raw_types_test.py,sha256=bZUOQSfPDZgH6Z98PKX0oBP2iWXwSh3b9dty1dFcFfM,33620
364
364
  cirq/ops/state_preparation_channel.py,sha256=PjVtoLbjBAy_XqnFAY40Am-NifeuCFVVLW6RJxph5sQ,4778
365
365
  cirq/ops/state_preparation_channel_test.py,sha256=yKUvLw_ft6cvIgRJcFQ779wZS-V6V-pzQq-rZRWdCmU,5922
366
- cirq/ops/swap_gates.py,sha256=9eJMGyOiA8W9k2xJ_w5PaLOCHGvB6C4T2RLddIZ5qE8,11601
366
+ cirq/ops/swap_gates.py,sha256=cp-lKHBIXbFa2PmJnJQ8jD5W-vTWnpOZ5GdqM-5Gy8Q,11608
367
367
  cirq/ops/swap_gates_test.py,sha256=_CihLf6rY4PNphCkH-S5mLJQYZW9ILjnnwUyQ9b0Blg,7452
368
368
  cirq/ops/tags.py,sha256=B3nEsZQTurGPJodH7aDoreNSatqawTxwsmw8fSKaIlc,2294
369
369
  cirq/ops/tags_test.py,sha256=4V9twOuCXd7Glvj9p3RW-tZ4-bfLtC1tmonR4soKNA0,1158
370
- cirq/ops/three_qubit_gates.py,sha256=6AM1-5e9qBYbnJXDqdoDhx2HnhtlwAumat0GjwHyFNg,28516
370
+ cirq/ops/three_qubit_gates.py,sha256=l2wJjiXXDw-dOeznAEjVmALupSigpYblp6LcL7-65nY,28537
371
371
  cirq/ops/three_qubit_gates_test.py,sha256=iQfQ4p4TwtyHYCqaWOEeZsqszF_Mp49VwlIKRydClMk,11778
372
372
  cirq/ops/two_qubit_diagonal_gate.py,sha256=7ALyJs1ueE3i3v8FesFraaQC8nPp8h73tqeYIuNUVfU,5396
373
373
  cirq/ops/two_qubit_diagonal_gate_test.py,sha256=qiuREluCDKMok3ormBOdDYCFlOS9u1zFLqTsORO5JtM,4000
@@ -1187,8 +1187,8 @@ cirq/work/sampler.py,sha256=y6qtCpAwO8SqZ_JKU8PwlbMLHpJskNPqGWD_pNbyZew,19779
1187
1187
  cirq/work/sampler_test.py,sha256=hL2UWx3dz2ukZVNxWftiKVvJcQoLplLZdQm-k1QcA40,13282
1188
1188
  cirq/work/zeros_sampler.py,sha256=x1C7cup66a43n-3tm8QjhiqJa07qcJW10FxNp9jJ59Q,2356
1189
1189
  cirq/work/zeros_sampler_test.py,sha256=JIkpBBFPJe5Ba4142vzogyWyboG1Q1ZAm0UVGgOoZn8,3279
1190
- cirq_core-1.5.0.dev20241118045917.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1191
- cirq_core-1.5.0.dev20241118045917.dist-info/METADATA,sha256=86glCkZbGBivMoJgEZhiCMZIXSLVngBgylEyOC397PU,1992
1192
- cirq_core-1.5.0.dev20241118045917.dist-info/WHEEL,sha256=bFJAMchF8aTQGUgMZzHJyDDMPTO3ToJ7x23SLJa1SVo,92
1193
- cirq_core-1.5.0.dev20241118045917.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1194
- cirq_core-1.5.0.dev20241118045917.dist-info/RECORD,,
1190
+ cirq_core-1.5.0.dev20241119000519.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1191
+ cirq_core-1.5.0.dev20241119000519.dist-info/METADATA,sha256=ebD1-TaCPIc_H_C_sn7q0OKIjl7iy06DzQUdvuoZix4,1992
1192
+ cirq_core-1.5.0.dev20241119000519.dist-info/WHEEL,sha256=bFJAMchF8aTQGUgMZzHJyDDMPTO3ToJ7x23SLJa1SVo,92
1193
+ cirq_core-1.5.0.dev20241119000519.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1194
+ cirq_core-1.5.0.dev20241119000519.dist-info/RECORD,,