cirq-core 1.6.0.dev20250702211226__py3-none-any.whl → 1.6.0.dev20250707183524__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/transformers/align.py +2 -2
- cirq/transformers/dynamical_decoupling.py +4 -4
- cirq/transformers/dynamical_decoupling_test.py +1 -1
- cirq/transformers/expand_composite_test.py +1 -1
- cirq/transformers/measurement_transformers.py +1 -1
- cirq/transformers/merge_single_qubit_gates.py +3 -3
- cirq/transformers/merge_single_qubit_gates_test.py +2 -2
- cirq/transformers/noise_adding.py +2 -2
- cirq/transformers/optimize_for_target_gateset.py +3 -3
- cirq/transformers/qubit_management_transformers.py +2 -2
- cirq/transformers/randomized_measurements.py +7 -7
- cirq/transformers/stratify.py +1 -1
- cirq/transformers/symbolize.py +1 -1
- cirq/transformers/tag_transformers.py +3 -3
- cirq/transformers/transformer_api.py +2 -2
- cirq/transformers/transformer_primitives.py +6 -6
- {cirq_core-1.6.0.dev20250702211226.dist-info → cirq_core-1.6.0.dev20250707183524.dist-info}/METADATA +1 -1
- {cirq_core-1.6.0.dev20250702211226.dist-info → cirq_core-1.6.0.dev20250707183524.dist-info}/RECORD +23 -23
- {cirq_core-1.6.0.dev20250702211226.dist-info → cirq_core-1.6.0.dev20250707183524.dist-info}/WHEEL +0 -0
- {cirq_core-1.6.0.dev20250702211226.dist-info → cirq_core-1.6.0.dev20250707183524.dist-info}/licenses/LICENSE +0 -0
- {cirq_core-1.6.0.dev20250702211226.dist-info → cirq_core-1.6.0.dev20250707183524.dist-info}/top_level.txt +0 -0
cirq/_version.py
CHANGED
cirq/_version_test.py
CHANGED
cirq/transformers/align.py
CHANGED
|
@@ -30,7 +30,7 @@ if TYPE_CHECKING:
|
|
|
30
30
|
def align_left(
|
|
31
31
|
circuit: cirq.AbstractCircuit, *, context: cirq.TransformerContext | None = None
|
|
32
32
|
) -> cirq.Circuit:
|
|
33
|
-
"""
|
|
33
|
+
"""Aligns gates to the left of the circuit.
|
|
34
34
|
|
|
35
35
|
Note that tagged operations with tag in `context.tags_to_ignore` will continue to stay in their
|
|
36
36
|
original position and will not be aligned.
|
|
@@ -62,7 +62,7 @@ def align_left(
|
|
|
62
62
|
def align_right(
|
|
63
63
|
circuit: cirq.AbstractCircuit, *, context: cirq.TransformerContext | None = None
|
|
64
64
|
) -> cirq.Circuit:
|
|
65
|
-
"""
|
|
65
|
+
"""Aligns gates to the right of the circuit.
|
|
66
66
|
|
|
67
67
|
Note that tagged operations with tag in `context.tags_to_ignore` will continue to stay in their
|
|
68
68
|
original position and will not be aligned.
|
|
@@ -61,7 +61,7 @@ def _pauli_up_to_global_phase(gate: ops.Gate) -> ops.Pauli | None:
|
|
|
61
61
|
def _validate_dd_sequence(dd_sequence: tuple[ops.Gate, ...]) -> None:
|
|
62
62
|
"""Validates a given dynamical decoupling sequence.
|
|
63
63
|
|
|
64
|
-
The sequence should only
|
|
64
|
+
The sequence should only consist of Pauli gates and is essentially an identity gate.
|
|
65
65
|
|
|
66
66
|
Args:
|
|
67
67
|
dd_sequence: Input dynamical sequence to be validated.
|
|
@@ -82,7 +82,7 @@ def _validate_dd_sequence(dd_sequence: tuple[ops.Gate, ...]) -> None:
|
|
|
82
82
|
|
|
83
83
|
if not protocols.equal_up_to_global_phase(product, np.eye(2)):
|
|
84
84
|
raise ValueError(
|
|
85
|
-
'Invalid dynamical decoupling sequence. Expect sequence
|
|
85
|
+
'Invalid dynamical decoupling sequence. Expect sequence product equals'
|
|
86
86
|
f' identity up to a global phase, got {product}.'.replace('\n', ' ')
|
|
87
87
|
)
|
|
88
88
|
|
|
@@ -208,13 +208,13 @@ def add_dynamical_decoupling(
|
|
|
208
208
|
single_qubit_gate_moments_only: bool = True,
|
|
209
209
|
) -> cirq.Circuit:
|
|
210
210
|
"""Adds dynamical decoupling gate operations to a given circuit.
|
|
211
|
-
This transformer might add new moments thus change structure of the original circuit.
|
|
211
|
+
This transformer might add new moments and thus change the structure of the original circuit.
|
|
212
212
|
|
|
213
213
|
Args:
|
|
214
214
|
circuit: Input circuit to transform.
|
|
215
215
|
context: `cirq.TransformerContext` storing common configurable options for transformers.
|
|
216
216
|
schema: Dynamical decoupling schema name or a dynamical decoupling sequence.
|
|
217
|
-
If a schema is specified, provided dynamical
|
|
217
|
+
If a schema is specified, the provided dynamical decoupling sequence will be used.
|
|
218
218
|
Otherwise, customized dynamical decoupling sequence will be applied.
|
|
219
219
|
single_qubit_gate_moments_only: If set True, dynamical decoupling operation will only be
|
|
220
220
|
added in single-qubit gate moments.
|
|
@@ -236,7 +236,7 @@ def test_pull_through_h_gate_case2(single_qubit_gate_moments_only: bool):
|
|
|
236
236
|
([X], 'Invalid dynamical decoupling sequence. Expect more than one gates.'),
|
|
237
237
|
(
|
|
238
238
|
[X, Y],
|
|
239
|
-
'Invalid dynamical decoupling sequence. Expect sequence
|
|
239
|
+
'Invalid dynamical decoupling sequence. Expect sequence product equals identity'
|
|
240
240
|
' up to a global phase, got',
|
|
241
241
|
),
|
|
242
242
|
(
|
|
@@ -191,7 +191,7 @@ def test_do_not_decompose_no_compile():
|
|
|
191
191
|
assert_equal_mod_empty(c, cirq.expand_composite(c, context=context))
|
|
192
192
|
|
|
193
193
|
|
|
194
|
-
def
|
|
194
|
+
def test_expands_composite_recursively_preserving_structure():
|
|
195
195
|
q = cirq.LineQubit.range(2)
|
|
196
196
|
c_nested = cirq.FrozenCircuit(
|
|
197
197
|
cirq.SWAP(*q[:2]), cirq.SWAP(*q[:2]).with_tags("ignore"), cirq.SWAP(*q[:2])
|
|
@@ -172,7 +172,7 @@ def _all_possible_datastore_states(
|
|
|
172
172
|
keys: Iterable[tuple[cirq.MeasurementKey, int]],
|
|
173
173
|
measurement_qubits: dict[cirq.MeasurementKey, list[tuple[cirq.Qid, ...]]],
|
|
174
174
|
) -> Iterable[cirq.ClassicalDataStoreReader]:
|
|
175
|
-
"""The
|
|
175
|
+
"""The Cartesian product of all possible DataStore states for the given keys."""
|
|
176
176
|
# First we get the list of all possible values. So if we have a key mapped to qubits of shape
|
|
177
177
|
# (2, 2) and a key mapped to a qutrit, the possible measurement values are:
|
|
178
178
|
# [((0, 0), (0,)),
|
|
@@ -185,7 +185,7 @@ def _sweep_on_symbols(sweep: Sweep, symbols: set[sympy.Symbol]) -> Sweep:
|
|
|
185
185
|
def _calc_phxz_sweeps(
|
|
186
186
|
symbolized_circuit: cirq.Circuit, resolved_circuits: list[cirq.Circuit]
|
|
187
187
|
) -> Sweep:
|
|
188
|
-
"""
|
|
188
|
+
"""Returns the phxz sweep of the symbolized_circuit on resolved_circuits.
|
|
189
189
|
|
|
190
190
|
Raises:
|
|
191
191
|
ValueError: Structural mismatch: A `resolved_circuit` contains an unexpected gate type.
|
|
@@ -246,7 +246,7 @@ def merge_single_qubit_gates_to_phxz_symbolized(
|
|
|
246
246
|
Args:
|
|
247
247
|
circuit: Input circuit to transform. It will not be modified.
|
|
248
248
|
context: `cirq.TransformerContext` storing common configurable options for transformers.
|
|
249
|
-
sweep: Sweep of the symbols in the input circuit
|
|
249
|
+
sweep: Sweep of the symbols in the input circuit. An updated Sweep will be returned
|
|
250
250
|
based on the transformation.
|
|
251
251
|
atol: Absolute tolerance to angle error. Larger values allow more negligible gates to be
|
|
252
252
|
dropped, smaller values increase accuracy.
|
|
@@ -280,7 +280,7 @@ def merge_single_qubit_gates_to_phxz_symbolized(
|
|
|
280
280
|
remaining_symbols: set[sympy.Symbol] = set(
|
|
281
281
|
protocols.parameter_symbols(circuit) - single_qubit_gate_symbols
|
|
282
282
|
)
|
|
283
|
-
# If all single qubit gates are not parameterized, call the
|
|
283
|
+
# If all single qubit gates are not parameterized, call the non-parameterized version of
|
|
284
284
|
# the transformer.
|
|
285
285
|
if not single_qubit_gate_symbols:
|
|
286
286
|
return (merge_single_qubit_gates_to_phxz(circuit, context=context, atol=atol), sweep)
|
|
@@ -287,7 +287,7 @@ class TestMergeSingleQubitGatesSymbolized(TestCase):
|
|
|
287
287
|
)
|
|
288
288
|
assert_optimizes(output_circuit, expected)
|
|
289
289
|
|
|
290
|
-
# Check the unitaries are preserved for each set of sweep
|
|
290
|
+
# Check the unitaries are preserved for each set of sweep parameterization.
|
|
291
291
|
for old_resolver, new_resolver in zip(sweep, new_sweep):
|
|
292
292
|
cirq.testing.assert_circuits_have_same_unitary_given_final_permutation(
|
|
293
293
|
cirq.resolve_parameters(input_circuit, old_resolver),
|
|
@@ -310,7 +310,7 @@ class TestMergeSingleQubitGatesSymbolized(TestCase):
|
|
|
310
310
|
new_circuit, new_sweep = cirq.merge_single_qubit_gates_to_phxz_symbolized(
|
|
311
311
|
old_circuit, sweep=old_sweep
|
|
312
312
|
)
|
|
313
|
-
# Check the unitaries are preserved for each set of sweep
|
|
313
|
+
# Check the unitaries are preserved for each set of sweep parameterization.
|
|
314
314
|
for old_resolver, new_resolver in zip(old_sweep, new_sweep):
|
|
315
315
|
cirq.testing.assert_circuits_have_same_unitary_given_final_permutation(
|
|
316
316
|
cirq.resolve_parameters(old_circuit[0:-1], old_resolver),
|
|
@@ -36,7 +36,7 @@ class DepolarizingNoiseTransformer:
|
|
|
36
36
|
|
|
37
37
|
Attrs:
|
|
38
38
|
p: The probability with which to add noise.
|
|
39
|
-
target_gate: Add depolarizing
|
|
39
|
+
target_gate: Add depolarizing noise after this type of gate
|
|
40
40
|
"""
|
|
41
41
|
|
|
42
42
|
def __init__(
|
|
@@ -88,7 +88,7 @@ class DepolarizingNoiseTransformer:
|
|
|
88
88
|
rng = np.random.default_rng()
|
|
89
89
|
target_gate = self.target_gate
|
|
90
90
|
|
|
91
|
-
# add random Pauli gates with probability p after each
|
|
91
|
+
# add random Pauli gates with probability p after each specified gate
|
|
92
92
|
assert target_gate.num_qubits() == 2, "`target_gate` must be a two-qubit gate."
|
|
93
93
|
paulis = [ops.I, ops.X, ops.Y, ops.Z]
|
|
94
94
|
new_moments = []
|
|
@@ -46,9 +46,9 @@ def _decompose_operations_to_target_gateset(
|
|
|
46
46
|
"""Decomposes every operation to `gateset` using `cirq.decompose` and `decomposer`.
|
|
47
47
|
|
|
48
48
|
This transformer attempts to decompose every operation `op` in the given circuit to `gateset`
|
|
49
|
-
using `cirq.decompose` protocol with `decomposer` used as an intercepting decomposer. This
|
|
50
|
-
ensures that `op` is recursively decomposed using implicitly defined known decompositions
|
|
51
|
-
|
|
49
|
+
using the `cirq.decompose` protocol with `decomposer` used as an intercepting decomposer. This
|
|
50
|
+
ensures that `op` is recursively decomposed using implicitly defined known decompositions (e.g.
|
|
51
|
+
in the `_decompose_` magic method on the gate class) until either `decomposer` knows how to
|
|
52
52
|
decompose the given operation or the given operation belongs to `gateset`.
|
|
53
53
|
|
|
54
54
|
Args:
|
|
@@ -58,7 +58,7 @@ def map_clean_and_borrowable_qubits(
|
|
|
58
58
|
This transformer uses the `QubitManager` provided in the input to:
|
|
59
59
|
- Allocate clean ancilla qubits by delegating to `qm.qalloc` for all `CleanQubit`s.
|
|
60
60
|
- Allocate dirty qubits for all `BorrowableQubit` types via the following two steps:
|
|
61
|
-
1. First
|
|
61
|
+
1. First analyze the input circuit and check if there are any suitable system qubits
|
|
62
62
|
that can be borrowed, i.e. ones which do not have any overlapping operations
|
|
63
63
|
between circuit[start_index : end_index] where `(start_index, end_index)` is the
|
|
64
64
|
lifespan of temporary borrowable qubit under consideration. If yes, borrow the system
|
|
@@ -84,7 +84,7 @@ def map_clean_and_borrowable_qubits(
|
|
|
84
84
|
circuit: Input `cirq.Circuit` containing temporarily allocated
|
|
85
85
|
`CleanQubit`/`BorrowableQubit`s.
|
|
86
86
|
qm: An instance of `cirq.QubitManager` specifying the strategy to use for allocating /
|
|
87
|
-
|
|
87
|
+
deallocating new ancilla qubits to replace the temporary qubits.
|
|
88
88
|
|
|
89
89
|
Returns:
|
|
90
90
|
An updated `cirq.Circuit` with all `CleanQubit`/`BorrowableQubit` mapped to either existing
|
|
@@ -34,8 +34,8 @@ class RandomizedMeasurements:
|
|
|
34
34
|
For more details on the randomized measurement toolbox see https://arxiv.org/abs/2203.11374
|
|
35
35
|
|
|
36
36
|
Args:
|
|
37
|
-
subsystem: The specific subsystem (e.g qubit index) to measure in random basis
|
|
38
|
-
|
|
37
|
+
subsystem: The specific subsystem (e.g., qubit index) to measure in a random basis.
|
|
38
|
+
The rest of the qubits are measured in the computational basis.
|
|
39
39
|
"""
|
|
40
40
|
self.subsystem = subsystem
|
|
41
41
|
|
|
@@ -48,9 +48,9 @@ class RandomizedMeasurements:
|
|
|
48
48
|
context: transformer_api.TransformerContext | None = None,
|
|
49
49
|
) -> cirq.Circuit:
|
|
50
50
|
"""Apply the transformer to the given circuit. Given an input circuit returns
|
|
51
|
-
a new circuit with the pre-measurement unitaries and
|
|
52
|
-
to the qubits in the subsystem provided.If no subsystem is specified in the
|
|
53
|
-
construction of this class it defaults to measuring all the qubits in the
|
|
51
|
+
a new circuit with the pre-measurement unitaries and measurement gates added
|
|
52
|
+
to the qubits in the subsystem provided. If no subsystem is specified in the
|
|
53
|
+
construction of this class, it defaults to measuring all the qubits in the
|
|
54
54
|
randomized bases.
|
|
55
55
|
|
|
56
56
|
Args:
|
|
@@ -138,7 +138,7 @@ def _pauli_basis_rotation(rng: np.random.Generator) -> cirq.Gate:
|
|
|
138
138
|
|
|
139
139
|
|
|
140
140
|
def _single_qubit_clifford(rng: np.random.Generator) -> cirq.Gate:
|
|
141
|
-
"""Randomly
|
|
141
|
+
"""Randomly generates a single-qubit Clifford rotation.
|
|
142
142
|
|
|
143
143
|
Args:
|
|
144
144
|
rng: Random number generator
|
|
@@ -156,7 +156,7 @@ def _single_qubit_clifford(rng: np.random.Generator) -> cirq.Gate:
|
|
|
156
156
|
|
|
157
157
|
|
|
158
158
|
def _single_qubit_cue(rng: np.random.Generator) -> cirq.Gate:
|
|
159
|
-
"""Randomly
|
|
159
|
+
"""Randomly generates a CUE gate.
|
|
160
160
|
|
|
161
161
|
Args:
|
|
162
162
|
rng: Random number generator
|
cirq/transformers/stratify.py
CHANGED
|
@@ -164,7 +164,7 @@ def _stratify_circuit(
|
|
|
164
164
|
new_moments += [[] for _ in range(num_classes)]
|
|
165
165
|
new_moments[time_index].append(op)
|
|
166
166
|
|
|
167
|
-
# Update qubit,
|
|
167
|
+
# Update qubit, measurement key, and control key moments.
|
|
168
168
|
for qubit in op.qubits:
|
|
169
169
|
qubit_time_index[qubit] = time_index
|
|
170
170
|
for key in protocols.measurement_key_objs(op):
|
cirq/transformers/symbolize.py
CHANGED
|
@@ -75,7 +75,7 @@ def symbolize_single_qubit_gates_by_indexed_tags(
|
|
|
75
75
|
"""
|
|
76
76
|
|
|
77
77
|
def _map_func(op: cirq.Operation, _):
|
|
78
|
-
"""Maps an op with tag `{tag_prefix}_i` to a
|
|
78
|
+
"""Maps an op with tag `{tag_prefix}_i` to a symbolized `PhasedXZGate(xi,zi,ai)`."""
|
|
79
79
|
tags: set[Hashable] = set(op.tags)
|
|
80
80
|
tag_id: None | int = None
|
|
81
81
|
for tag in tags:
|
|
@@ -85,12 +85,12 @@ def remove_tags(
|
|
|
85
85
|
target_tags = target_tags or set()
|
|
86
86
|
|
|
87
87
|
def _map_func(op: cirq.Operation, _) -> cirq.OP_TREE:
|
|
88
|
-
|
|
88
|
+
remaining_tags = set()
|
|
89
89
|
for tag in op.tags:
|
|
90
90
|
if not remove_if(tag) and tag not in target_tags:
|
|
91
|
-
|
|
91
|
+
remaining_tags.add(tag)
|
|
92
92
|
|
|
93
|
-
return op.untagged.with_tags(*
|
|
93
|
+
return op.untagged.with_tags(*remaining_tags)
|
|
94
94
|
|
|
95
95
|
return transformer_primitives.map_operations(
|
|
96
96
|
circuit, _map_func, deep=context.deep if context else False
|
|
@@ -88,8 +88,8 @@ class TransformerLogger:
|
|
|
88
88
|
|
|
89
89
|
The logger assumes that
|
|
90
90
|
- Transformers are run sequentially.
|
|
91
|
-
- Nested transformers are allowed, in which case the behavior would be similar to
|
|
92
|
-
doing a depth
|
|
91
|
+
- Nested transformers are allowed, in which case the behavior would be similar to
|
|
92
|
+
doing a depth-first search on the graph of transformers -- i.e. the top level transformer
|
|
93
93
|
would end (i.e. receive a `register_final` call) once all nested transformers (i.e. all
|
|
94
94
|
`register_initial` calls received while the top level transformer was active) have
|
|
95
95
|
finished (i.e. corresponding `register_final` calls have also been received).
|
|
@@ -125,7 +125,7 @@ def _map_operations_impl(
|
|
|
125
125
|
resulting optree spans more than 1 moment, it's either wrapped in a tagged circuit
|
|
126
126
|
operation and inserted in-place in the same moment (if `wrap_in_circuit_op` is True)
|
|
127
127
|
OR the mapped operations are inserted directly in the circuit, preserving moment
|
|
128
|
-
|
|
128
|
+
structure. The effect is equivalent to (but much faster) a two-step approach of first
|
|
129
129
|
wrapping the operations in a circuit operation and then calling `cirq.unroll_circuit_op`
|
|
130
130
|
to unroll the corresponding circuit ops.
|
|
131
131
|
deep: If true, `map_func` will be recursively applied to circuits wrapped inside
|
|
@@ -364,13 +364,13 @@ def merge_operations(
|
|
|
364
364
|
"""Merges operations in a circuit by calling `merge_func` iteratively on operations.
|
|
365
365
|
|
|
366
366
|
Two operations op1 and op2 are merge-able if
|
|
367
|
-
- There is no other
|
|
367
|
+
- There is no other operation between op1 and op2 in the circuit
|
|
368
368
|
- is_subset(op1.qubits, op2.qubits) or is_subset(op2.qubits, op1.qubits)
|
|
369
369
|
|
|
370
370
|
The `merge_func` is a callable which, given two merge-able operations
|
|
371
371
|
op1 and op2, decides whether they should be merged into a single operation
|
|
372
372
|
or not. If not, it should return None, else it should return the single merged
|
|
373
|
-
|
|
373
|
+
operation `op`.
|
|
374
374
|
|
|
375
375
|
The method iterates on the input circuit moment-by-moment from left to right and attempts
|
|
376
376
|
to repeatedly merge each operation in the latest moment with all the corresponding merge-able
|
|
@@ -383,7 +383,7 @@ def merge_operations(
|
|
|
383
383
|
|
|
384
384
|
The number of calls to `merge_func` is O(N), where N = Total no. of operations, because:
|
|
385
385
|
- Every time the `merge_func` returns a new operation, the number of operations in the
|
|
386
|
-
circuit
|
|
386
|
+
circuit reduces by 1 and hence this can happen at most O(N) times
|
|
387
387
|
- Every time the `merge_func` returns None, the current operation is inserted into the
|
|
388
388
|
frontier and we go on to process the next operation, which can also happen at-most
|
|
389
389
|
O(N) times.
|
|
@@ -501,7 +501,7 @@ def merge_operations_to_circuit_op(
|
|
|
501
501
|
Args:
|
|
502
502
|
circuit: Input circuit to apply the transformations on. The input circuit is not mutated.
|
|
503
503
|
can_merge: Callable to determine whether a new operation `right_op` can be merged into an
|
|
504
|
-
existing connected component of operations `left_ops` based on
|
|
504
|
+
existing connected component of operations `left_ops` based on boolean returned by
|
|
505
505
|
`can_merge(left_ops, right_op)`.
|
|
506
506
|
tags_to_ignore: Tagged operations marked any of `tags_to_ignore` will not be considered as
|
|
507
507
|
potential candidates for any connected component.
|
|
@@ -771,7 +771,7 @@ def unroll_circuit_op_greedy_frontier(
|
|
|
771
771
|
def toggle_tags(circuit: CIRCUIT_TYPE, tags: Sequence[Hashable], *, deep: bool = False):
|
|
772
772
|
"""Toggles tags applied on each operation in the circuit, via `op.tags ^= tags`
|
|
773
773
|
|
|
774
|
-
For every
|
|
774
|
+
For every operation `op` in the input circuit, the tags on `op` are replaced by a symmetric
|
|
775
775
|
difference of `op.tags` and `tags` -- this is useful in scenarios where you mark a small subset
|
|
776
776
|
of operations with a specific tag and then toggle the set of marked operations s.t. every
|
|
777
777
|
marked operation is now unmarked and vice versa.
|
{cirq_core-1.6.0.dev20250702211226.dist-info → cirq_core-1.6.0.dev20250707183524.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cirq-core
|
|
3
|
-
Version: 1.6.0.
|
|
3
|
+
Version: 1.6.0.dev20250707183524
|
|
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.6.0.dev20250702211226.dist-info → cirq_core-1.6.0.dev20250707183524.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=9Pv2Pu8YDHvyhqk1PRy5iem8pH4X4yWc6hA6L0cVDGM,1278
|
|
8
|
+
cirq/_version_test.py,sha256=OO92frcOSdonTbC0G6BUYoGu95PmU_wkmKd6JphJE0U,155
|
|
9
9
|
cirq/conftest.py,sha256=wSDKNdIQRDfLnXvOCWD3erheOw8JHRhdfQ53EyTUIXg,1239
|
|
10
10
|
cirq/json_resolver_cache.py,sha256=hYyG53VJeV61X0oukK5ndZYega8lkL2FyaL1m0j6h5M,13556
|
|
11
11
|
cirq/py.typed,sha256=VFSlmh_lNwnaXzwY-ZuW-C2Ws5PkuDoVgBdNCs0jXJE,63
|
|
@@ -1051,47 +1051,47 @@ cirq/testing/test_data/test_module_missing_json_test_data/__init__.py,sha256=47D
|
|
|
1051
1051
|
cirq/testing/test_data/test_module_missing_testspec/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1052
1052
|
cirq/testing/test_data/test_module_missing_testspec/json_test_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1053
1053
|
cirq/transformers/__init__.py,sha256=B4ijV7PR4bN_QBswNqpAehIWTjXuaRMeyccrWz4Gw4w,7285
|
|
1054
|
-
cirq/transformers/align.py,sha256=
|
|
1054
|
+
cirq/transformers/align.py,sha256=95iI2sIil7V02hRPaXB-wG_eiMb5yF6ffUZU3fHmPP4,3341
|
|
1055
1055
|
cirq/transformers/align_test.py,sha256=X4ysJuemqqOeKix2rO9SlwF4CBQzEYbgiqgZmlMxbsQ,7722
|
|
1056
1056
|
cirq/transformers/drop_empty_moments.py,sha256=uZJG9FpUNyA1Mi0xLDuVuhj_siZhPZ1_s08Ry9xQ-1M,1535
|
|
1057
1057
|
cirq/transformers/drop_empty_moments_test.py,sha256=h6Pji0z0o9KOB7fnSHseWpIAhzvxWurF_flg9XWm_YI,1959
|
|
1058
1058
|
cirq/transformers/drop_negligible_operations.py,sha256=eP2dP_n0BYlr8aZ1wnD8YWsqCtwN0l0O6p45RbXEpfM,2097
|
|
1059
1059
|
cirq/transformers/drop_negligible_operations_test.py,sha256=32mS4QQ8tiH3wBAAgbUU8LgwWDmvreRVEDZML_kgxyo,3859
|
|
1060
|
-
cirq/transformers/dynamical_decoupling.py,sha256=
|
|
1061
|
-
cirq/transformers/dynamical_decoupling_test.py,sha256=
|
|
1060
|
+
cirq/transformers/dynamical_decoupling.py,sha256=nVYH0vNIflfnB-gp8awMb0xv8lo_FYkeMJNBoBtCUQg,15053
|
|
1061
|
+
cirq/transformers/dynamical_decoupling_test.py,sha256=UXYBxc_8lnq-pqMBgj5qhPEXnYv6bccMjiIBtEMTGTQ,44728
|
|
1062
1062
|
cirq/transformers/eject_phased_paulis.py,sha256=ZeVEh614OihWZtHyaBBtgpWj_dUxQGXDzf4NmBlzbeM,14725
|
|
1063
1063
|
cirq/transformers/eject_phased_paulis_test.py,sha256=AOMmOq3fWFGm2_qDyocjtF9fK7GAhC0kF550mkjtPx4,15791
|
|
1064
1064
|
cirq/transformers/eject_z.py,sha256=3u0Q0WGGAxmZuPnyiU4q04gJMnY--0nvhF4eotnSl9k,5803
|
|
1065
1065
|
cirq/transformers/eject_z_test.py,sha256=mKa-xViF9ZyuJpHWeqmYfPHL-3AGNTTfe0yHaXYHRZ8,13226
|
|
1066
1066
|
cirq/transformers/expand_composite.py,sha256=jDuipLc-9uYKGogQ7HAH0NLg5qb1uhdxh1nFWBYWkPk,2402
|
|
1067
|
-
cirq/transformers/expand_composite_test.py,sha256=
|
|
1067
|
+
cirq/transformers/expand_composite_test.py,sha256=l-4EZqj0CN9NJJRYSvvAYLkIvQ9t2YAPtkCnuKs-KJU,8677
|
|
1068
1068
|
cirq/transformers/insertion_sort.py,sha256=LtuLQmoA1uWyraPqQ7_QZdkf_vAk75V5HIHvnk4GIZo,2613
|
|
1069
1069
|
cirq/transformers/insertion_sort_test.py,sha256=E4unAfvPrTE73zI7OnZ8vWq5BUXYpPYjUw2zuq1a_vw,1231
|
|
1070
|
-
cirq/transformers/measurement_transformers.py,sha256=
|
|
1070
|
+
cirq/transformers/measurement_transformers.py,sha256=JXB-hpCmLD4oVA4Y8hAFL4khowPVlwKsmuDVlgLC_4o,19496
|
|
1071
1071
|
cirq/transformers/measurement_transformers_test.py,sha256=mJKYFqqMwZnD8KXVM1tmF2kcIZXkkZKlfOU9XbGxYpQ,29019
|
|
1072
1072
|
cirq/transformers/merge_k_qubit_gates.py,sha256=v9vY3f52S9QR7D_Om4APSZ65rwJH6Z7g6Gf3pD_9H3I,4380
|
|
1073
1073
|
cirq/transformers/merge_k_qubit_gates_test.py,sha256=523FmfCC7mGX_zecGaQ2tgdqBvMGiMinwJMIfKBgG8E,14016
|
|
1074
|
-
cirq/transformers/merge_single_qubit_gates.py,sha256=
|
|
1075
|
-
cirq/transformers/merge_single_qubit_gates_test.py,sha256=
|
|
1076
|
-
cirq/transformers/noise_adding.py,sha256=
|
|
1074
|
+
cirq/transformers/merge_single_qubit_gates.py,sha256=p452ZsVPcxQSBwbjcT1H0OOPinb37DAIHxNjphEwvGk,13671
|
|
1075
|
+
cirq/transformers/merge_single_qubit_gates_test.py,sha256=ZIJmpi2rGNSGEu0xY3zRS7gFJbX6-zyGrIsaqGrL5jI,18080
|
|
1076
|
+
cirq/transformers/noise_adding.py,sha256=T7lpo5DOiVEieDOD_AId49xAVd5Z7Rq17cNGbxOrOLA,4470
|
|
1077
1077
|
cirq/transformers/noise_adding_test.py,sha256=nHOoKUPBBOkWF6A_JhIO6-G0AuFkLKBCxH7e2BOem9M,2171
|
|
1078
|
-
cirq/transformers/optimize_for_target_gateset.py,sha256=
|
|
1078
|
+
cirq/transformers/optimize_for_target_gateset.py,sha256=8jEOazQmnDsHEXJhdRDzIWVLYuAwy3EIByqpq7_VTVg,7216
|
|
1079
1079
|
cirq/transformers/optimize_for_target_gateset_test.py,sha256=6xu7bDUf2CifMGFvutXT_CI2Wu_FSeucg6tcXHEeOZw,19574
|
|
1080
|
-
cirq/transformers/qubit_management_transformers.py,sha256=
|
|
1080
|
+
cirq/transformers/qubit_management_transformers.py,sha256=uLSwYrJ62REI8WCslClRiKQdNE7mLD48L5bhINHRY34,9431
|
|
1081
1081
|
cirq/transformers/qubit_management_transformers_test.py,sha256=QjrEx3jC1AG4YGD2VdHW59SRW1icQ-pJc3zAMkJqAvE,14051
|
|
1082
|
-
cirq/transformers/randomized_measurements.py,sha256=
|
|
1082
|
+
cirq/transformers/randomized_measurements.py,sha256=pbftgY2ctVMOoJHPBq96ruW0hkcNustLo6_d_eQvyPc,5725
|
|
1083
1083
|
cirq/transformers/randomized_measurements_test.py,sha256=ZfD8QW9Iy7NfidA1Iez9DUuT9HuzyEzFpHF1JNffE-I,2817
|
|
1084
|
-
cirq/transformers/stratify.py,sha256
|
|
1084
|
+
cirq/transformers/stratify.py,sha256=vrQjnDHb54Yu3IJz0FO1uLRX2QD1o7wI3UDPeRUsTVo,10453
|
|
1085
1085
|
cirq/transformers/stratify_test.py,sha256=X4h2KMc82N3G6d_qLIP0HTsrDWerWgEXTH_WBPN8nd0,15257
|
|
1086
|
-
cirq/transformers/symbolize.py,sha256=
|
|
1086
|
+
cirq/transformers/symbolize.py,sha256=5gVjtxJ5C0EpxSlGMTsU6VNwGfJfFosuPNgZOofQ1Wo,3992
|
|
1087
1087
|
cirq/transformers/symbolize_test.py,sha256=IF92t0r_mhC48tmCCVJqykXD6ms166n6XfbcSRTrJbY,2243
|
|
1088
1088
|
cirq/transformers/synchronize_terminal_measurements.py,sha256=lORajz_Qd1RC3baNdrqo5xJcqEWgwPHUfY0VaHk6lxI,3825
|
|
1089
1089
|
cirq/transformers/synchronize_terminal_measurements_test.py,sha256=sOmAYP3jXSUbUSJO5KKgkLPDWCWxPLUcRTSZ48HaDrA,7858
|
|
1090
|
-
cirq/transformers/tag_transformers.py,sha256=
|
|
1090
|
+
cirq/transformers/tag_transformers.py,sha256=xGTEe9_H857Zd-GJ_g1tlCz_zH3kWKGBq38Zzoi1klU,3510
|
|
1091
1091
|
cirq/transformers/tag_transformers_test.py,sha256=PqIcYFgiLU7VgC1EHkFYhxNCf0D9zKDCZ_Gwtnykkt4,3439
|
|
1092
|
-
cirq/transformers/transformer_api.py,sha256=
|
|
1092
|
+
cirq/transformers/transformer_api.py,sha256=3Cwf_HI9QuRxcmoDvq3vLUMmbyS9-XI927hH9yUlpK0,16824
|
|
1093
1093
|
cirq/transformers/transformer_api_test.py,sha256=vz_zTDPJIfjfqORGKCxeAs3U1F3X2dFNbe50o79uY-4,13273
|
|
1094
|
-
cirq/transformers/transformer_primitives.py,sha256=
|
|
1094
|
+
cirq/transformers/transformer_primitives.py,sha256=U7eN9UQ3YpW6D8UPJTHxsSO4ERpZxRxt14rqbMTk71Q,36521
|
|
1095
1095
|
cirq/transformers/transformer_primitives_test.py,sha256=QAayPS74Ro4TTol-IOPnd7S49DKhvXYmWci0nOsk05A,41712
|
|
1096
1096
|
cirq/transformers/analytical_decompositions/__init__.py,sha256=Rw7X6hPh14k-cDTcdWI7fQu8v5oU9d1vHuwulUBv-8o,3694
|
|
1097
1097
|
cirq/transformers/analytical_decompositions/clifford_decomposition.py,sha256=sH7nesFWgYOWEl0UCUAmx6zsFQG0ibeQZpq7Imx38MY,6743
|
|
@@ -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.
|
|
1224
|
-
cirq_core-1.6.0.
|
|
1225
|
-
cirq_core-1.6.0.
|
|
1226
|
-
cirq_core-1.6.0.
|
|
1227
|
-
cirq_core-1.6.0.
|
|
1223
|
+
cirq_core-1.6.0.dev20250707183524.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
1224
|
+
cirq_core-1.6.0.dev20250707183524.dist-info/METADATA,sha256=pV7QD-hP8acoFCJZyJWCcvZn1hnsSBIGY1Mwvdgoy0s,4857
|
|
1225
|
+
cirq_core-1.6.0.dev20250707183524.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
1226
|
+
cirq_core-1.6.0.dev20250707183524.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
|
|
1227
|
+
cirq_core-1.6.0.dev20250707183524.dist-info/RECORD,,
|
{cirq_core-1.6.0.dev20250702211226.dist-info → cirq_core-1.6.0.dev20250707183524.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|