cirq-core 1.5.0.dev20250324234903__py3-none-any.whl → 1.5.0.dev20250325074340__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/__init__.py +4 -0
- cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation.py +379 -0
- cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation_test.py +528 -0
- cirq/contrib/shuffle_circuits/shuffle_circuits_with_readout_benchmarking.py +40 -19
- cirq/contrib/shuffle_circuits/shuffle_circuits_with_readout_benchmarking_test.py +133 -74
- cirq/linalg/transformations.py +11 -3
- cirq/linalg/transformations_test.py +5 -0
- {cirq_core-1.5.0.dev20250324234903.dist-info → cirq_core-1.5.0.dev20250325074340.dist-info}/METADATA +1 -1
- {cirq_core-1.5.0.dev20250324234903.dist-info → cirq_core-1.5.0.dev20250325074340.dist-info}/RECORD +14 -12
- {cirq_core-1.5.0.dev20250324234903.dist-info → cirq_core-1.5.0.dev20250325074340.dist-info}/LICENSE +0 -0
- {cirq_core-1.5.0.dev20250324234903.dist-info → cirq_core-1.5.0.dev20250325074340.dist-info}/WHEEL +0 -0
- {cirq_core-1.5.0.dev20250324234903.dist-info → cirq_core-1.5.0.dev20250325074340.dist-info}/top_level.txt +0 -0
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
|
-
|
|
14
|
+
import itertools
|
|
15
15
|
import pytest
|
|
16
16
|
|
|
17
|
-
import cirq
|
|
18
17
|
import numpy as np
|
|
18
|
+
import cirq
|
|
19
19
|
|
|
20
20
|
from cirq.experiments.single_qubit_readout_calibration_test import NoisySingleQubitReadoutSampler
|
|
21
21
|
from cirq.experiments import random_quantum_circuit_generation as rqcg
|
|
@@ -23,26 +23,34 @@ from cirq.experiments import SingleQubitReadoutCalibrationResult
|
|
|
23
23
|
from cirq.study import ResultDict
|
|
24
24
|
|
|
25
25
|
|
|
26
|
+
def _create_test_circuits(qubits: list[cirq.Qid], n_circuits: int) -> list[cirq.Circuit]:
|
|
27
|
+
"""Helper function to generate circuits for testing."""
|
|
28
|
+
if len(qubits) < 2:
|
|
29
|
+
raise ValueError(
|
|
30
|
+
"Need at least two qubits to generate two-qubit circuits."
|
|
31
|
+
) # pragma: no cover
|
|
32
|
+
two_qubit_gates = [cirq.ISWAP**0.5, cirq.CNOT**0.5]
|
|
33
|
+
input_circuits = []
|
|
34
|
+
qubit_pairs = list(itertools.combinations(qubits, 2))
|
|
35
|
+
num_pairs = len(qubit_pairs)
|
|
36
|
+
for i in range(n_circuits):
|
|
37
|
+
gate = two_qubit_gates[i % len(two_qubit_gates)]
|
|
38
|
+
q0, q1 = qubit_pairs[i % num_pairs]
|
|
39
|
+
circuits = rqcg.generate_library_of_2q_circuits(
|
|
40
|
+
n_library_circuits=5, two_qubit_gate=gate, q0=q0, q1=q1
|
|
41
|
+
)
|
|
42
|
+
for circuit in circuits:
|
|
43
|
+
circuit.append(cirq.measure(*qubits, key="m"))
|
|
44
|
+
input_circuits.extend(circuits)
|
|
45
|
+
return input_circuits
|
|
46
|
+
|
|
47
|
+
|
|
26
48
|
def test_shuffled_circuits_with_readout_benchmarking_errors_no_noise():
|
|
27
49
|
"""Test shuffled circuits with readout benchmarking with no noise from sampler."""
|
|
28
50
|
qubits = cirq.LineQubit.range(5)
|
|
29
51
|
|
|
30
52
|
# Generate random input circuits
|
|
31
|
-
input_circuits =
|
|
32
|
-
input_circuits += rqcg.generate_library_of_2q_circuits(
|
|
33
|
-
n_library_circuits=5, two_qubit_gate=cirq.ISWAP**0.5, q0=qubits[0], q1=qubits[2]
|
|
34
|
-
)
|
|
35
|
-
input_circuits += rqcg.generate_library_of_2q_circuits(
|
|
36
|
-
n_library_circuits=5, two_qubit_gate=cirq.CNOT**0.5, q0=qubits[1], q1=qubits[3]
|
|
37
|
-
)
|
|
38
|
-
input_circuits += rqcg.generate_library_of_2q_circuits(
|
|
39
|
-
n_library_circuits=5, two_qubit_gate=cirq.CNOT**0.5, q0=qubits[0], q1=qubits[4]
|
|
40
|
-
)
|
|
41
|
-
input_circuits += rqcg.generate_library_of_2q_circuits(
|
|
42
|
-
n_library_circuits=5, two_qubit_gate=cirq.ISWAP**0.5, q0=qubits[2], q1=qubits[4]
|
|
43
|
-
)
|
|
44
|
-
for circuit in input_circuits:
|
|
45
|
-
circuit.append(cirq.measure(*qubits, key="m"))
|
|
53
|
+
input_circuits = _create_test_circuits(qubits, 3)
|
|
46
54
|
|
|
47
55
|
sampler = cirq.Simulator()
|
|
48
56
|
circuit_repetitions = 1
|
|
@@ -64,12 +72,15 @@ def test_shuffled_circuits_with_readout_benchmarking_errors_no_noise():
|
|
|
64
72
|
for measurement in measurements:
|
|
65
73
|
assert isinstance(measurement, ResultDict)
|
|
66
74
|
|
|
67
|
-
|
|
75
|
+
for qlist, readout_calibration_result in readout_calibration_results.items():
|
|
76
|
+
assert isinstance(qlist, tuple)
|
|
77
|
+
assert all(isinstance(q, cirq.Qid) for q in qlist)
|
|
78
|
+
assert isinstance(readout_calibration_result, SingleQubitReadoutCalibrationResult)
|
|
68
79
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
80
|
+
assert readout_calibration_result.zero_state_errors == {q: 0 for q in qubits}
|
|
81
|
+
assert readout_calibration_result.one_state_errors == {q: 0 for q in qubits}
|
|
82
|
+
assert readout_calibration_result.repetitions == readout_repetitions
|
|
83
|
+
assert isinstance(readout_calibration_result.timestamp, float)
|
|
73
84
|
|
|
74
85
|
|
|
75
86
|
def test_shuffled_circuits_with_readout_benchmarking_errors_with_noise():
|
|
@@ -77,24 +88,7 @@ def test_shuffled_circuits_with_readout_benchmarking_errors_with_noise():
|
|
|
77
88
|
qubits = cirq.LineQubit.range(6)
|
|
78
89
|
|
|
79
90
|
# Generate random input circuits
|
|
80
|
-
input_circuits =
|
|
81
|
-
input_circuits += rqcg.generate_library_of_2q_circuits(
|
|
82
|
-
n_library_circuits=5, two_qubit_gate=cirq.ISWAP**0.5, q0=qubits[0], q1=qubits[1]
|
|
83
|
-
)
|
|
84
|
-
input_circuits += rqcg.generate_library_of_2q_circuits(
|
|
85
|
-
n_library_circuits=5, two_qubit_gate=cirq.CNOT**0.5, q0=qubits[1], q1=qubits[3]
|
|
86
|
-
)
|
|
87
|
-
input_circuits += rqcg.generate_library_of_2q_circuits(
|
|
88
|
-
n_library_circuits=5, two_qubit_gate=cirq.CNOT**0.5, q0=qubits[0], q1=qubits[4]
|
|
89
|
-
)
|
|
90
|
-
input_circuits += rqcg.generate_library_of_2q_circuits(
|
|
91
|
-
n_library_circuits=5, two_qubit_gate=cirq.ISWAP**0.5, q0=qubits[2], q1=qubits[4]
|
|
92
|
-
)
|
|
93
|
-
input_circuits += rqcg.generate_library_of_2q_circuits(
|
|
94
|
-
n_library_circuits=5, two_qubit_gate=cirq.ISWAP**0.5, q0=qubits[2], q1=qubits[5]
|
|
95
|
-
)
|
|
96
|
-
for circuit in input_circuits:
|
|
97
|
-
circuit.append(cirq.measure(*qubits, key="m"))
|
|
91
|
+
input_circuits = _create_test_circuits(qubits, 6)
|
|
98
92
|
|
|
99
93
|
sampler = NoisySingleQubitReadoutSampler(p0=0.1, p1=0.2, seed=1234)
|
|
100
94
|
circuit_repetitions = 1
|
|
@@ -115,14 +109,17 @@ def test_shuffled_circuits_with_readout_benchmarking_errors_with_noise():
|
|
|
115
109
|
for measurement in measurements:
|
|
116
110
|
assert isinstance(measurement, ResultDict)
|
|
117
111
|
|
|
118
|
-
|
|
112
|
+
for qlist, readout_calibration_result in readout_calibration_results.items():
|
|
113
|
+
assert isinstance(qlist, tuple)
|
|
114
|
+
assert all(isinstance(q, cirq.Qid) for q in qlist)
|
|
115
|
+
assert isinstance(readout_calibration_result, SingleQubitReadoutCalibrationResult)
|
|
119
116
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
117
|
+
for error in readout_calibration_result.zero_state_errors.values():
|
|
118
|
+
assert 0.08 < error < 0.12
|
|
119
|
+
for error in readout_calibration_result.one_state_errors.values():
|
|
120
|
+
assert 0.18 < error < 0.22
|
|
121
|
+
assert readout_calibration_result.repetitions == readout_repetitions
|
|
122
|
+
assert isinstance(readout_calibration_result.timestamp, float)
|
|
126
123
|
|
|
127
124
|
|
|
128
125
|
def test_shuffled_circuits_with_readout_benchmarking_errors_with_noise_and_input_qubits():
|
|
@@ -131,24 +128,50 @@ def test_shuffled_circuits_with_readout_benchmarking_errors_with_noise_and_input
|
|
|
131
128
|
readout_qubits = qubits[:4]
|
|
132
129
|
|
|
133
130
|
# Generate random input circuits
|
|
134
|
-
input_circuits =
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
131
|
+
input_circuits = _create_test_circuits(qubits, 6)
|
|
132
|
+
|
|
133
|
+
sampler = NoisySingleQubitReadoutSampler(p0=0.1, p1=0.3, seed=1234)
|
|
134
|
+
circuit_repetitions = 1
|
|
135
|
+
rng = np.random.default_rng()
|
|
136
|
+
readout_repetitions = 1000
|
|
137
|
+
|
|
138
|
+
measurements, readout_calibration_results = (
|
|
139
|
+
cirq.contrib.shuffle_circuits.run_shuffled_with_readout_benchmarking(
|
|
140
|
+
input_circuits,
|
|
141
|
+
sampler,
|
|
142
|
+
circuit_repetitions,
|
|
143
|
+
rng,
|
|
144
|
+
num_random_bitstrings=100,
|
|
145
|
+
readout_repetitions=readout_repetitions,
|
|
146
|
+
qubits=readout_qubits,
|
|
147
|
+
)
|
|
149
148
|
)
|
|
150
|
-
|
|
151
|
-
|
|
149
|
+
|
|
150
|
+
for measurement in measurements:
|
|
151
|
+
assert isinstance(measurement, ResultDict)
|
|
152
|
+
|
|
153
|
+
for qlist, readout_calibration_result in readout_calibration_results.items():
|
|
154
|
+
assert isinstance(qlist, tuple)
|
|
155
|
+
assert all(isinstance(q, cirq.Qid) for q in qlist)
|
|
156
|
+
assert isinstance(readout_calibration_result, SingleQubitReadoutCalibrationResult)
|
|
157
|
+
|
|
158
|
+
for error in readout_calibration_result.zero_state_errors.values():
|
|
159
|
+
assert 0.08 < error < 0.12
|
|
160
|
+
for error in readout_calibration_result.one_state_errors.values():
|
|
161
|
+
assert 0.28 < error < 0.32
|
|
162
|
+
assert readout_calibration_result.repetitions == readout_repetitions
|
|
163
|
+
assert isinstance(readout_calibration_result.timestamp, float)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
def test_shuffled_circuits_with_readout_benchmarking_errors_with_noise_and_lists_input_qubits():
|
|
167
|
+
"""Test shuffled circuits with readout benchmarking with noise from sampler and input qubits."""
|
|
168
|
+
qubits_1 = cirq.LineQubit.range(3)
|
|
169
|
+
qubits_2 = cirq.LineQubit.range(4)
|
|
170
|
+
|
|
171
|
+
readout_qubits = [qubits_1, qubits_2]
|
|
172
|
+
|
|
173
|
+
# Generate random input circuits and append measurements
|
|
174
|
+
input_circuits = _create_test_circuits(qubits_1, 6) + _create_test_circuits(qubits_2, 4)
|
|
152
175
|
|
|
153
176
|
sampler = NoisySingleQubitReadoutSampler(p0=0.1, p1=0.3, seed=1234)
|
|
154
177
|
circuit_repetitions = 1
|
|
@@ -170,14 +193,50 @@ def test_shuffled_circuits_with_readout_benchmarking_errors_with_noise_and_input
|
|
|
170
193
|
for measurement in measurements:
|
|
171
194
|
assert isinstance(measurement, ResultDict)
|
|
172
195
|
|
|
173
|
-
|
|
196
|
+
for qlist, readout_calibration_result in readout_calibration_results.items():
|
|
197
|
+
assert isinstance(qlist, tuple)
|
|
198
|
+
assert all(isinstance(q, cirq.Qid) for q in qlist)
|
|
199
|
+
assert isinstance(readout_calibration_result, SingleQubitReadoutCalibrationResult)
|
|
200
|
+
|
|
201
|
+
for error in readout_calibration_result.zero_state_errors.values():
|
|
202
|
+
assert 0.08 < error < 0.12
|
|
203
|
+
for error in readout_calibration_result.one_state_errors.values():
|
|
204
|
+
assert 0.28 < error < 0.32
|
|
205
|
+
assert readout_calibration_result.repetitions == readout_repetitions
|
|
206
|
+
assert isinstance(readout_calibration_result.timestamp, float)
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
def test_can_handle_zero_random_bitstring():
|
|
210
|
+
"""Test shuffled circuits without readout benchmarking."""
|
|
211
|
+
qubits_1 = cirq.LineQubit.range(3)
|
|
212
|
+
qubits_2 = cirq.LineQubit.range(4)
|
|
174
213
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
214
|
+
readout_qubits = [qubits_1, qubits_2]
|
|
215
|
+
|
|
216
|
+
# Generate random input circuits and append measurements
|
|
217
|
+
input_circuits = _create_test_circuits(qubits_1, 6) + _create_test_circuits(qubits_2, 4)
|
|
218
|
+
|
|
219
|
+
sampler = NoisySingleQubitReadoutSampler(p0=0.1, p1=0.3, seed=1234)
|
|
220
|
+
circuit_repetitions = 1
|
|
221
|
+
rng = np.random.default_rng()
|
|
222
|
+
readout_repetitions = 1000
|
|
223
|
+
|
|
224
|
+
measurements, readout_calibration_results = (
|
|
225
|
+
cirq.contrib.shuffle_circuits.run_shuffled_with_readout_benchmarking(
|
|
226
|
+
input_circuits,
|
|
227
|
+
sampler,
|
|
228
|
+
circuit_repetitions,
|
|
229
|
+
rng,
|
|
230
|
+
num_random_bitstrings=0,
|
|
231
|
+
readout_repetitions=readout_repetitions,
|
|
232
|
+
qubits=readout_qubits,
|
|
233
|
+
)
|
|
234
|
+
)
|
|
235
|
+
|
|
236
|
+
for measurement in measurements:
|
|
237
|
+
assert isinstance(measurement, ResultDict)
|
|
238
|
+
# Check that the readout_calibration_results is empty
|
|
239
|
+
assert len(readout_calibration_results.items()) == 0
|
|
181
240
|
|
|
182
241
|
|
|
183
242
|
def test_empty_input_circuits():
|
|
@@ -256,16 +315,16 @@ def test_mismatch_circuit_repetitions():
|
|
|
256
315
|
|
|
257
316
|
|
|
258
317
|
def test_zero_num_random_bitstrings():
|
|
259
|
-
"""Test that the number of random bitstrings is zero."""
|
|
318
|
+
"""Test that the number of random bitstrings is smaller than zero."""
|
|
260
319
|
q = cirq.LineQubit(0)
|
|
261
320
|
circuit = cirq.Circuit(cirq.H(q), cirq.measure(q))
|
|
262
|
-
with pytest.raises(ValueError, match="Must provide
|
|
321
|
+
with pytest.raises(ValueError, match="Must provide zero or more num_random_bitstrings."):
|
|
263
322
|
cirq.contrib.shuffle_circuits.run_shuffled_with_readout_benchmarking(
|
|
264
323
|
[circuit],
|
|
265
324
|
cirq.ZerosSampler(),
|
|
266
325
|
circuit_repetitions=10,
|
|
267
326
|
rng_or_seed=np.random.default_rng(456),
|
|
268
|
-
num_random_bitstrings
|
|
327
|
+
num_random_bitstrings=-1,
|
|
269
328
|
readout_repetitions=100,
|
|
270
329
|
)
|
|
271
330
|
|
cirq/linalg/transformations.py
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"""Utility methods for transforming matrices or vectors."""
|
|
16
16
|
|
|
17
17
|
import dataclasses
|
|
18
|
+
import functools
|
|
18
19
|
from typing import Any, List, Optional, Sequence, Tuple, Union
|
|
19
20
|
|
|
20
21
|
import numpy as np
|
|
@@ -29,8 +30,6 @@ from cirq.linalg import predicates
|
|
|
29
30
|
# user provides a different np.array([]) value.
|
|
30
31
|
RaiseValueErrorIfNotProvided: np.ndarray = np.array([])
|
|
31
32
|
|
|
32
|
-
_NPY_MAXDIMS = 32 # Should be changed once numpy/numpy#5744 is resolved.
|
|
33
|
-
|
|
34
33
|
|
|
35
34
|
def reflection_matrix_pow(reflection_matrix: np.ndarray, exponent: float):
|
|
36
35
|
"""Raises a matrix with two opposing eigenvalues to a power.
|
|
@@ -807,6 +806,15 @@ def transpose_flattened_array(t: np.ndarray, shape: Sequence[int], axes: Sequenc
|
|
|
807
806
|
return ret
|
|
808
807
|
|
|
809
808
|
|
|
809
|
+
@functools.cache
|
|
810
|
+
def _can_numpy_support_dims(num_dims: int) -> bool:
|
|
811
|
+
try:
|
|
812
|
+
_ = np.empty((1,) * num_dims)
|
|
813
|
+
return True
|
|
814
|
+
except ValueError: # pragma: no cover
|
|
815
|
+
return False
|
|
816
|
+
|
|
817
|
+
|
|
810
818
|
def can_numpy_support_shape(shape: Sequence[int]) -> bool:
|
|
811
819
|
"""Returns whether numpy supports the given shape or not numpy/numpy#5744."""
|
|
812
|
-
return
|
|
820
|
+
return min(shape, default=0) >= 0 and _can_numpy_support_dims(len(shape))
|
|
@@ -648,3 +648,8 @@ def test_transpose_flattened_array(num_dimensions):
|
|
|
648
648
|
assert np.array_equal(want, got)
|
|
649
649
|
got = linalg.transpose_flattened_array(A.reshape(shape), shape, axes).reshape(want.shape)
|
|
650
650
|
assert np.array_equal(want, got)
|
|
651
|
+
|
|
652
|
+
|
|
653
|
+
@pytest.mark.parametrize('shape, result', [((), True), (30 * (1,), True), ((-3, 1, -1), False)])
|
|
654
|
+
def test_can_numpy_support_shape(shape: tuple[int, ...], result: bool) -> None:
|
|
655
|
+
assert linalg.can_numpy_support_shape(shape) is result
|
{cirq_core-1.5.0.dev20250324234903.dist-info → cirq_core-1.5.0.dev20250325074340.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cirq-core
|
|
3
|
-
Version: 1.5.0.
|
|
3
|
+
Version: 1.5.0.dev20250325074340
|
|
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.5.0.dev20250324234903.dist-info → cirq_core-1.5.0.dev20250325074340.dist-info}/RECORD
RENAMED
|
@@ -4,8 +4,8 @@ cirq/_compat_test.py,sha256=Qq3ZcfgD-Nb81cEppQdJqhAyrVqXKtfXZYGXT0p-Wh0,34718
|
|
|
4
4
|
cirq/_doc.py,sha256=yDyWUD_2JDS0gShfGRb-rdqRt9-WeL7DhkqX7np0Nko,2879
|
|
5
5
|
cirq/_import.py,sha256=p9gMHJscbtDDkfHOaulvd3Aer0pwUF5AXpL89XR8dNw,8402
|
|
6
6
|
cirq/_import_test.py,sha256=6K_v0riZJXOXUphHNkGA8MY-JcmGlezFaGmvrNhm3OQ,1015
|
|
7
|
-
cirq/_version.py,sha256=
|
|
8
|
-
cirq/_version_test.py,sha256=
|
|
7
|
+
cirq/_version.py,sha256=FqvSKFCY0JY6NO_MihCqtRLkYy1LvVi_3UCOocfvOSg,1206
|
|
8
|
+
cirq/_version_test.py,sha256=Q5vQq5HyGp_mnRU123IHaXi7_tUE9UYyNLhY3gl69ro,147
|
|
9
9
|
cirq/conftest.py,sha256=X7yLFL8GLhg2CjPw0hp5e_dGASfvHx1-QT03aUbhKJw,1168
|
|
10
10
|
cirq/json_resolver_cache.py,sha256=p-vEOa-8GQ2cFIAdze-kd6C1un1uRvtujVPljVKaHBg,13557
|
|
11
11
|
cirq/py.typed,sha256=VFSlmh_lNwnaXzwY-ZuW-C2Ws5PkuDoVgBdNCs0jXJE,63
|
|
@@ -87,7 +87,7 @@ cirq/contrib/hacks/disable_validation_test.py,sha256=nuDfktj3bD7oFlae3R0Jf_qcAo8
|
|
|
87
87
|
cirq/contrib/noise_models/__init__.py,sha256=O3wvaQ6kyNZzwsCnMMZvr2EyS76LpO9xnVZ69a2obv0,957
|
|
88
88
|
cirq/contrib/noise_models/noise_models.py,sha256=qFisVwg94-YqGoru5z5bqy_9_PHBI124rI4Gy34ogHI,7658
|
|
89
89
|
cirq/contrib/noise_models/noise_models_test.py,sha256=nELHWYWbRp6RCurjTSEAumpZPMY2gNN3S4Mhho3pwJ0,10488
|
|
90
|
-
cirq/contrib/paulistring/__init__.py,sha256=
|
|
90
|
+
cirq/contrib/paulistring/__init__.py,sha256=1k2_MYLTMPn8AFoJvSgpN-F-6xgmDjKXRhb-FdDsFoQ,1761
|
|
91
91
|
cirq/contrib/paulistring/clifford_optimize.py,sha256=q2lTMivOGoxncxnQ8CxnwlV9kSsHzETsTWG705FG9qw,7849
|
|
92
92
|
cirq/contrib/paulistring/clifford_optimize_test.py,sha256=IttwXaYRftUb84Sz3fEJFDl9fZ8NwzcbNsuFAJeLR_8,3890
|
|
93
93
|
cirq/contrib/paulistring/clifford_target_gateset.py,sha256=r2Nkq3gbENGyeRrRHtjdx5_uoSR0UfXojlTLhNNGTL8,6353
|
|
@@ -96,6 +96,8 @@ cirq/contrib/paulistring/optimize.py,sha256=qhBOGxLYovUua_xVqXWgVDPRRmv4VOmyFgKV
|
|
|
96
96
|
cirq/contrib/paulistring/optimize_test.py,sha256=jie0UomSCIj90TMv3MIi4hd32iTjttQ8-zr7ZDs0tug,3560
|
|
97
97
|
cirq/contrib/paulistring/pauli_string_dag.py,sha256=vg0994h84zHIejSdwfqR-mdwmHOWWOAOOcGuStfKPdk,1106
|
|
98
98
|
cirq/contrib/paulistring/pauli_string_dag_test.py,sha256=rlwbuh0DvFv1GlJIqEG1OI_geY77dzxo4bb7qqDkz8M,1125
|
|
99
|
+
cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation.py,sha256=ULhFIH8LBbDNHpPd0ulXTCm-hGqpbZBxrQLolSKfBg4,15675
|
|
100
|
+
cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation_test.py,sha256=srkjiczY5WLfwzltmc0cn0J6atZyJ8qWL-oiUZuGPDI,21717
|
|
99
101
|
cirq/contrib/paulistring/pauli_string_optimize.py,sha256=81MDk6rKl0jmw7DXFkA02YmluiXLLznuuCTvca7mVoY,2815
|
|
100
102
|
cirq/contrib/paulistring/pauli_string_optimize_test.py,sha256=f1BWjg8IGw5ChXFYNVhYKNIrFul8PgvpnOEadkRm-3Q,2897
|
|
101
103
|
cirq/contrib/paulistring/recombine.py,sha256=SU6DNj3Y9Wicf9pMP3IYzdWV7Fuz1DA_1v2AtUVnuF4,4355
|
|
@@ -147,8 +149,8 @@ cirq/contrib/routing/swap_network_test.py,sha256=XxbjIvOowvtOVwT2RN4e7YWlLebLm98
|
|
|
147
149
|
cirq/contrib/routing/utils.py,sha256=P0_PnaGfy4Rm6CVl9FE7RpdZ0YzGtimcW1acduvp5rU,3761
|
|
148
150
|
cirq/contrib/routing/utils_test.py,sha256=1oGEDAd70uQ2OrBwbaQd1DYoPcMSZsBQ2l5VLJBtXBM,2021
|
|
149
151
|
cirq/contrib/shuffle_circuits/__init__.py,sha256=AL-V3OaZiaF596WTLlyxDPk0t1WMpTHpQrpRW_A9t48,832
|
|
150
|
-
cirq/contrib/shuffle_circuits/shuffle_circuits_with_readout_benchmarking.py,sha256=
|
|
151
|
-
cirq/contrib/shuffle_circuits/shuffle_circuits_with_readout_benchmarking_test.py,sha256=
|
|
152
|
+
cirq/contrib/shuffle_circuits/shuffle_circuits_with_readout_benchmarking.py,sha256=eQmB7hoWaPqqUV3xgcUKIPTtGpv0ze_dM01ygQt33XU,10844
|
|
153
|
+
cirq/contrib/shuffle_circuits/shuffle_circuits_with_readout_benchmarking_test.py,sha256=L2Mx3LV_chDxg_v4NDnIF7ciHYqvKt04ulgwu0J4vMM,13862
|
|
152
154
|
cirq/contrib/svg/__init__.py,sha256=m7d-CNT2j74uNQdmM2xJ1a7HG6v0FZMt8eAwW4rPJpI,148
|
|
153
155
|
cirq/contrib/svg/svg.py,sha256=d4_XgDNb8o1lDINVJA44XXunGmK71qTAlqw2sc_UnAo,9366
|
|
154
156
|
cirq/contrib/svg/svg_test.py,sha256=gBHXeosNRHzrKWVo-JwhZLguHbksKQSiFwZ8fUXp-a8,2379
|
|
@@ -258,8 +260,8 @@ cirq/linalg/predicates.py,sha256=Q8BTlR4EvPg2KP9VodK78UEWYJbSCOTqRahn1DnFmSc,120
|
|
|
258
260
|
cirq/linalg/predicates_test.py,sha256=UVDkNH2ujI80JwJwsDjbTgyALZUQJAVVCoFN1T_LLf0,21503
|
|
259
261
|
cirq/linalg/tolerance.py,sha256=yHYVSHx2aoRci1aac9ZiM8OH1Bvy1Em-Rybnar701nE,1870
|
|
260
262
|
cirq/linalg/tolerance_test.py,sha256=wnmuXIGEn_mugGoNm3AigSgjV2DMFdj8xpgRTMBbO7A,2355
|
|
261
|
-
cirq/linalg/transformations.py,sha256=
|
|
262
|
-
cirq/linalg/transformations_test.py,sha256=
|
|
263
|
+
cirq/linalg/transformations.py,sha256=5iNg4IOcYqfqDTYo5i983IxweyHiMwcHW8jdk9hpG34,32303
|
|
264
|
+
cirq/linalg/transformations_test.py,sha256=GsqD8_X0N88ECKr44t0O9wAJ6-uJJi0wExivn0Okf7M,25333
|
|
263
265
|
cirq/neutral_atoms/__init__.py,sha256=VoQBkmZ5m4TPxjxShRixjqJbnc-IAnAWkGOPu8MBS5o,813
|
|
264
266
|
cirq/neutral_atoms/convert_to_neutral_atom_gates.py,sha256=SsXFh1-NoBGqp4yX8-jIbIw-AK40baA-qh-iTL1wS6Q,1070
|
|
265
267
|
cirq/neutral_atoms/convert_to_neutral_atom_gates_test.py,sha256=mIeGevxs9NoYpfTF_znHL67RrJKVQyQP-DPhn7t9SUA,1862
|
|
@@ -1204,8 +1206,8 @@ cirq/work/sampler.py,sha256=bE5tmVkcR6cZZMLETxDfHehdsYUMbx2RvBeIBetehI4,19187
|
|
|
1204
1206
|
cirq/work/sampler_test.py,sha256=hL2UWx3dz2ukZVNxWftiKVvJcQoLplLZdQm-k1QcA40,13282
|
|
1205
1207
|
cirq/work/zeros_sampler.py,sha256=x1C7cup66a43n-3tm8QjhiqJa07qcJW10FxNp9jJ59Q,2356
|
|
1206
1208
|
cirq/work/zeros_sampler_test.py,sha256=JIkpBBFPJe5Ba4142vzogyWyboG1Q1ZAm0UVGgOoZn8,3279
|
|
1207
|
-
cirq_core-1.5.0.
|
|
1208
|
-
cirq_core-1.5.0.
|
|
1209
|
-
cirq_core-1.5.0.
|
|
1210
|
-
cirq_core-1.5.0.
|
|
1211
|
-
cirq_core-1.5.0.
|
|
1209
|
+
cirq_core-1.5.0.dev20250325074340.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
1210
|
+
cirq_core-1.5.0.dev20250325074340.dist-info/METADATA,sha256=f97pAN3tUlzTcB1Ttb8wHeGNB9bPg7SNP9kC6JYEbh0,4817
|
|
1211
|
+
cirq_core-1.5.0.dev20250325074340.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
1212
|
+
cirq_core-1.5.0.dev20250325074340.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
|
|
1213
|
+
cirq_core-1.5.0.dev20250325074340.dist-info/RECORD,,
|
{cirq_core-1.5.0.dev20250324234903.dist-info → cirq_core-1.5.0.dev20250325074340.dist-info}/LICENSE
RENAMED
|
File without changes
|
{cirq_core-1.5.0.dev20250324234903.dist-info → cirq_core-1.5.0.dev20250325074340.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|