cirq-core 1.6.0.dev20250623075308__py3-none-any.whl → 1.6.0.dev20250624001344__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/contrib/paulistring/pauli_string_measurement_with_readout_mitigation.py +37 -13
- cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation_test.py +38 -1
- cirq/experiments/single_qubit_readout_calibration.py +11 -0
- cirq/transformers/dynamical_decoupling.py +15 -20
- {cirq_core-1.6.0.dev20250623075308.dist-info → cirq_core-1.6.0.dev20250624001344.dist-info}/METADATA +1 -1
- {cirq_core-1.6.0.dev20250623075308.dist-info → cirq_core-1.6.0.dev20250624001344.dist-info}/RECORD +11 -11
- {cirq_core-1.6.0.dev20250623075308.dist-info → cirq_core-1.6.0.dev20250624001344.dist-info}/WHEEL +0 -0
- {cirq_core-1.6.0.dev20250623075308.dist-info → cirq_core-1.6.0.dev20250624001344.dist-info}/licenses/LICENSE +0 -0
- {cirq_core-1.6.0.dev20250623075308.dist-info → cirq_core-1.6.0.dev20250624001344.dist-info}/top_level.txt +0 -0
cirq/_version.py
CHANGED
cirq/_version_test.py
CHANGED
|
@@ -28,7 +28,9 @@ from cirq.contrib.shuffle_circuits import run_shuffled_with_readout_benchmarking
|
|
|
28
28
|
from cirq.experiments.readout_confusion_matrix import TensoredConfusionMatrices
|
|
29
29
|
|
|
30
30
|
if TYPE_CHECKING:
|
|
31
|
-
from cirq.experiments import
|
|
31
|
+
from cirq.experiments.single_qubit_readout_calibration import (
|
|
32
|
+
SingleQubitReadoutCalibrationResult,
|
|
33
|
+
)
|
|
32
34
|
from cirq.study import ResultDict
|
|
33
35
|
|
|
34
36
|
|
|
@@ -217,6 +219,11 @@ def _normalize_input_paulis(
|
|
|
217
219
|
return cast(dict[circuits.FrozenCircuit, list[list[ops.PauliString]]], circuits_to_pauli)
|
|
218
220
|
|
|
219
221
|
|
|
222
|
+
def _extract_readout_qubits(pauli_strings: list[ops.PauliString]) -> list[ops.Qid]:
|
|
223
|
+
"""Extracts unique qubits from a list of QWC Pauli strings."""
|
|
224
|
+
return sorted(set(q for ps in pauli_strings for q in ps.qubits))
|
|
225
|
+
|
|
226
|
+
|
|
220
227
|
def _pauli_strings_to_basis_change_ops(
|
|
221
228
|
pauli_strings: list[ops.PauliString], qid_list: list[ops.Qid]
|
|
222
229
|
):
|
|
@@ -315,16 +322,38 @@ def _process_pauli_measurement_results(
|
|
|
315
322
|
for pauli_group_index, circuit_result in enumerate(circuit_results):
|
|
316
323
|
measurement_results = circuit_result.measurements["m"]
|
|
317
324
|
pauli_strs = pauli_string_groups[pauli_group_index]
|
|
325
|
+
pauli_readout_qubits = _extract_readout_qubits(pauli_strs)
|
|
326
|
+
|
|
327
|
+
calibration_result = (
|
|
328
|
+
calibration_results[tuple(pauli_readout_qubits)]
|
|
329
|
+
if disable_readout_mitigation is False
|
|
330
|
+
else None
|
|
331
|
+
)
|
|
318
332
|
|
|
319
333
|
for pauli_str in pauli_strs:
|
|
320
334
|
qubits_sorted = sorted(pauli_str.qubits)
|
|
321
335
|
qubit_indices = [qubits.index(q) for q in qubits_sorted]
|
|
322
336
|
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
337
|
+
if disable_readout_mitigation:
|
|
338
|
+
pauli_str_calibration_result = None
|
|
339
|
+
confusion_matrices = _build_many_one_qubits_empty_confusion_matrix(
|
|
340
|
+
len(qubits_sorted)
|
|
341
|
+
)
|
|
342
|
+
else:
|
|
343
|
+
if calibration_result is None:
|
|
344
|
+
# This case should be logically impossible if mitigation is on,
|
|
345
|
+
# so we raise an error.
|
|
346
|
+
raise ValueError(
|
|
347
|
+
f"Readout mitigation is enabled, but no calibration result was "
|
|
348
|
+
f"found for qubits {pauli_readout_qubits}."
|
|
349
|
+
)
|
|
350
|
+
pauli_str_calibration_result = calibration_result.readout_result_for_qubits(
|
|
351
|
+
qubits_sorted
|
|
352
|
+
)
|
|
353
|
+
confusion_matrices = _build_many_one_qubits_confusion_matrix(
|
|
354
|
+
pauli_str_calibration_result
|
|
355
|
+
)
|
|
356
|
+
|
|
328
357
|
tensored_cm = TensoredConfusionMatrices(
|
|
329
358
|
confusion_matrices,
|
|
330
359
|
[[q] for q in qubits_sorted],
|
|
@@ -356,11 +385,7 @@ def _process_pauli_measurement_results(
|
|
|
356
385
|
mitigated_stddev=d_m_with_coefficient,
|
|
357
386
|
unmitigated_expectation=unmitigated_value_with_coefficient,
|
|
358
387
|
unmitigated_stddev=d_unmit_with_coefficient,
|
|
359
|
-
calibration_result=
|
|
360
|
-
calibration_results[tuple(qubits_sorted)]
|
|
361
|
-
if disable_readout_mitigation is False
|
|
362
|
-
else None
|
|
363
|
-
),
|
|
388
|
+
calibration_result=pauli_str_calibration_result,
|
|
364
389
|
)
|
|
365
390
|
)
|
|
366
391
|
|
|
@@ -428,8 +453,7 @@ def measure_pauli_strings(
|
|
|
428
453
|
unique_qubit_tuples = set()
|
|
429
454
|
for pauli_string_groups in normalized_circuits_to_pauli.values():
|
|
430
455
|
for pauli_strings in pauli_string_groups:
|
|
431
|
-
|
|
432
|
-
unique_qubit_tuples.add(tuple(sorted(pauli_string.qubits)))
|
|
456
|
+
unique_qubit_tuples.add(tuple(_extract_readout_qubits(pauli_strings)))
|
|
433
457
|
# qubits_list is a list of qubit tuples
|
|
434
458
|
qubits_list = sorted(unique_qubit_tuples)
|
|
435
459
|
|
|
@@ -23,7 +23,10 @@ import pytest
|
|
|
23
23
|
|
|
24
24
|
import cirq
|
|
25
25
|
from cirq.contrib.paulistring import measure_pauli_strings
|
|
26
|
-
from cirq.
|
|
26
|
+
from cirq.contrib.paulistring.pauli_string_measurement_with_readout_mitigation import (
|
|
27
|
+
_process_pauli_measurement_results,
|
|
28
|
+
)
|
|
29
|
+
from cirq.experiments.single_qubit_readout_calibration import SingleQubitReadoutCalibrationResult
|
|
27
30
|
from cirq.experiments.single_qubit_readout_calibration_test import NoisySingleQubitReadoutSampler
|
|
28
31
|
|
|
29
32
|
|
|
@@ -867,3 +870,37 @@ def test_group_paulis_type_mismatch() -> None:
|
|
|
867
870
|
measure_pauli_strings(
|
|
868
871
|
circuits_to_pauli, cirq.Simulator(), 1000, 1000, 1000, np.random.default_rng()
|
|
869
872
|
)
|
|
873
|
+
|
|
874
|
+
|
|
875
|
+
def test_process_pauli_measurement_results_raises_error_on_missing_calibration() -> None:
|
|
876
|
+
"""Test that the function raises an error if the calibration result is missing."""
|
|
877
|
+
qubits: list[cirq.Qid] = [q for q in cirq.LineQubit.range(5)]
|
|
878
|
+
|
|
879
|
+
measurement_op = cirq.measure(*qubits, key='m')
|
|
880
|
+
test_circuits = list[cirq.Circuit]()
|
|
881
|
+
for _ in range(3):
|
|
882
|
+
circuit_list = []
|
|
883
|
+
|
|
884
|
+
circuit = _create_ghz(5, qubits) + measurement_op
|
|
885
|
+
circuit_list.append(circuit)
|
|
886
|
+
test_circuits.extend(circuit_list)
|
|
887
|
+
|
|
888
|
+
pauli_strings = [_generate_random_pauli_string(qubits, True) for _ in range(3)]
|
|
889
|
+
sampler = cirq.Simulator()
|
|
890
|
+
|
|
891
|
+
circuit_results = sampler.run_batch(test_circuits, repetitions=1000)
|
|
892
|
+
|
|
893
|
+
empty_calibration_result_dict = {tuple(qubits): None}
|
|
894
|
+
|
|
895
|
+
with pytest.raises(
|
|
896
|
+
ValueError,
|
|
897
|
+
match="Readout mitigation is enabled, but no calibration result was found for qubits",
|
|
898
|
+
):
|
|
899
|
+
_process_pauli_measurement_results(
|
|
900
|
+
qubits,
|
|
901
|
+
[pauli_strings],
|
|
902
|
+
circuit_results[0], # type: ignore[arg-type]
|
|
903
|
+
empty_calibration_result_dict, # type: ignore[arg-type]
|
|
904
|
+
1000,
|
|
905
|
+
1.0,
|
|
906
|
+
)
|
|
@@ -179,6 +179,17 @@ class SingleQubitReadoutCalibrationResult:
|
|
|
179
179
|
ax.set_ylabel('Percentile')
|
|
180
180
|
return ax
|
|
181
181
|
|
|
182
|
+
def readout_result_for_qubits(
|
|
183
|
+
self, readout_qubits: list[ops.Qid]
|
|
184
|
+
) -> SingleQubitReadoutCalibrationResult:
|
|
185
|
+
"""Builds a calibration result for the specific readout qubits."""
|
|
186
|
+
return SingleQubitReadoutCalibrationResult(
|
|
187
|
+
zero_state_errors={qubit: self.zero_state_errors[qubit] for qubit in readout_qubits},
|
|
188
|
+
one_state_errors={qubit: self.one_state_errors[qubit] for qubit in readout_qubits},
|
|
189
|
+
timestamp=self.timestamp,
|
|
190
|
+
repetitions=self.repetitions,
|
|
191
|
+
)
|
|
192
|
+
|
|
182
193
|
@classmethod
|
|
183
194
|
def _from_json_dict_(
|
|
184
195
|
cls, zero_state_errors, one_state_errors, repetitions, timestamp, **kwargs
|
|
@@ -22,7 +22,8 @@ from typing import TYPE_CHECKING
|
|
|
22
22
|
|
|
23
23
|
import numpy as np
|
|
24
24
|
|
|
25
|
-
from cirq import
|
|
25
|
+
from cirq import ops, protocols
|
|
26
|
+
from cirq.circuits import Circuit, FrozenCircuit, Moment
|
|
26
27
|
from cirq.protocols import unitary_protocol
|
|
27
28
|
from cirq.protocols.has_stabilizer_effect_protocol import has_stabilizer_effect
|
|
28
29
|
from cirq.protocols.has_unitary_protocol import has_unitary
|
|
@@ -113,7 +114,7 @@ def _is_single_qubit_operation(operation: ops.Operation) -> bool:
|
|
|
113
114
|
return len(operation.qubits) == 1
|
|
114
115
|
|
|
115
116
|
|
|
116
|
-
def _is_single_qubit_gate_moment(moment:
|
|
117
|
+
def _is_single_qubit_gate_moment(moment: Moment) -> bool:
|
|
117
118
|
return all(_is_single_qubit_operation(op) for op in moment)
|
|
118
119
|
|
|
119
120
|
|
|
@@ -121,9 +122,7 @@ def _is_clifford_op(op: ops.Operation) -> bool:
|
|
|
121
122
|
return has_unitary(op) and has_stabilizer_effect(op)
|
|
122
123
|
|
|
123
124
|
|
|
124
|
-
def _calc_busy_moment_range_of_each_qubit(
|
|
125
|
-
circuit: circuits.FrozenCircuit,
|
|
126
|
-
) -> dict[ops.Qid, list[int]]:
|
|
125
|
+
def _calc_busy_moment_range_of_each_qubit(circuit: FrozenCircuit) -> dict[ops.Qid, list[int]]:
|
|
127
126
|
busy_moment_range_by_qubit: dict[ops.Qid, list[int]] = {
|
|
128
127
|
q: [len(circuit), -1] for q in circuit.all_qubits()
|
|
129
128
|
}
|
|
@@ -134,7 +133,7 @@ def _calc_busy_moment_range_of_each_qubit(
|
|
|
134
133
|
return busy_moment_range_by_qubit
|
|
135
134
|
|
|
136
135
|
|
|
137
|
-
def _is_insertable_moment(moment:
|
|
136
|
+
def _is_insertable_moment(moment: Moment, single_qubit_gate_moments_only: bool) -> bool:
|
|
138
137
|
return not single_qubit_gate_moments_only or _is_single_qubit_gate_moment(moment)
|
|
139
138
|
|
|
140
139
|
|
|
@@ -150,9 +149,7 @@ def _merge_single_qubit_ops_to_phxz(
|
|
|
150
149
|
return gate.on(q)
|
|
151
150
|
|
|
152
151
|
|
|
153
|
-
def _try_merge_single_qubit_ops_of_two_moments(
|
|
154
|
-
m1: circuits.Moment, m2: circuits.Moment
|
|
155
|
-
) -> tuple[circuits.Moment, ...]:
|
|
152
|
+
def _try_merge_single_qubit_ops_of_two_moments(m1: Moment, m2: Moment) -> tuple[Moment, ...]:
|
|
156
153
|
"""Merge single qubit ops of 2 moments if possible, returns 2 moments otherwise."""
|
|
157
154
|
for q in m1.qubits & m2.qubits:
|
|
158
155
|
op1 = m1.operation_at(q)
|
|
@@ -169,12 +166,10 @@ def _try_merge_single_qubit_ops_of_two_moments(
|
|
|
169
166
|
# ops_on_q may contain 1 op or 2 ops.
|
|
170
167
|
ops_on_q = [op for op in [m.operation_at(q) for m in [m1, m2]] if op is not None]
|
|
171
168
|
merged_ops.add(_merge_single_qubit_ops_to_phxz(q, tuple(ops_on_q)))
|
|
172
|
-
return (
|
|
169
|
+
return (Moment(merged_ops),)
|
|
173
170
|
|
|
174
171
|
|
|
175
|
-
def _calc_pulled_through(
|
|
176
|
-
moment: circuits.Moment, input_pauli_ops: ops.PauliString
|
|
177
|
-
) -> ops.PauliString:
|
|
172
|
+
def _calc_pulled_through(moment: Moment, input_pauli_ops: ops.PauliString) -> ops.PauliString:
|
|
178
173
|
"""Calculates the pulled_through such that circuit(input_pauli_ops, moment.clifford_ops) is
|
|
179
174
|
equivalent to circuit(moment.clifford_ops, pulled_through).
|
|
180
175
|
"""
|
|
@@ -184,7 +179,7 @@ def _calc_pulled_through(
|
|
|
184
179
|
return input_pauli_ops.after(clifford_ops_in_moment)
|
|
185
180
|
|
|
186
181
|
|
|
187
|
-
def _get_stop_qubits(moment:
|
|
182
|
+
def _get_stop_qubits(moment: Moment) -> set[ops.Qid]:
|
|
188
183
|
stop_pulling_through_qubits: set[ops.Qid] = set()
|
|
189
184
|
for op in moment:
|
|
190
185
|
if (not _is_clifford_op(op) and not _is_single_qubit_operation(op)) or not has_unitary(
|
|
@@ -233,7 +228,7 @@ def add_dynamical_decoupling(
|
|
|
233
228
|
busy_moment_range_by_qubit = _calc_busy_moment_range_of_each_qubit(orig_circuit)
|
|
234
229
|
|
|
235
230
|
# Stores all the moments of the output circuit chronologically.
|
|
236
|
-
transformed_moments: list[
|
|
231
|
+
transformed_moments: list[Moment] = []
|
|
237
232
|
# A PauliString stores the result of 'pulling' Pauli gates past each operations
|
|
238
233
|
# right before the current moment.
|
|
239
234
|
pulled_through: ops.PauliString = ops.PauliString()
|
|
@@ -277,7 +272,7 @@ def add_dynamical_decoupling(
|
|
|
277
272
|
# Need to insert a new moment before current moment
|
|
278
273
|
if new_moment_ops:
|
|
279
274
|
moments_to_be_appended = _try_merge_single_qubit_ops_of_two_moments(
|
|
280
|
-
transformed_moments[-1],
|
|
275
|
+
transformed_moments[-1], Moment(new_moment_ops)
|
|
281
276
|
)
|
|
282
277
|
if len(moments_to_be_appended) == 1:
|
|
283
278
|
transformed_moments.pop()
|
|
@@ -291,7 +286,7 @@ def add_dynamical_decoupling(
|
|
|
291
286
|
):
|
|
292
287
|
new_moment_ops.append(_update_pulled_through(q, next(dd_iter_by_qubits[q])))
|
|
293
288
|
moments_to_be_appended = _try_merge_single_qubit_ops_of_two_moments(
|
|
294
|
-
transformed_moments.pop(),
|
|
289
|
+
transformed_moments.pop(), Moment(new_moment_ops)
|
|
295
290
|
)
|
|
296
291
|
transformed_moments.extend(moments_to_be_appended)
|
|
297
292
|
|
|
@@ -325,7 +320,7 @@ def add_dynamical_decoupling(
|
|
|
325
320
|
updated_moment_ops.add(updated_op)
|
|
326
321
|
|
|
327
322
|
if updated_moment_ops:
|
|
328
|
-
updated_moment =
|
|
323
|
+
updated_moment = Moment(updated_moment_ops)
|
|
329
324
|
transformed_moments.append(updated_moment)
|
|
330
325
|
|
|
331
326
|
# Step 3, update pulled through.
|
|
@@ -339,8 +334,8 @@ def add_dynamical_decoupling(
|
|
|
339
334
|
if ending_moment_ops:
|
|
340
335
|
transformed_moments.extend(
|
|
341
336
|
_try_merge_single_qubit_ops_of_two_moments(
|
|
342
|
-
transformed_moments.pop(),
|
|
337
|
+
transformed_moments.pop(), Moment(ending_moment_ops)
|
|
343
338
|
)
|
|
344
339
|
)
|
|
345
340
|
|
|
346
|
-
return
|
|
341
|
+
return Circuit.from_moments(*transformed_moments)
|
{cirq_core-1.6.0.dev20250623075308.dist-info → cirq_core-1.6.0.dev20250624001344.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.dev20250624001344
|
|
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.dev20250623075308.dist-info → cirq_core-1.6.0.dev20250624001344.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=8jHtusBUxrO8TPHKmIvvUfrqxtk2T092arLqOkcHbDA,1206
|
|
8
|
+
cirq/_version_test.py,sha256=4r41osEcge0AGQg8uFjE4K2PQtDc8mibS4SUaUgo6cY,155
|
|
9
9
|
cirq/conftest.py,sha256=X7yLFL8GLhg2CjPw0hp5e_dGASfvHx1-QT03aUbhKJw,1168
|
|
10
10
|
cirq/json_resolver_cache.py,sha256=hYyG53VJeV61X0oukK5ndZYega8lkL2FyaL1m0j6h5M,13556
|
|
11
11
|
cirq/py.typed,sha256=VFSlmh_lNwnaXzwY-ZuW-C2Ws5PkuDoVgBdNCs0jXJE,63
|
|
@@ -96,8 +96,8 @@ cirq/contrib/paulistring/optimize.py,sha256=F02c_9nuc8a41XNsA9bzTGaW2kR3hZw-MdaQ
|
|
|
96
96
|
cirq/contrib/paulistring/optimize_test.py,sha256=FsmwyYFIGyyiO115oYgmCfaSV3De55Azd0_rzsi_xnU,3618
|
|
97
97
|
cirq/contrib/paulistring/pauli_string_dag.py,sha256=28bUVNsIS9WYKdyYCNIVrkRwqQOKlkpmCacWow6N6D0,1142
|
|
98
98
|
cirq/contrib/paulistring/pauli_string_dag_test.py,sha256=nH_1h5LQobV9rb5gitLmrvpIwWwrcRmNdUGDAhFMZtI,1168
|
|
99
|
-
cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation.py,sha256=
|
|
100
|
-
cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation_test.py,sha256=
|
|
99
|
+
cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation.py,sha256=tjN3R_aq5xwixlO8pCHaiWX4LsXXJHQxAEZgUHSgQac,21021
|
|
100
|
+
cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation_test.py,sha256=PLFPOfhoIepk-UhgEBcfvFnFtd0qpqLSPtvrcCaKpd0,36842
|
|
101
101
|
cirq/contrib/paulistring/pauli_string_optimize.py,sha256=ejHf7Bo0iUvnNBeZ5IN0bT0SIXF79DSGr1NxoAyVfiQ,2960
|
|
102
102
|
cirq/contrib/paulistring/pauli_string_optimize_test.py,sha256=_14FS9TAvzRsmnTZxJUsMXPNcenv5mb0eD2gGTxvohE,2955
|
|
103
103
|
cirq/contrib/paulistring/recombine.py,sha256=phJ-SY4zdqZpIZca0iSsY0lK6NdXd0M0sOOWnUdGn5U,4353
|
|
@@ -193,7 +193,7 @@ cirq/experiments/random_quantum_circuit_generation.py,sha256=pV6ubukLLdfPXLvJD2t
|
|
|
193
193
|
cirq/experiments/random_quantum_circuit_generation_test.py,sha256=4GSfUK2hw2r90JAO7R2zSBqjtwWi8vXuAhw-iK6quwY,16512
|
|
194
194
|
cirq/experiments/readout_confusion_matrix.py,sha256=ro3miCMr8K-EDW918PHKL_QcqrDUT-_uTXUvJ1PPzEI,20666
|
|
195
195
|
cirq/experiments/readout_confusion_matrix_test.py,sha256=DNapm_kLa0Mn9vW_KejWKrmM4yqJ8Q-7gqxNjFkOFQU,10668
|
|
196
|
-
cirq/experiments/single_qubit_readout_calibration.py,sha256
|
|
196
|
+
cirq/experiments/single_qubit_readout_calibration.py,sha256=0vnmKBtcjS8kCbJj_iJ0BWW23W6UCc4X2Ig9N_UUs0s,15243
|
|
197
197
|
cirq/experiments/single_qubit_readout_calibration_test.py,sha256=HQE29SxyL2mUhvNZnV9F_vOaAIJteox7volmDfZQy8g,7751
|
|
198
198
|
cirq/experiments/t1_decay_experiment.py,sha256=ojtmkQ5mgiQ-cK389YrvlRXotzHon83HNG_8sae-JdE,7099
|
|
199
199
|
cirq/experiments/t1_decay_experiment_test.py,sha256=vjm-zV0a2yrFrFhzq03GOMBy5U_XnvX1Ga3NN4FiT3k,9262
|
|
@@ -1057,7 +1057,7 @@ cirq/transformers/drop_empty_moments.py,sha256=uZJG9FpUNyA1Mi0xLDuVuhj_siZhPZ1_s
|
|
|
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=
|
|
1060
|
+
cirq/transformers/dynamical_decoupling.py,sha256=0FcSdAukav3Acw2sk-B1po5LiV4dx6egcS9F2YGSuIs,15044
|
|
1061
1061
|
cirq/transformers/dynamical_decoupling_test.py,sha256=VeKlzaab_3fPDMiPaPihgvlbOWiJFflppMplSj0tfIo,44731
|
|
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
|
|
@@ -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.dev20250624001344.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
1224
|
+
cirq_core-1.6.0.dev20250624001344.dist-info/METADATA,sha256=NZAaS9bVYy5EqTBayzbSbFO0O_Rps_DMlh6KaNftM5w,4857
|
|
1225
|
+
cirq_core-1.6.0.dev20250624001344.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
1226
|
+
cirq_core-1.6.0.dev20250624001344.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
|
|
1227
|
+
cirq_core-1.6.0.dev20250624001344.dist-info/RECORD,,
|
{cirq_core-1.6.0.dev20250623075308.dist-info → cirq_core-1.6.0.dev20250624001344.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|