cirq-core 1.7.0.dev20250911065839__py3-none-any.whl → 1.7.0.dev20250911180224__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 +1 -1
- cirq/_version_test.py +1 -1
- cirq/circuits/circuit.py +8 -2
- cirq/circuits/circuit_operation_test.py +14 -0
- cirq/ops/dense_pauli_string.py +40 -67
- cirq/ops/dense_pauli_string_test.py +17 -0
- cirq/ops/pauli_string_test.py +1 -0
- cirq/protocols/control_key_protocol.py +7 -0
- {cirq_core-1.7.0.dev20250911065839.dist-info → cirq_core-1.7.0.dev20250911180224.dist-info}/METADATA +1 -1
- {cirq_core-1.7.0.dev20250911065839.dist-info → cirq_core-1.7.0.dev20250911180224.dist-info}/RECORD +13 -13
- {cirq_core-1.7.0.dev20250911065839.dist-info → cirq_core-1.7.0.dev20250911180224.dist-info}/WHEEL +0 -0
- {cirq_core-1.7.0.dev20250911065839.dist-info → cirq_core-1.7.0.dev20250911180224.dist-info}/licenses/LICENSE +0 -0
- {cirq_core-1.7.0.dev20250911065839.dist-info → cirq_core-1.7.0.dev20250911180224.dist-info}/top_level.txt +0 -0
cirq/_version.py
CHANGED
cirq/_version_test.py
CHANGED
cirq/circuits/circuit.py
CHANGED
|
@@ -1666,8 +1666,14 @@ class AbstractCircuit(abc.ABC):
|
|
|
1666
1666
|
)
|
|
1667
1667
|
|
|
1668
1668
|
def _control_keys_(self) -> frozenset[cirq.MeasurementKey]:
|
|
1669
|
-
|
|
1670
|
-
|
|
1669
|
+
measures: set[cirq.MeasurementKey] = set()
|
|
1670
|
+
controls: set[cirq.MeasurementKey] = set()
|
|
1671
|
+
for op in self.all_operations():
|
|
1672
|
+
# Only require keys that haven't already been measured earlier
|
|
1673
|
+
controls.update(k for k in protocols.control_keys(op) if k not in measures)
|
|
1674
|
+
# Record any measurement keys produced by this op
|
|
1675
|
+
measures.update(protocols.measurement_key_objs(op))
|
|
1676
|
+
return frozenset(controls)
|
|
1671
1677
|
|
|
1672
1678
|
|
|
1673
1679
|
def _overlap_collision_time(
|
|
@@ -1324,3 +1324,17 @@ def test_has_unitary_protocol_returns_true_if_all_params_resolve() -> None:
|
|
|
1324
1324
|
exp = sympy.Symbol('exp')
|
|
1325
1325
|
op = cirq.CircuitOperation(cirq.FrozenCircuit(cirq.X(q) ** exp), param_resolver={exp: 0.5})
|
|
1326
1326
|
assert protocols.has_unitary(op)
|
|
1327
|
+
|
|
1328
|
+
|
|
1329
|
+
def test_control_keys_respects_internal_measurement_order() -> None:
|
|
1330
|
+
q = cirq.LineQubit(0)
|
|
1331
|
+
|
|
1332
|
+
# Control BEFORE measurement inside the subcircuit: external key required
|
|
1333
|
+
fc_before = cirq.FrozenCircuit(cirq.X(q).with_classical_controls('a'), cirq.measure(q, key='a'))
|
|
1334
|
+
op_before = cirq.CircuitOperation(fc_before)
|
|
1335
|
+
assert cirq.control_keys(op_before) == {cirq.MeasurementKey('a')}
|
|
1336
|
+
|
|
1337
|
+
# Measurement BEFORE control inside the subcircuit: no external key required
|
|
1338
|
+
fc_after = cirq.FrozenCircuit(cirq.measure(q, key='a'), cirq.X(q).with_classical_controls('a'))
|
|
1339
|
+
op_after = cirq.CircuitOperation(fc_after)
|
|
1340
|
+
assert cirq.control_keys(op_after) == set()
|
cirq/ops/dense_pauli_string.py
CHANGED
|
@@ -247,35 +247,25 @@ class BaseDensePauliString(raw_types.Gate, metaclass=abc.ABCMeta):
|
|
|
247
247
|
|
|
248
248
|
def __mul__(self, other):
|
|
249
249
|
concrete_class = type(self)
|
|
250
|
-
if isinstance(other, BaseDensePauliString):
|
|
251
|
-
if isinstance(other, MutableDensePauliString):
|
|
252
|
-
concrete_class = MutableDensePauliString
|
|
253
|
-
max_len = max(len(self.pauli_mask), len(other.pauli_mask))
|
|
254
|
-
min_len = min(len(self.pauli_mask), len(other.pauli_mask))
|
|
255
|
-
new_mask = np.zeros(max_len, dtype=np.uint8)
|
|
256
|
-
new_mask[: len(self.pauli_mask)] ^= self.pauli_mask
|
|
257
|
-
new_mask[: len(other.pauli_mask)] ^= other.pauli_mask
|
|
258
|
-
tweak = _vectorized_pauli_mul_phase(
|
|
259
|
-
self.pauli_mask[:min_len], other.pauli_mask[:min_len]
|
|
260
|
-
)
|
|
261
|
-
return concrete_class(
|
|
262
|
-
pauli_mask=new_mask, coefficient=self.coefficient * other.coefficient * tweak
|
|
263
|
-
)
|
|
264
|
-
|
|
265
250
|
if isinstance(other, (sympy.Basic, numbers.Number)):
|
|
266
251
|
new_coef = protocols.mul(self.coefficient, other, default=None)
|
|
267
252
|
if new_coef is None:
|
|
268
253
|
return NotImplemented
|
|
269
254
|
return concrete_class(pauli_mask=self.pauli_mask, coefficient=new_coef)
|
|
270
255
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
256
|
+
if (other_dps := _try_interpret_as_dps(other)) is not None:
|
|
257
|
+
if isinstance(other_dps, MutableDensePauliString):
|
|
258
|
+
concrete_class = MutableDensePauliString
|
|
259
|
+
max_len = max(len(self.pauli_mask), len(other_dps.pauli_mask))
|
|
260
|
+
min_len = min(len(self.pauli_mask), len(other_dps.pauli_mask))
|
|
261
|
+
new_mask = np.zeros(max_len, dtype=np.uint8)
|
|
262
|
+
new_mask[: len(self.pauli_mask)] ^= self.pauli_mask
|
|
263
|
+
new_mask[: len(other_dps.pauli_mask)] ^= other_dps.pauli_mask
|
|
264
|
+
tweak = _vectorized_pauli_mul_phase(
|
|
265
|
+
self.pauli_mask[:min_len], other_dps.pauli_mask[:min_len]
|
|
266
|
+
)
|
|
276
267
|
return concrete_class(
|
|
277
|
-
pauli_mask=
|
|
278
|
-
coefficient=self.coefficient * _vectorized_pauli_mul_phase(self.pauli_mask[i], p),
|
|
268
|
+
pauli_mask=new_mask, coefficient=self.coefficient * other_dps.coefficient * tweak
|
|
279
269
|
)
|
|
280
270
|
|
|
281
271
|
return NotImplemented
|
|
@@ -284,15 +274,8 @@ class BaseDensePauliString(raw_types.Gate, metaclass=abc.ABCMeta):
|
|
|
284
274
|
if isinstance(other, (sympy.Basic, numbers.Number)):
|
|
285
275
|
return self.__mul__(other)
|
|
286
276
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
p, i = split
|
|
290
|
-
mask = np.copy(self.pauli_mask)
|
|
291
|
-
mask[i] ^= p
|
|
292
|
-
return type(self)(
|
|
293
|
-
pauli_mask=mask,
|
|
294
|
-
coefficient=self.coefficient * _vectorized_pauli_mul_phase(p, self.pauli_mask[i]),
|
|
295
|
-
)
|
|
277
|
+
if other := _try_interpret_as_dps(other):
|
|
278
|
+
return other.__mul__(self)
|
|
296
279
|
|
|
297
280
|
return NotImplemented
|
|
298
281
|
|
|
@@ -369,18 +352,11 @@ class BaseDensePauliString(raw_types.Gate, metaclass=abc.ABCMeta):
|
|
|
369
352
|
)
|
|
370
353
|
|
|
371
354
|
def _commutes_(self, other: Any, *, atol: float = 1e-8) -> bool | NotImplementedType | None:
|
|
372
|
-
if
|
|
373
|
-
n = min(len(self.pauli_mask), len(
|
|
374
|
-
phase = _vectorized_pauli_mul_phase(self.pauli_mask[:n],
|
|
355
|
+
if (other_dps := _try_interpret_as_dps(other)) is not None:
|
|
356
|
+
n = min(len(self.pauli_mask), len(other_dps.pauli_mask))
|
|
357
|
+
phase = _vectorized_pauli_mul_phase(self.pauli_mask[:n], other_dps.pauli_mask[:n])
|
|
375
358
|
return phase == 1 or phase == -1
|
|
376
359
|
|
|
377
|
-
# Single qubit Pauli operation.
|
|
378
|
-
split = _attempt_value_to_pauli_index(other)
|
|
379
|
-
if split is not None:
|
|
380
|
-
p1, i = split
|
|
381
|
-
p2 = self.pauli_mask[i]
|
|
382
|
-
return (p1 or p2) == (p2 or p1)
|
|
383
|
-
|
|
384
360
|
return NotImplemented
|
|
385
361
|
|
|
386
362
|
def frozen(self) -> DensePauliString:
|
|
@@ -518,20 +494,6 @@ class MutableDensePauliString(BaseDensePauliString):
|
|
|
518
494
|
return NotImplemented
|
|
519
495
|
|
|
520
496
|
def __imul__(self, other):
|
|
521
|
-
if isinstance(other, BaseDensePauliString):
|
|
522
|
-
if len(other) > len(self):
|
|
523
|
-
raise ValueError(
|
|
524
|
-
"The receiving dense pauli string is smaller than "
|
|
525
|
-
"the dense pauli string being multiplied into it.\n"
|
|
526
|
-
f"self={repr(self)}\n"
|
|
527
|
-
f"other={repr(other)}"
|
|
528
|
-
)
|
|
529
|
-
self_mask = self.pauli_mask[: len(other.pauli_mask)]
|
|
530
|
-
self._coefficient *= _vectorized_pauli_mul_phase(self_mask, other.pauli_mask)
|
|
531
|
-
self._coefficient *= other.coefficient
|
|
532
|
-
self_mask ^= other.pauli_mask
|
|
533
|
-
return self
|
|
534
|
-
|
|
535
497
|
if isinstance(other, (sympy.Basic, numbers.Number)):
|
|
536
498
|
new_coef = protocols.mul(self.coefficient, other, default=None)
|
|
537
499
|
if new_coef is None:
|
|
@@ -539,11 +501,18 @@ class MutableDensePauliString(BaseDensePauliString):
|
|
|
539
501
|
self._coefficient = new_coef if isinstance(new_coef, sympy.Basic) else complex(new_coef)
|
|
540
502
|
return self
|
|
541
503
|
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
504
|
+
if (other_dps := _try_interpret_as_dps(other)) is not None:
|
|
505
|
+
if len(other_dps) > len(self):
|
|
506
|
+
raise ValueError(
|
|
507
|
+
"The receiving dense pauli string is smaller than "
|
|
508
|
+
"the dense pauli string being multiplied into it.\n"
|
|
509
|
+
f"self={repr(self)}\n"
|
|
510
|
+
f"other={repr(other)}"
|
|
511
|
+
)
|
|
512
|
+
self_mask = self.pauli_mask[: len(other_dps.pauli_mask)]
|
|
513
|
+
self._coefficient *= _vectorized_pauli_mul_phase(self_mask, other_dps.pauli_mask)
|
|
514
|
+
self._coefficient *= other_dps.coefficient
|
|
515
|
+
self_mask ^= other_dps.pauli_mask
|
|
547
516
|
return self
|
|
548
517
|
|
|
549
518
|
return NotImplemented
|
|
@@ -613,23 +582,27 @@ def _as_pauli_mask(val: Iterable[cirq.PAULI_GATE_LIKE] | np.ndarray) -> np.ndarr
|
|
|
613
582
|
return np.array([_pauli_index(v) for v in val], dtype=np.uint8)
|
|
614
583
|
|
|
615
584
|
|
|
616
|
-
def
|
|
585
|
+
def _try_interpret_as_dps(v: cirq.Operation) -> BaseDensePauliString | None:
|
|
586
|
+
if isinstance(v, BaseDensePauliString):
|
|
587
|
+
return v
|
|
588
|
+
|
|
617
589
|
if (ps := pauli_string._try_interpret_as_pauli_string(v)) is None:
|
|
618
590
|
return None
|
|
619
591
|
|
|
620
|
-
if len(ps.qubits) != 1:
|
|
621
|
-
return None # pragma: no cover
|
|
622
|
-
|
|
623
|
-
q = ps.qubits[0]
|
|
624
592
|
from cirq import devices
|
|
625
593
|
|
|
626
|
-
if not isinstance(q, devices.LineQubit):
|
|
594
|
+
if not all(isinstance(q, devices.LineQubit) for q in ps.qubits):
|
|
627
595
|
raise ValueError(
|
|
628
596
|
'Got a Pauli operation, but it was applied to a qubit type '
|
|
629
597
|
'other than `cirq.LineQubit` so its dense index is ambiguous.\n'
|
|
630
598
|
f'v={repr(v)}.'
|
|
631
599
|
)
|
|
632
|
-
|
|
600
|
+
|
|
601
|
+
pauli_mask = np.zeros(max((q.x + 1 for q in ps.qubits), default=0), dtype=np.uint8)
|
|
602
|
+
for q in ps.qubits:
|
|
603
|
+
pauli_mask[q.x] = pauli_string.PAULI_GATE_LIKE_TO_INDEX_MAP[ps[q]]
|
|
604
|
+
|
|
605
|
+
return DensePauliString(pauli_mask)
|
|
633
606
|
|
|
634
607
|
|
|
635
608
|
def _vectorized_pauli_mul_phase(lhs: int | np.ndarray, rhs: int | np.ndarray) -> complex:
|
|
@@ -173,6 +173,10 @@ def test_mul() -> None:
|
|
|
173
173
|
with pytest.raises(ValueError, match='other than `cirq.LineQubit'):
|
|
174
174
|
_ = f('III') * cirq.X(cirq.NamedQubit('tmp'))
|
|
175
175
|
|
|
176
|
+
# Parity operations.
|
|
177
|
+
assert f('IXYZ') * cirq.XX(*cirq.LineQubit.range(1, 3)) == -1j * f('IIZZ')
|
|
178
|
+
assert cirq.XX(*cirq.LineQubit.range(1, 3)) * f('IXYZ') == 1j * f('IIZZ')
|
|
179
|
+
|
|
176
180
|
# Mixed types.
|
|
177
181
|
m = cirq.MutableDensePauliString
|
|
178
182
|
assert m('X') * m('Z') == -1j * m('Y')
|
|
@@ -187,6 +191,10 @@ def test_mul() -> None:
|
|
|
187
191
|
assert f('I') * f('III') == f('III')
|
|
188
192
|
assert f('X') * f('XXX') == f('IXX')
|
|
189
193
|
assert f('XXX') * f('X') == f('IXX')
|
|
194
|
+
assert f('X') * cirq.Y(cirq.LineQubit(2)) == f('XIY')
|
|
195
|
+
assert f('XY') * cirq.YY(*cirq.LineQubit.range(1, 3)) == f('XIY')
|
|
196
|
+
assert cirq.X(cirq.LineQubit(2)) * f('Y') == f('YIX')
|
|
197
|
+
assert cirq.XX(*cirq.LineQubit.range(1, 3)) * f('YX') == f('YIX')
|
|
190
198
|
|
|
191
199
|
with pytest.raises(TypeError):
|
|
192
200
|
_ = f('I') * object()
|
|
@@ -235,8 +243,15 @@ def test_imul() -> None:
|
|
|
235
243
|
p *= cirq.X(cirq.LineQubit(1))
|
|
236
244
|
assert p == m('IZI')
|
|
237
245
|
|
|
246
|
+
p *= cirq.ZZ(*cirq.LineQubit.range(1, 3))
|
|
247
|
+
assert p == m('IIZ')
|
|
248
|
+
|
|
238
249
|
with pytest.raises(ValueError, match='smaller than'):
|
|
239
250
|
p *= f('XXXXXXXXXXXX')
|
|
251
|
+
with pytest.raises(ValueError, match='smaller than'):
|
|
252
|
+
p *= cirq.X(cirq.LineQubit(3))
|
|
253
|
+
with pytest.raises(ValueError, match='smaller than'):
|
|
254
|
+
p *= cirq.XX(*cirq.LineQubit.range(2, 4))
|
|
240
255
|
with pytest.raises(TypeError):
|
|
241
256
|
p *= object()
|
|
242
257
|
|
|
@@ -511,6 +526,8 @@ def test_commutes() -> None:
|
|
|
511
526
|
assert cirq.commutes(f('IIIXII'), cirq.X(cirq.LineQubit(2)) ** 3)
|
|
512
527
|
assert not cirq.commutes(f('IIIXII'), cirq.Z(cirq.LineQubit(3)) ** 3)
|
|
513
528
|
assert cirq.commutes(f('IIIXII'), cirq.Z(cirq.LineQubit(2)) ** 3)
|
|
529
|
+
assert cirq.commutes(f('X'), cirq.Z(cirq.LineQubit(10)))
|
|
530
|
+
assert cirq.commutes(cirq.Z(cirq.LineQubit(10)), f('X'))
|
|
514
531
|
|
|
515
532
|
assert cirq.commutes(f('XX'), "test", default=NotImplemented) is NotImplemented
|
|
516
533
|
|
cirq/ops/pauli_string_test.py
CHANGED
|
@@ -323,6 +323,7 @@ def test_constructor_flexibility() -> None:
|
|
|
323
323
|
@pytest.mark.parametrize('qubit_pauli_map', _sample_qubit_pauli_maps())
|
|
324
324
|
def test_getitem(qubit_pauli_map) -> None:
|
|
325
325
|
other = cirq.NamedQubit('other')
|
|
326
|
+
pauli_string: cirq.PauliString[cirq.NamedQubit]
|
|
326
327
|
pauli_string = cirq.PauliString(qubit_pauli_map=qubit_pauli_map)
|
|
327
328
|
for key in qubit_pauli_map:
|
|
328
329
|
assert qubit_pauli_map[key] == pauli_string[key]
|
|
@@ -53,6 +53,13 @@ def control_keys(val: Any) -> frozenset[cirq.MeasurementKey]:
|
|
|
53
53
|
Returns:
|
|
54
54
|
The measurement keys the value is controlled by. If the value is not
|
|
55
55
|
classically controlled, the result is the empty tuple.
|
|
56
|
+
|
|
57
|
+
Notes:
|
|
58
|
+
For composite operations (e.g. CircuitOperation), only control keys that
|
|
59
|
+
have not already been measured earlier in the subcircuit are returned.
|
|
60
|
+
Control keys that are satisfied by measurements **after** their use in
|
|
61
|
+
the subcircuit are still required externally and thus appear in the
|
|
62
|
+
result.
|
|
56
63
|
"""
|
|
57
64
|
getter = getattr(val, '_control_keys_', None)
|
|
58
65
|
result = NotImplemented if getter is None else getter()
|
{cirq_core-1.7.0.dev20250911065839.dist-info → cirq_core-1.7.0.dev20250911180224.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cirq-core
|
|
3
|
-
Version: 1.7.0.
|
|
3
|
+
Version: 1.7.0.dev20250911180224
|
|
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
|
{cirq_core-1.7.0.dev20250911065839.dist-info → cirq_core-1.7.0.dev20250911180224.dist-info}/RECORD
RENAMED
|
@@ -4,8 +4,8 @@ cirq/_compat_test.py,sha256=emXpdD5ZvwLRlFAoQB8YatmZyU3b4e9jg6FppMTUhkU,33900
|
|
|
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=
|
|
8
|
-
cirq/_version_test.py,sha256=
|
|
7
|
+
cirq/_version.py,sha256=TZ4F8lzW_VdtsCJbbO5yLDTDyLfxEbTiLpwlOGvlqHs,1206
|
|
8
|
+
cirq/_version_test.py,sha256=ghMi4mZLjN4m73SABwZh9DRcYkaSIH84DwGtlupb_F4,155
|
|
9
9
|
cirq/conftest.py,sha256=wSDKNdIQRDfLnXvOCWD3erheOw8JHRhdfQ53EyTUIXg,1239
|
|
10
10
|
cirq/json_resolver_cache.py,sha256=A5DIgFAY1hUNt9vai_C3-gGBv24116CJMzQxMcXOax4,13726
|
|
11
11
|
cirq/py.typed,sha256=VFSlmh_lNwnaXzwY-ZuW-C2Ws5PkuDoVgBdNCs0jXJE,63
|
|
@@ -16,9 +16,9 @@ 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=MOby-UKYZQMe2n4KhqkfDCPrz-T_3eBbWDEa0_nadJQ,5627
|
|
19
|
-
cirq/circuits/circuit.py,sha256=
|
|
19
|
+
cirq/circuits/circuit.py,sha256=y3QNLrJtgltpEOyBOADaQHayB6F92HeHIzuJDXZsJEM,123264
|
|
20
20
|
cirq/circuits/circuit_operation.py,sha256=vvLk30okWhimdJRFhFOpwoHDkyOHzR2I9OIggZaqmVk,36338
|
|
21
|
-
cirq/circuits/circuit_operation_test.py,sha256=
|
|
21
|
+
cirq/circuits/circuit_operation_test.py,sha256=oBecDWETbLYp5Br7aN1BoWA73VbNbhhtlkydDhnk5z8,51098
|
|
22
22
|
cirq/circuits/circuit_test.py,sha256=fT08nAEf-aiA5cvboBYnfLPGJHxauGIzJ2_Iw0fWT40,167182
|
|
23
23
|
cirq/circuits/frozen_circuit.py,sha256=UXwABQqBSnSKqSWmRluQPD09xZU0orSW3b3IHvDqxUw,7903
|
|
24
24
|
cirq/circuits/frozen_circuit_test.py,sha256=1Uk3g9St_nJFmu3IJ5hAcXWJjLfWFUXTCKQU1b0JJrE,5321
|
|
@@ -303,8 +303,8 @@ cirq/ops/controlled_gate.py,sha256=3Hex9AdY6c_DedKoCqqpS4gx9rAgm9KZITbwUBXsoYg,1
|
|
|
303
303
|
cirq/ops/controlled_gate_test.py,sha256=jmIOlCx8dC3VId4NynX1ZYy7s7tkLav_d-fjiIZyVh0,29308
|
|
304
304
|
cirq/ops/controlled_operation.py,sha256=KAbQGf6-AXm-DV9nk05S3sqJumOgvG9P6jO4Zx1gxec,13561
|
|
305
305
|
cirq/ops/controlled_operation_test.py,sha256=hTqK6R0so-ZmZLcqS9xQl39ekNZ82UVYPbhmfbbh6vg,16699
|
|
306
|
-
cirq/ops/dense_pauli_string.py,sha256=
|
|
307
|
-
cirq/ops/dense_pauli_string_test.py,sha256=
|
|
306
|
+
cirq/ops/dense_pauli_string.py,sha256=sRf2O62YXSedbOYyKSfS5qQbTaunC6BH6AobmX72nPc,23365
|
|
307
|
+
cirq/ops/dense_pauli_string_test.py,sha256=t4kl_8QdXnAbM3Bs-RpO-_fjtGZ1LSRl1UbXWJMX8Kc,23159
|
|
308
308
|
cirq/ops/diagonal_gate.py,sha256=HNMxcgKgfZ2ZcXGaPhcBp6yOwu_stpSN3_GtNeWnR5s,8909
|
|
309
309
|
cirq/ops/diagonal_gate_test.py,sha256=JRQWrL4cEYzVjwal-EewyIPgThUwLdrE6f9i7ifd6Rk,6319
|
|
310
310
|
cirq/ops/eigen_gate.py,sha256=OoUpOwHw6VZ2CpH0Qb-eQLD4c-cjj8wFwBr8NEc7C0g,17788
|
|
@@ -356,7 +356,7 @@ cirq/ops/pauli_string_phasor.py,sha256=5Tm_OoR_v44Kb3AQAw5XIxpcmKtompdbq5ZefYGEU
|
|
|
356
356
|
cirq/ops/pauli_string_phasor_test.py,sha256=ZIoraHH3kOFjtEfThXDS-sxUvSU8MYZ2avtdiPcyN6w,28309
|
|
357
357
|
cirq/ops/pauli_string_raw_types.py,sha256=mBOAwfBT_y7yiSyC6Hr-ofLyIkjyOH5urmK-gitD3-Y,2226
|
|
358
358
|
cirq/ops/pauli_string_raw_types_test.py,sha256=ZcOZ31KSVIc7ReZoO8WZEX8MOyPOhUWaYLppvGTE4-8,2761
|
|
359
|
-
cirq/ops/pauli_string_test.py,sha256=
|
|
359
|
+
cirq/ops/pauli_string_test.py,sha256=YoYcJxJZCDJjRx1ULxy_8_PkMsj8wGgpLs71iAVfLmg,79620
|
|
360
360
|
cirq/ops/pauli_sum_exponential.py,sha256=Zq8YBMZ7sLLEPQuoX4uR95I9VY4C38Ma8FtOEjQGr3k,4861
|
|
361
361
|
cirq/ops/pauli_sum_exponential_test.py,sha256=u9fVBUMuiIb6xOPC2GRTR3zFUeO6N3vanejUk5_u9_8,5485
|
|
362
362
|
cirq/ops/permutation_gate.py,sha256=mTCKrLSNP3nm2hPebfBJNR5mHO6qb1ZqDT3pFA0zM_M,4218
|
|
@@ -409,7 +409,7 @@ cirq/protocols/circuit_diagram_info_protocol.py,sha256=Bj7zAAxFZZ7VhJWk8eLmCWVX-
|
|
|
409
409
|
cirq/protocols/circuit_diagram_info_protocol_test.py,sha256=r-kNamR6QPdu-Q9to2DKLrDP9J8rWOA7IxfMVvcO0qE,12074
|
|
410
410
|
cirq/protocols/commutes_protocol.py,sha256=DPwB_xKiqj3MW8uxEksjWDd6c163zgNMNMDjE2N9Xbw,7368
|
|
411
411
|
cirq/protocols/commutes_protocol_test.py,sha256=INP3i39_3Xqh8oDTDNdY546fqD3eqnVzW_TO0zUVCeg,5911
|
|
412
|
-
cirq/protocols/control_key_protocol.py,sha256=
|
|
412
|
+
cirq/protocols/control_key_protocol.py,sha256=a_yEw9vk7nlfJ-lADHIJPf0RhuxfM7KYcRvuG-prtXg,2934
|
|
413
413
|
cirq/protocols/control_key_protocol_test.py,sha256=fNDDkf4mQpA_tKuhX1e2BJN72v9HdGftgd79sOqREJE,1014
|
|
414
414
|
cirq/protocols/decompose_protocol.py,sha256=73wGRdSf4o_K8MJ0i-DPJIBiNlq6fRGrF9E90NqxhwY,18941
|
|
415
415
|
cirq/protocols/decompose_protocol_test.py,sha256=JJexKMKYdSW1K1S4wkTyR1Wy80Ku_jHslSJx3gJ5REs,18130
|
|
@@ -1234,8 +1234,8 @@ cirq/work/sampler.py,sha256=rxbMWvrhu3gfNSBjZKozw28lLKVvBAS_1EGyPdYe8Xg,19041
|
|
|
1234
1234
|
cirq/work/sampler_test.py,sha256=SsMrRvLDYELyOAWLKISjkdEfrBwLYWRsT6D8WrsLM3Q,13533
|
|
1235
1235
|
cirq/work/zeros_sampler.py,sha256=Fs2JWwq0n9zv7_G5Rm-9vPeHUag7uctcMOHg0JTkZpc,2371
|
|
1236
1236
|
cirq/work/zeros_sampler_test.py,sha256=lQLgQDGBLtfImryys2HzQ2jOSGxHgc7-koVBUhv8qYk,3345
|
|
1237
|
-
cirq_core-1.7.0.
|
|
1238
|
-
cirq_core-1.7.0.
|
|
1239
|
-
cirq_core-1.7.0.
|
|
1240
|
-
cirq_core-1.7.0.
|
|
1241
|
-
cirq_core-1.7.0.
|
|
1237
|
+
cirq_core-1.7.0.dev20250911180224.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
1238
|
+
cirq_core-1.7.0.dev20250911180224.dist-info/METADATA,sha256=NYW2hvOgm6hBw-De4z_GhnSIckj3pfADLpcLY4Q0AuQ,4758
|
|
1239
|
+
cirq_core-1.7.0.dev20250911180224.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
1240
|
+
cirq_core-1.7.0.dev20250911180224.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
|
|
1241
|
+
cirq_core-1.7.0.dev20250911180224.dist-info/RECORD,,
|
{cirq_core-1.7.0.dev20250911065839.dist-info → cirq_core-1.7.0.dev20250911180224.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|