cirq-core 1.7.0.dev20250814213759__py3-none-any.whl → 1.7.0.dev20250815191916__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/experiments/fidelity_estimation.py +6 -5
- cirq/ops/classically_controlled_operation.py +4 -9
- cirq/ops/controlled_operation.py +6 -17
- cirq/ops/gate_operation.py +2 -7
- cirq/ops/raw_types.py +2 -10
- cirq/ops/raw_types_test.py +3 -3
- cirq/protocols/decompose_protocol.py +9 -14
- cirq/protocols/decompose_protocol_test.py +44 -0
- {cirq_core-1.7.0.dev20250814213759.dist-info → cirq_core-1.7.0.dev20250815191916.dist-info}/METADATA +1 -1
- {cirq_core-1.7.0.dev20250814213759.dist-info → cirq_core-1.7.0.dev20250815191916.dist-info}/RECORD +15 -15
- {cirq_core-1.7.0.dev20250814213759.dist-info → cirq_core-1.7.0.dev20250815191916.dist-info}/WHEEL +0 -0
- {cirq_core-1.7.0.dev20250814213759.dist-info → cirq_core-1.7.0.dev20250815191916.dist-info}/licenses/LICENSE +0 -0
- {cirq_core-1.7.0.dev20250814213759.dist-info → cirq_core-1.7.0.dev20250815191916.dist-info}/top_level.txt +0 -0
cirq/_version.py
CHANGED
cirq/_version_test.py
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
from __future__ import annotations
|
|
18
18
|
|
|
19
|
-
from typing import Callable, Sequence, TYPE_CHECKING
|
|
19
|
+
from typing import Callable, Mapping, Sequence, TYPE_CHECKING
|
|
20
20
|
|
|
21
21
|
import numpy as np
|
|
22
22
|
|
|
@@ -141,7 +141,7 @@ def xeb_fidelity(
|
|
|
141
141
|
circuit: cirq.Circuit,
|
|
142
142
|
bitstrings: Sequence[int],
|
|
143
143
|
qubit_order: QubitOrderOrList = QubitOrder.DEFAULT,
|
|
144
|
-
amplitudes: np.ndarray | None = None,
|
|
144
|
+
amplitudes: Mapping[int, complex] | np.ndarray | None = None,
|
|
145
145
|
estimator: Callable[[int, Sequence[float]], float] = linear_xeb_fidelity_from_probabilities,
|
|
146
146
|
) -> float:
|
|
147
147
|
"""Estimates XEB fidelity from one circuit using user-supplied estimator.
|
|
@@ -169,7 +169,8 @@ def xeb_fidelity(
|
|
|
169
169
|
`cirq.final_state_vector`.
|
|
170
170
|
qubit_order: Qubit order used to construct bitstrings enumerating
|
|
171
171
|
qubits starting with the most significant qubit.
|
|
172
|
-
amplitudes: Optional
|
|
172
|
+
amplitudes: Optional mapping from bitstring to output amplitude or
|
|
173
|
+
an array of amplitudes at bitstring indices.
|
|
173
174
|
If provided, simulation is skipped. Useful for large circuits
|
|
174
175
|
when an offline simulation had already been performed.
|
|
175
176
|
estimator: Fidelity estimator to use, see above. Defaults to the
|
|
@@ -206,7 +207,7 @@ def linear_xeb_fidelity(
|
|
|
206
207
|
circuit: cirq.Circuit,
|
|
207
208
|
bitstrings: Sequence[int],
|
|
208
209
|
qubit_order: QubitOrderOrList = QubitOrder.DEFAULT,
|
|
209
|
-
amplitudes: np.ndarray | None = None,
|
|
210
|
+
amplitudes: Mapping[int, complex] | np.ndarray | None = None,
|
|
210
211
|
) -> float:
|
|
211
212
|
"""Estimates XEB fidelity from one circuit using linear estimator."""
|
|
212
213
|
return xeb_fidelity(
|
|
@@ -222,7 +223,7 @@ def log_xeb_fidelity(
|
|
|
222
223
|
circuit: cirq.Circuit,
|
|
223
224
|
bitstrings: Sequence[int],
|
|
224
225
|
qubit_order: QubitOrderOrList = QubitOrder.DEFAULT,
|
|
225
|
-
amplitudes: np.ndarray | None = None,
|
|
226
|
+
amplitudes: Mapping[int, complex] | np.ndarray | None = None,
|
|
226
227
|
) -> float:
|
|
227
228
|
"""Estimates XEB fidelity from one circuit using logarithmic estimator."""
|
|
228
229
|
return xeb_fidelity(
|
|
@@ -125,15 +125,10 @@ class ClassicallyControlledOperation(raw_types.Operation):
|
|
|
125
125
|
*self._conditions
|
|
126
126
|
)
|
|
127
127
|
|
|
128
|
-
def
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
result = protocols.decompose_once(
|
|
133
|
-
self._sub_operation, NotImplemented, flatten=False, context=context
|
|
134
|
-
)
|
|
135
|
-
if result is NotImplemented:
|
|
136
|
-
return NotImplemented
|
|
128
|
+
def _decompose_with_context_(self, *, context: cirq.DecompositionContext):
|
|
129
|
+
result = protocols.decompose_once(self._sub_operation, None, flatten=False, context=context)
|
|
130
|
+
if result is None:
|
|
131
|
+
return None
|
|
137
132
|
|
|
138
133
|
return op_tree.transform_op_tree(
|
|
139
134
|
result, lambda op: ClassicallyControlledOperation(op, self._conditions)
|
cirq/ops/controlled_operation.py
CHANGED
|
@@ -26,7 +26,6 @@ from cirq.ops import (
|
|
|
26
26
|
controlled_gate,
|
|
27
27
|
eigen_gate,
|
|
28
28
|
gate_operation,
|
|
29
|
-
matrix_gates,
|
|
30
29
|
op_tree,
|
|
31
30
|
raw_types,
|
|
32
31
|
)
|
|
@@ -134,26 +133,16 @@ class ControlledOperation(raw_types.Operation):
|
|
|
134
133
|
new_qubits[:n], self.sub_operation.with_qubits(*new_qubits[n:]), self.control_values
|
|
135
134
|
)
|
|
136
135
|
|
|
137
|
-
def
|
|
138
|
-
return self._decompose_with_context_()
|
|
139
|
-
|
|
140
|
-
def _decompose_with_context_(self, context: cirq.DecompositionContext | None = None):
|
|
136
|
+
def _decompose_with_context_(self, *, context: cirq.DecompositionContext):
|
|
141
137
|
result = protocols.decompose_once_with_qubits(
|
|
142
|
-
self.gate, self.qubits,
|
|
138
|
+
self.gate, self.qubits, None, flatten=False, context=context
|
|
143
139
|
)
|
|
144
|
-
if result is not
|
|
140
|
+
if result is not None:
|
|
145
141
|
return result
|
|
146
142
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
return NotImplemented
|
|
151
|
-
|
|
152
|
-
result = protocols.decompose_once(
|
|
153
|
-
self.sub_operation, NotImplemented, flatten=False, context=context
|
|
154
|
-
)
|
|
155
|
-
if result is NotImplemented:
|
|
156
|
-
return NotImplemented
|
|
143
|
+
result = protocols.decompose_once(self.sub_operation, None, flatten=False, context=context)
|
|
144
|
+
if result is None:
|
|
145
|
+
return None
|
|
157
146
|
|
|
158
147
|
return op_tree.transform_op_tree(
|
|
159
148
|
result, lambda op: op.controlled_by(*self.controls, control_values=self.control_values)
|
cirq/ops/gate_operation.py
CHANGED
|
@@ -148,14 +148,9 @@ class GateOperation(raw_types.Operation):
|
|
|
148
148
|
def _num_qubits_(self):
|
|
149
149
|
return len(self._qubits)
|
|
150
150
|
|
|
151
|
-
def
|
|
152
|
-
return self._decompose_with_context_()
|
|
153
|
-
|
|
154
|
-
def _decompose_with_context_(
|
|
155
|
-
self, context: cirq.DecompositionContext | None = None
|
|
156
|
-
) -> cirq.OP_TREE:
|
|
151
|
+
def _decompose_with_context_(self, *, context: cirq.DecompositionContext) -> cirq.OP_TREE:
|
|
157
152
|
return protocols.decompose_once_with_qubits(
|
|
158
|
-
self.gate, self.qubits,
|
|
153
|
+
self.gate, self.qubits, None, flatten=False, context=context
|
|
159
154
|
)
|
|
160
155
|
|
|
161
156
|
def _pauli_expansion_(self) -> value.LinearDict[str]:
|
cirq/ops/raw_types.py
CHANGED
|
@@ -828,12 +828,7 @@ class TaggedOperation(Operation):
|
|
|
828
828
|
def _json_dict_(self) -> dict[str, Any]:
|
|
829
829
|
return protocols.obj_to_dict_helper(self, ['sub_operation', 'tags'])
|
|
830
830
|
|
|
831
|
-
def
|
|
832
|
-
return self._decompose_with_context_()
|
|
833
|
-
|
|
834
|
-
def _decompose_with_context_(
|
|
835
|
-
self, context: cirq.DecompositionContext | None = None
|
|
836
|
-
) -> cirq.OP_TREE:
|
|
831
|
+
def _decompose_with_context_(self, *, context: cirq.DecompositionContext) -> cirq.OP_TREE:
|
|
837
832
|
return protocols.decompose_once(
|
|
838
833
|
self.sub_operation, default=None, flatten=False, context=context
|
|
839
834
|
)
|
|
@@ -983,11 +978,8 @@ class _InverseCompositeGate(Gate):
|
|
|
983
978
|
return self._original
|
|
984
979
|
return NotImplemented
|
|
985
980
|
|
|
986
|
-
def _decompose_(self, qubits):
|
|
987
|
-
return self._decompose_with_context_(qubits)
|
|
988
|
-
|
|
989
981
|
def _decompose_with_context_(
|
|
990
|
-
self, qubits: Sequence[cirq.Qid], context: cirq.DecompositionContext
|
|
982
|
+
self, qubits: Sequence[cirq.Qid], *, context: cirq.DecompositionContext
|
|
991
983
|
) -> cirq.OP_TREE:
|
|
992
984
|
return protocols.inverse(
|
|
993
985
|
protocols.decompose_once_with_qubits(self._original, qubits, context=context)
|
cirq/ops/raw_types_test.py
CHANGED
|
@@ -210,10 +210,10 @@ def test_default_validation_and_inverse() -> None:
|
|
|
210
210
|
assert i**-1 == t
|
|
211
211
|
assert t**-1 == i
|
|
212
212
|
assert cirq.decompose(i) == [cirq.X(a), cirq.S(b) ** -1, cirq.Z(a)]
|
|
213
|
-
assert
|
|
213
|
+
assert cirq.decompose_once(i) == [cirq.X(a), cirq.S(b) ** -1, cirq.Z(a)]
|
|
214
214
|
gate = i.gate
|
|
215
215
|
assert gate is not None
|
|
216
|
-
assert
|
|
216
|
+
assert cirq.decompose_once_with_qubits(gate, [a, b]) == [cirq.X(a), cirq.S(b) ** -1, cirq.Z(a)]
|
|
217
217
|
cirq.testing.assert_allclose_up_to_global_phase(
|
|
218
218
|
cirq.unitary(i), cirq.unitary(t).conj().T, atol=1e-8
|
|
219
219
|
)
|
|
@@ -653,7 +653,7 @@ def test_tagged_operation_forwards_protocols() -> None:
|
|
|
653
653
|
np.testing.assert_equal(cirq.unitary(tagged_h), cirq.unitary(h))
|
|
654
654
|
assert cirq.has_unitary(tagged_h)
|
|
655
655
|
assert cirq.decompose(tagged_h) == cirq.decompose(h)
|
|
656
|
-
assert
|
|
656
|
+
assert cirq.decompose_once(tagged_h) == cirq.decompose_once(h)
|
|
657
657
|
assert cirq.pauli_expansion(tagged_h) == cirq.pauli_expansion(h)
|
|
658
658
|
assert cirq.equal_up_to_global_phase(h, tagged_h)
|
|
659
659
|
assert np.isclose(cirq.kraus(h), cirq.kraus(tagged_h)).all()
|
|
@@ -31,7 +31,7 @@ from typing import (
|
|
|
31
31
|
Union,
|
|
32
32
|
)
|
|
33
33
|
|
|
34
|
-
from typing_extensions import Protocol
|
|
34
|
+
from typing_extensions import Protocol
|
|
35
35
|
|
|
36
36
|
from cirq import devices, ops
|
|
37
37
|
from cirq._doc import doc_private
|
|
@@ -51,10 +51,9 @@ DecomposeResult = Union[None, NotImplementedType, 'cirq.OP_TREE']
|
|
|
51
51
|
_CONTEXT_COUNTER = itertools.count() # Use _reset_context_counter() to reset the counter.
|
|
52
52
|
|
|
53
53
|
|
|
54
|
-
@runtime_checkable
|
|
55
54
|
class OpDecomposerWithContext(Protocol):
|
|
56
55
|
def __call__(
|
|
57
|
-
self, __op: cirq.Operation, *, context: cirq.DecompositionContext
|
|
56
|
+
self, __op: cirq.Operation, *, context: cirq.DecompositionContext
|
|
58
57
|
) -> DecomposeResult: ...
|
|
59
58
|
|
|
60
59
|
|
|
@@ -132,9 +131,7 @@ class SupportsDecompose(Protocol):
|
|
|
132
131
|
def _decompose_(self) -> DecomposeResult:
|
|
133
132
|
pass
|
|
134
133
|
|
|
135
|
-
def _decompose_with_context_(
|
|
136
|
-
self, *, context: DecompositionContext | None = None
|
|
137
|
-
) -> DecomposeResult:
|
|
134
|
+
def _decompose_with_context_(self, *, context: DecompositionContext) -> DecomposeResult:
|
|
138
135
|
pass
|
|
139
136
|
|
|
140
137
|
|
|
@@ -161,26 +158,24 @@ class SupportsDecomposeWithQubits(Protocol):
|
|
|
161
158
|
pass
|
|
162
159
|
|
|
163
160
|
def _decompose_with_context_(
|
|
164
|
-
self, qubits: tuple[cirq.Qid, ...], *, context: DecompositionContext
|
|
161
|
+
self, qubits: tuple[cirq.Qid, ...], *, context: DecompositionContext
|
|
165
162
|
) -> DecomposeResult:
|
|
166
163
|
pass
|
|
167
164
|
|
|
168
165
|
|
|
169
166
|
def _try_op_decomposer(
|
|
170
|
-
val: Any, decomposer: OpDecomposer | None, *, context: DecompositionContext
|
|
167
|
+
val: Any, decomposer: OpDecomposer | None, *, context: DecompositionContext
|
|
171
168
|
) -> DecomposeResult:
|
|
172
169
|
if decomposer is None or not isinstance(val, ops.Operation):
|
|
173
170
|
return None
|
|
174
171
|
if 'context' in inspect.signature(decomposer).parameters:
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
else:
|
|
178
|
-
return decomposer(val)
|
|
172
|
+
return decomposer(val, context=context) # type: ignore[call-arg]
|
|
173
|
+
return decomposer(val) # type: ignore[call-arg]
|
|
179
174
|
|
|
180
175
|
|
|
181
176
|
@dataclasses.dataclass(frozen=True)
|
|
182
177
|
class _DecomposeArgs:
|
|
183
|
-
context: DecompositionContext
|
|
178
|
+
context: DecompositionContext
|
|
184
179
|
intercepting_decomposer: OpDecomposer | None
|
|
185
180
|
fallback_decomposer: OpDecomposer | None
|
|
186
181
|
keep: Callable[[cirq.Operation], bool] | None
|
|
@@ -373,7 +368,7 @@ def decompose_once(
|
|
|
373
368
|
|
|
374
369
|
method = getattr(val, '_decompose_with_context_', None)
|
|
375
370
|
decomposed = NotImplemented if method is None else method(*args, **kwargs, context=context)
|
|
376
|
-
if decomposed is NotImplemented
|
|
371
|
+
if decomposed is NotImplemented:
|
|
377
372
|
method = getattr(val, '_decompose_', None)
|
|
378
373
|
decomposed = NotImplemented if method is None else method(*args, **kwargs)
|
|
379
374
|
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
17
|
import itertools
|
|
18
|
+
from types import NotImplementedType
|
|
18
19
|
from unittest import mock
|
|
19
20
|
|
|
20
21
|
import pytest
|
|
@@ -454,3 +455,46 @@ def test_extracting_global_phases() -> None:
|
|
|
454
455
|
assert not context.extract_global_phases
|
|
455
456
|
assert new_context.extract_global_phases
|
|
456
457
|
assert new_context.qubit_manager is qm
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
def test_handling_of_none_vs_notimplemented_return_values() -> None:
|
|
461
|
+
|
|
462
|
+
class TestOp:
|
|
463
|
+
called_decompose = False
|
|
464
|
+
called_decompose_with_context = False
|
|
465
|
+
return_value: NotImplementedType | None = None
|
|
466
|
+
|
|
467
|
+
def _decompose_(self):
|
|
468
|
+
self.called_decompose = True
|
|
469
|
+
return self.return_value
|
|
470
|
+
|
|
471
|
+
def _decompose_with_context_(self, *, context):
|
|
472
|
+
assert context is not None, 'A default context should be provided'
|
|
473
|
+
self.called_decompose_with_context = True
|
|
474
|
+
return self.return_value
|
|
475
|
+
|
|
476
|
+
op = TestOp()
|
|
477
|
+
result = cirq.decompose(op)
|
|
478
|
+
assert op.called_decompose_with_context, 'Should always call _decompose_with_context_'
|
|
479
|
+
assert not op.called_decompose, 'Should not fall back to _decompose_'
|
|
480
|
+
assert result == [op]
|
|
481
|
+
|
|
482
|
+
op = TestOp()
|
|
483
|
+
result = cirq.decompose_once(op, default='dummy')
|
|
484
|
+
assert op.called_decompose_with_context, 'Should always call _decompose_with_context_'
|
|
485
|
+
assert not op.called_decompose, 'Should not fall back to _decompose_'
|
|
486
|
+
assert result == 'dummy'
|
|
487
|
+
|
|
488
|
+
op = TestOp()
|
|
489
|
+
op.return_value = NotImplemented
|
|
490
|
+
result = cirq.decompose(op)
|
|
491
|
+
assert op.called_decompose_with_context, 'Should always call _decompose_with_context_'
|
|
492
|
+
assert op.called_decompose, 'Should fall back to _decompose_'
|
|
493
|
+
assert result == [op]
|
|
494
|
+
|
|
495
|
+
op = TestOp()
|
|
496
|
+
op.return_value = NotImplemented
|
|
497
|
+
result = cirq.decompose_once(op, default='dummy')
|
|
498
|
+
assert op.called_decompose_with_context, 'Should always call _decompose_with_context_'
|
|
499
|
+
assert op.called_decompose, 'Should fall back to _decompose_'
|
|
500
|
+
assert result == 'dummy'
|
{cirq_core-1.7.0.dev20250814213759.dist-info → cirq_core-1.7.0.dev20250815191916.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.dev20250815191916
|
|
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.dev20250814213759.dist-info → cirq_core-1.7.0.dev20250815191916.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=E4k19Lqr7Qusg6iB6e-JugbSlr43860mgKMZsEOkpk0,1206
|
|
8
|
+
cirq/_version_test.py,sha256=rUAwr-_ok4uWAk-JMemvKpvCG2osT_-CasYmHxhGEUo,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
|
|
@@ -193,7 +193,7 @@ cirq/devices/thermal_noise_model_test.py,sha256=2IKRk30OXQ6wVuOGM28dYdXOaP578nTG
|
|
|
193
193
|
cirq/devices/unconstrained_device.py,sha256=gC3NB4P8UUsVyz3o7CcVV_L6xIeY-ewgaUoXy3UCfDE,1536
|
|
194
194
|
cirq/devices/unconstrained_device_test.py,sha256=R3JSwkjSIMYd9jtNGsYmEAw4yzESPhh88MZfd86Cekg,1107
|
|
195
195
|
cirq/experiments/__init__.py,sha256=3y8FX6Edh_mEFJ7AWjhDurnSLxuEt0_edqL7CitCrTQ,3777
|
|
196
|
-
cirq/experiments/fidelity_estimation.py,sha256=
|
|
196
|
+
cirq/experiments/fidelity_estimation.py,sha256=Wd2OiWzrlLwIbRbykV2axEbFdFKoJBc6sdIbAWTm1Q4,9362
|
|
197
197
|
cirq/experiments/fidelity_estimation_test.py,sha256=ivUgYobEuN2eIzUveXy1Asabure2fRaopL8QfdFtvFQ,5007
|
|
198
198
|
cirq/experiments/n_qubit_tomography.py,sha256=16u0Tv14SyUM9WCk-ZxbBit9cl93MbZodGrj16XiBuo,8436
|
|
199
199
|
cirq/experiments/n_qubit_tomography_test.py,sha256=8wIgs0O8DtlCGOyC0MZA_d3tLNoURX1ARcqnnp1360g,4439
|
|
@@ -287,7 +287,7 @@ cirq/ops/arithmetic_operation.py,sha256=FO2ne5ZHIcUCJySgOC60UApfDtfVBaZqlrhM46f7
|
|
|
287
287
|
cirq/ops/arithmetic_operation_test.py,sha256=F5fPQF_sRWi8qyP_SgDzJ8kfX0jUVMj59_VOPpbXH_0,4938
|
|
288
288
|
cirq/ops/boolean_hamiltonian.py,sha256=x25fraM9NNs-XzDKDl2AZ1AMpkVovfe-dNm_0wOolyI,14927
|
|
289
289
|
cirq/ops/boolean_hamiltonian_test.py,sha256=_4mFFrbO9C21oZYutr_pl01_bqDDxvgY_h4DWKGkse0,8630
|
|
290
|
-
cirq/ops/classically_controlled_operation.py,sha256=
|
|
290
|
+
cirq/ops/classically_controlled_operation.py,sha256=4b5vRbUKJcd7JwEOJKHWzeqPifJeDbUqzdCpoqaM__g,10248
|
|
291
291
|
cirq/ops/classically_controlled_operation_test.py,sha256=OedFFoAwS4WnHKG58xgjhbKFgKebhYyP8I7AU4a0m9k,50425
|
|
292
292
|
cirq/ops/clifford_gate.py,sha256=BMjCuJq2fTFZm-Sv475qDqwsFof1kxru8zNDJOTFkL8,40055
|
|
293
293
|
cirq/ops/clifford_gate_test.py,sha256=nuIGDqc7AWf5KJY3JJSe4mt8egLlcyuf5oorX_aBdsU,41268
|
|
@@ -301,7 +301,7 @@ cirq/ops/control_values.py,sha256=GrNi8YJZSZDCl8Su6Ocimvd1R1SejFJjVu2thcJ8VLI,13
|
|
|
301
301
|
cirq/ops/control_values_test.py,sha256=Wyn0nwtcpnJvcPVRHmFGb3PtYxvsbpluA5UbPrG7tIo,13067
|
|
302
302
|
cirq/ops/controlled_gate.py,sha256=3Hex9AdY6c_DedKoCqqpS4gx9rAgm9KZITbwUBXsoYg,13562
|
|
303
303
|
cirq/ops/controlled_gate_test.py,sha256=jmIOlCx8dC3VId4NynX1ZYy7s7tkLav_d-fjiIZyVh0,29308
|
|
304
|
-
cirq/ops/controlled_operation.py,sha256=
|
|
304
|
+
cirq/ops/controlled_operation.py,sha256=Anes_PkQ5YLRS2Y6yQY0ssB85oWg5pJkvoQTSDrX--A,13514
|
|
305
305
|
cirq/ops/controlled_operation_test.py,sha256=qXpnUoeWmOQaTMZPAuuICtX9Idf-JWtdARTsTENv54g,16546
|
|
306
306
|
cirq/ops/dense_pauli_string.py,sha256=1TijNu1D2HIbbnwLbT_f546R2L4OCQtm1bKjqhno1Kg,24234
|
|
307
307
|
cirq/ops/dense_pauli_string_test.py,sha256=JLfTLO13Qnr9c5jZOPBTJWD4409vm7uV6vi8R7m1kOg,21517
|
|
@@ -315,7 +315,7 @@ cirq/ops/fsim_gate.py,sha256=Qs7FLsNXR7K2jNVZ8I9o9YLvOb6cC6iBnAvZAHERNk0,20037
|
|
|
315
315
|
cirq/ops/fsim_gate_test.py,sha256=QgckC2fij30grZJoO6HnQHdGkKcwtiegedEBRid3wF0,25858
|
|
316
316
|
cirq/ops/gate_features.py,sha256=OfjsIGftnGpNUDAYwSP4obG0FsMrHYfp49ZOjbvbmNE,1085
|
|
317
317
|
cirq/ops/gate_features_test.py,sha256=JYPunTBr48CQoIOB1wk2QEdPwtnmE-FxUoF6a4ZeRB8,2407
|
|
318
|
-
cirq/ops/gate_operation.py,sha256=
|
|
318
|
+
cirq/ops/gate_operation.py,sha256=PowWX9XcX_xHXt_7Ccg8pqqQwiJtN3qSfbtlKJEyXx4,13321
|
|
319
319
|
cirq/ops/gate_operation_test.py,sha256=4QwWxCjGXNM__6QGw1kYSbBMh_4783jBZVBJD1ERGPk,18020
|
|
320
320
|
cirq/ops/gateset.py,sha256=ya5OUsgd1j703Kk3hq6f-LzT1ZjBo_tl-FV0hvvlaAA,21492
|
|
321
321
|
cirq/ops/gateset_test.py,sha256=JGQtCOkhAC11vhlZRpwJowNfU6v-hlIt9qdRRJgvfQY,17407
|
|
@@ -378,8 +378,8 @@ cirq/ops/qubit_order_or_list.py,sha256=5kChRv1gUnBKB-kF6okXoXcCa5CXbJ6HoB6ETpfl3
|
|
|
378
378
|
cirq/ops/qubit_order_test.py,sha256=8uOW9oLLQcjbYvd2DdXZLCbRS2sJuH6b8Bal3SgPo5M,4372
|
|
379
379
|
cirq/ops/random_gate_channel.py,sha256=i4eg9GA4CF6ZWQRrICa5lfYqvdZzN8oLEWwXHcxRStM,5115
|
|
380
380
|
cirq/ops/random_gate_channel_test.py,sha256=p-xtDOMIYBJ1wVHLJmrALi-ZU978l3AVuX0kgoan1Ac,8523
|
|
381
|
-
cirq/ops/raw_types.py,sha256=
|
|
382
|
-
cirq/ops/raw_types_test.py,sha256=
|
|
381
|
+
cirq/ops/raw_types.py,sha256=kna5HmYONBXgXTfrTXgozYwBSxM9SwgBx2jTD4QWGqk,43410
|
|
382
|
+
cirq/ops/raw_types_test.py,sha256=8h2g9EzGc65-eDu_6SPB_fuVy-a3Uos0EIPA1j0eLEc,35401
|
|
383
383
|
cirq/ops/state_preparation_channel.py,sha256=3qbqrrYaVN2eHL1qiBHcItj1Pzjxhtq10tSEkRz9GNM,4781
|
|
384
384
|
cirq/ops/state_preparation_channel_test.py,sha256=xFi6nOFPoQatxvnorCXujmhMvtf65lmyFfxbGlTKo4c,6039
|
|
385
385
|
cirq/ops/swap_gates.py,sha256=mEDVB4pdBsbenaOahrNtAcE2B1ZPW-4vGq079rECxf4,11743
|
|
@@ -411,8 +411,8 @@ cirq/protocols/commutes_protocol.py,sha256=6cJNba3aEsCh_XHIeNTHb0LRzws6ZbxOrKL_r
|
|
|
411
411
|
cirq/protocols/commutes_protocol_test.py,sha256=9YhBFYAwc-XpU7HrQp-GarKwmwmbgyadUYqlkiG10A8,5885
|
|
412
412
|
cirq/protocols/control_key_protocol.py,sha256=uGgfahCHzsFpUGq6flgTMuqPh20zUSB2AOkSrhyoqwQ,2621
|
|
413
413
|
cirq/protocols/control_key_protocol_test.py,sha256=fNDDkf4mQpA_tKuhX1e2BJN72v9HdGftgd79sOqREJE,1014
|
|
414
|
-
cirq/protocols/decompose_protocol.py,sha256=
|
|
415
|
-
cirq/protocols/decompose_protocol_test.py,sha256=
|
|
414
|
+
cirq/protocols/decompose_protocol.py,sha256=QFiH6D1QzWT-TCwkClXbcVADIBwKHl39X8SPJ8E2524,18967
|
|
415
|
+
cirq/protocols/decompose_protocol_test.py,sha256=JJexKMKYdSW1K1S4wkTyR1Wy80Ku_jHslSJx3gJ5REs,18130
|
|
416
416
|
cirq/protocols/equal_up_to_global_phase_protocol.py,sha256=y-GPOImHgdjVqXF-qE3SUmlekF6-zI0tgi0E2nTdW1M,4106
|
|
417
417
|
cirq/protocols/equal_up_to_global_phase_protocol_test.py,sha256=EDfWnCuYAVfcvBXHYoZ0lDukNEGG2c53vzP7s8jHLKA,6050
|
|
418
418
|
cirq/protocols/has_stabilizer_effect_protocol.py,sha256=T_CVVpvckp3ZTsWi089mPqbmwOPLlF6GalEKrVK7Hvs,4309
|
|
@@ -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.dev20250815191916.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
1238
|
+
cirq_core-1.7.0.dev20250815191916.dist-info/METADATA,sha256=jaNcprEPL5Z52EjMKVNYuPZobmhYxWf84o_5KmFOX04,4857
|
|
1239
|
+
cirq_core-1.7.0.dev20250815191916.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
1240
|
+
cirq_core-1.7.0.dev20250815191916.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
|
|
1241
|
+
cirq_core-1.7.0.dev20250815191916.dist-info/RECORD,,
|
{cirq_core-1.7.0.dev20250814213759.dist-info → cirq_core-1.7.0.dev20250815191916.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|