cirq-core 1.6.0.dev20250708003832__py3-none-any.whl → 1.6.0.dev20250709210336__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 CHANGED
@@ -29,4 +29,4 @@ if sys.version_info < (3, 11 - 1, 0): # pragma: no cover
29
29
  'of cirq (e.g. "python -m pip install cirq==1.5.0")'
30
30
  )
31
31
 
32
- __version__ = "1.6.0.dev20250708003832"
32
+ __version__ = "1.6.0.dev20250709210336"
cirq/_version_test.py CHANGED
@@ -3,4 +3,4 @@ import cirq
3
3
 
4
4
 
5
5
  def test_version() -> None:
6
- assert cirq.__version__ == "1.6.0.dev20250708003832"
6
+ assert cirq.__version__ == "1.6.0.dev20250709210336"
@@ -15,12 +15,15 @@
15
15
 
16
16
  from cirq.experiments.qubit_characterizations import (
17
17
  RandomizedBenchMarkResult as RandomizedBenchMarkResult,
18
+ RBParameters as RBParameters,
18
19
  single_qubit_randomized_benchmarking as single_qubit_randomized_benchmarking,
20
+ single_qubit_rb as single_qubit_rb,
19
21
  single_qubit_state_tomography as single_qubit_state_tomography,
20
22
  TomographyResult as TomographyResult,
21
23
  two_qubit_randomized_benchmarking as two_qubit_randomized_benchmarking,
22
24
  two_qubit_state_tomography as two_qubit_state_tomography,
23
25
  parallel_single_qubit_randomized_benchmarking as parallel_single_qubit_randomized_benchmarking,
26
+ parallel_single_qubit_rb as parallel_single_qubit_rb,
24
27
  )
25
28
 
26
29
  from cirq.experiments.fidelity_estimation import (
@@ -19,6 +19,7 @@ import functools
19
19
  import itertools
20
20
  from typing import Any, cast, Iterator, Mapping, Sequence, TYPE_CHECKING
21
21
 
22
+ import attrs
22
23
  import numpy as np
23
24
  from matplotlib import pyplot as plt
24
25
 
@@ -28,6 +29,7 @@ from scipy.optimize import curve_fit
28
29
  import cirq.vis.heatmap as cirq_heatmap
29
30
  import cirq.vis.histogram as cirq_histogram
30
31
  from cirq import circuits, ops, protocols
32
+ from cirq._compat import deprecated
31
33
  from cirq.devices import grid_qubit
32
34
 
33
35
  if TYPE_CHECKING:
@@ -36,6 +38,12 @@ if TYPE_CHECKING:
36
38
  import cirq
37
39
 
38
40
 
41
+ def _canonize_clifford_sequences(
42
+ sequences: list[list[ops.SingleQubitCliffordGate]],
43
+ ) -> list[list[ops.SingleQubitCliffordGate]]:
44
+ return [[_reduce_gate_seq(seq)] for seq in sequences]
45
+
46
+
39
47
  @dataclasses.dataclass
40
48
  class Cliffords:
41
49
  """The single-qubit Clifford group, decomposed into elementary gates.
@@ -134,7 +142,7 @@ class RandomizedBenchMarkResult:
134
142
  xdata=self._num_cfds_seq,
135
143
  ydata=self._gnd_state_probs,
136
144
  p0=[0.5, 0.5, 1.0 - 1e-3],
137
- bounds=([0, 0.25, 0], [0.5, 0.75, 1]),
145
+ bounds=([0, -1, 0], [1, 1, 1]),
138
146
  )
139
147
 
140
148
 
@@ -333,6 +341,44 @@ class TomographyResult:
333
341
  return axes
334
342
 
335
343
 
344
+ @attrs.frozen
345
+ class RBParameters:
346
+ r"""Parameters for running randomized benchmarking.
347
+
348
+ Arguments:
349
+ num_clifford_range: The different numbers of Cliffords in the RB study.
350
+ num_circuits: The number of random circuits generated for each
351
+ number of Cliffords.
352
+ repetitions: The number of repetitions of each circuit.
353
+ use_xy_basis: Determines if the Clifford gates are built with x and y
354
+ rotations (True) or x and z rotations (False).
355
+ strict_basis: whether to use only cliffords that can be represented by at
356
+ most 2 gates of the choses basis. For example,
357
+ if True and use_xy_basis is True, this excludes $I, Z, \sqrt(Z), \-sqrt(Z)^\dagger$.
358
+ if True and use_xy_basis is False, this excludes $I, Y, \sqrt(Y), -\sqrt(Y)^\dagger$.
359
+ """
360
+
361
+ num_clifford_range: Sequence[int] = tuple(np.logspace(np.log10(5), 3, 5, dtype=int))
362
+ num_circuits: int = 10
363
+ repetitions: int = 600
364
+ use_xy_basis: bool = False
365
+ strict_basis: bool = True
366
+
367
+ def gateset(self) -> list[list[ops.SingleQubitCliffordGate]]:
368
+ clifford_group = _single_qubit_cliffords()
369
+ sequences = clifford_group.c1_in_xy if self.use_xy_basis else clifford_group.c1_in_xz
370
+ sequences = _canonize_clifford_sequences(sequences)
371
+ if self.strict_basis:
372
+ if self.use_xy_basis:
373
+ excluded_gates = ops.Gateset(ops.I, ops.Z, ops.Z**0.5, ops.Z**-0.5)
374
+ else:
375
+ excluded_gates = ops.Gateset(ops.I, ops.Y, ops.Y**0.5, ops.Y**-0.5)
376
+
377
+ sequences = [[g] for (g,) in sequences if g not in excluded_gates]
378
+ return sequences
379
+
380
+
381
+ @deprecated(deadline='v2.0', fix='please use single_qubit_rb instead')
336
382
  def single_qubit_randomized_benchmarking(
337
383
  sampler: cirq.Sampler,
338
384
  qubit: cirq.Qid,
@@ -376,17 +422,20 @@ def single_qubit_randomized_benchmarking(
376
422
  A RandomizedBenchMarkResult object that stores and plots the result.
377
423
  """
378
424
 
379
- result = parallel_single_qubit_randomized_benchmarking(
425
+ return single_qubit_rb(
380
426
  sampler,
381
- (qubit,),
382
- use_xy_basis,
383
- num_clifford_range=num_clifford_range,
384
- num_circuits=num_circuits,
385
- repetitions=repetitions,
427
+ qubit,
428
+ RBParameters(
429
+ num_clifford_range=num_clifford_range,
430
+ num_circuits=num_circuits,
431
+ repetitions=repetitions,
432
+ use_xy_basis=use_xy_basis,
433
+ strict_basis=False,
434
+ ),
386
435
  )
387
- return result.results_dictionary[qubit]
388
436
 
389
437
 
438
+ @deprecated(deadline='v2.0', fix='please use parallel_single_qubit_rb instead')
390
439
  def parallel_single_qubit_randomized_benchmarking(
391
440
  sampler: cirq.Sampler,
392
441
  qubits: Sequence[cirq.Qid],
@@ -413,35 +462,90 @@ def parallel_single_qubit_randomized_benchmarking(
413
462
  num_circuits: The number of random circuits generated for each
414
463
  number of Cliffords.
415
464
  repetitions: The number of repetitions of each circuit.
465
+ Returns:
466
+ A dictionary from qubits to RandomizedBenchMarkResult objects.
467
+ """
468
+ return parallel_single_qubit_rb(
469
+ sampler,
470
+ qubits,
471
+ RBParameters(
472
+ num_clifford_range=num_clifford_range,
473
+ num_circuits=num_circuits,
474
+ repetitions=repetitions,
475
+ use_xy_basis=use_xy_basis,
476
+ strict_basis=False,
477
+ ),
478
+ )
479
+
480
+
481
+ def single_qubit_rb(
482
+ sampler: cirq.Sampler,
483
+ qubit: cirq.Qid,
484
+ parameters: RBParameters = RBParameters(),
485
+ rng_or_seed: np.random.Generator | int | None = None,
486
+ ) -> RandomizedBenchMarkResult:
487
+ """Clifford-based randomized benchmarking (RB) on a single qubit.
488
+
489
+ Args:
490
+ sampler: The quantum engine or simulator to run the circuits.
491
+ qubit: The qubit(s) to benchmark.
492
+ parameters: The parameters of the experiment.
493
+ rng_or_seed: A np.random.Generator object or seed.
494
+ Returns:
495
+ A dictionary from qubits to RandomizedBenchMarkResult objects.
496
+ """
497
+ return parallel_single_qubit_rb(sampler, [qubit], parameters, rng_or_seed).results_dictionary[
498
+ qubit
499
+ ]
500
+
501
+
502
+ def parallel_single_qubit_rb(
503
+ sampler: cirq.Sampler,
504
+ qubits: Sequence[cirq.Qid],
505
+ parameters: RBParameters = RBParameters(),
506
+ rng_or_seed: np.random.Generator | int | None = None,
507
+ ) -> ParallelRandomizedBenchmarkingResult:
508
+ """Clifford-based randomized benchmarking (RB) single qubits in parallel.
416
509
 
510
+ Args:
511
+ sampler: The quantum engine or simulator to run the circuits.
512
+ qubits: The qubit(s) to benchmark.
513
+ parameters: The parameters of the experiment.
514
+ rng_or_seed: A np.random.Generator object or seed.
417
515
  Returns:
418
516
  A dictionary from qubits to RandomizedBenchMarkResult objects.
419
517
  """
420
518
 
421
- clifford_group = _single_qubit_cliffords()
422
- c1 = clifford_group.c1_in_xy if use_xy_basis else clifford_group.c1_in_xz
519
+ rng_or_seed = (
520
+ rng_or_seed
521
+ if isinstance(rng_or_seed, np.random.Generator)
522
+ else np.random.default_rng(rng_or_seed)
523
+ )
524
+
525
+ c1 = parameters.gateset()
423
526
 
424
527
  # create circuits
425
528
  circuits_all: list[cirq.AbstractCircuit] = []
426
- for num_cliffords in num_clifford_range:
427
- for _ in range(num_circuits):
428
- circuits_all.append(_create_parallel_rb_circuit(qubits, num_cliffords, c1))
529
+ for num_cliffords in parameters.num_clifford_range:
530
+ for _ in range(parameters.num_circuits):
531
+ circuits_all.append(_create_parallel_rb_circuit(qubits, num_cliffords, c1, rng_or_seed))
429
532
 
430
533
  # run circuits
431
- results = sampler.run_batch(circuits_all, repetitions=repetitions)
534
+ results = sampler.run_batch(circuits_all, repetitions=parameters.repetitions)
432
535
  gnd_probs: dict = {q: [] for q in qubits}
433
536
  idx = 0
434
- for num_cliffords in num_clifford_range:
537
+ for num_cliffords in parameters.num_clifford_range:
435
538
  excited_probs: dict[cirq.Qid, list[float]] = {q: [] for q in qubits}
436
- for _ in range(num_circuits):
539
+ for _ in range(parameters.num_circuits):
437
540
  result = results[idx][0]
438
541
  for qubit in qubits:
439
542
  excited_probs[qubit].append(np.mean(result.measurements[str(qubit)]))
440
543
  idx += 1
441
544
  for qubit in qubits:
442
545
  gnd_probs[qubit].append(1.0 - np.mean(excited_probs[qubit]))
546
+
443
547
  return ParallelRandomizedBenchmarkingResult(
444
- {q: RandomizedBenchMarkResult(num_clifford_range, gnd_probs[q]) for q in qubits}
548
+ {q: RandomizedBenchMarkResult(parameters.num_clifford_range, gnd_probs[q]) for q in qubits}
445
549
  )
446
550
 
447
551
 
@@ -677,9 +781,14 @@ def two_qubit_state_tomography(
677
781
 
678
782
 
679
783
  def _create_parallel_rb_circuit(
680
- qubits: Sequence[cirq.Qid], num_cliffords: int, c1: list
784
+ qubits: Sequence[cirq.Qid],
785
+ num_cliffords: int,
786
+ c1: list[list[ops.SingleQubitCliffordGate]],
787
+ rng: np.random.Generator | None = None,
681
788
  ) -> cirq.Circuit:
682
- sequences_to_zip = [_random_single_q_clifford(qubit, num_cliffords, c1) for qubit in qubits]
789
+ sequences_to_zip = [
790
+ _random_single_q_clifford(qubit, num_cliffords, c1, rng) for qubit in qubits
791
+ ]
683
792
  # Ensure each sequence has the same number of moments.
684
793
  num_moments = max(len(sequence) for sequence in sequences_to_zip)
685
794
  for q, sequence in zip(qubits, sequences_to_zip):
@@ -730,11 +839,14 @@ def _two_qubit_clifford_matrices(q_0: cirq.Qid, q_1: cirq.Qid, cliffords: Cliffo
730
839
 
731
840
 
732
841
  def _random_single_q_clifford(
733
- qubit: cirq.Qid, num_cfds: int, cfds: Sequence[Sequence[cirq.ops.SingleQubitCliffordGate]]
842
+ qubit: cirq.Qid,
843
+ num_cfds: int,
844
+ cfds: Sequence[Sequence[cirq.ops.SingleQubitCliffordGate]],
845
+ rng: np.random.Generator | None = None,
734
846
  ) -> list[cirq.Operation]:
735
- clifford_group_size = 24
736
847
  operations = [[gate.to_phased_xz_gate()(qubit) for gate in gates] for gates in cfds]
737
- gate_ids = np.random.choice(clifford_group_size, num_cfds).tolist()
848
+ choice_fn = rng.choice if rng else np.random.choice
849
+ gate_ids = choice_fn(len(cfds), num_cfds).tolist()
738
850
  adjoint = _reduce_gate_seq([gate for gate_id in gate_ids for gate in cfds[gate_id]]) ** -1
739
851
  return [op for gate_id in gate_ids for op in operations[gate_id]] + [
740
852
  adjoint.to_phased_xz_gate()(qubit)
@@ -14,6 +14,9 @@
14
14
 
15
15
  from __future__ import annotations
16
16
 
17
+ import os
18
+ from unittest import mock
19
+
17
20
  import matplotlib.pyplot as plt
18
21
  import numpy as np
19
22
  import pytest
@@ -104,6 +107,7 @@ def test_single_qubit_cliffords():
104
107
  assert num_x <= 1
105
108
 
106
109
 
110
+ @mock.patch.dict(os.environ, clear='CIRQ_TESTING')
107
111
  def test_single_qubit_randomized_benchmarking():
108
112
  # Check that the ground state population at the end of the Clifford
109
113
  # sequences is always unity.
@@ -116,7 +120,8 @@ def test_single_qubit_randomized_benchmarking():
116
120
  assert np.isclose(results.pauli_error(), 0.0, atol=1e-7) # warning is expected
117
121
 
118
122
 
119
- def test_parallel_single_qubit_randomized_benchmarking():
123
+ @mock.patch.dict(os.environ, clear='CIRQ_TESTING')
124
+ def test_parallel_single_qubit_parallel_single_qubit_randomized_benchmarking():
120
125
  # Check that the ground state population at the end of the Clifford
121
126
  # sequences is always unity.
122
127
  simulator = sim.Simulator()
@@ -229,13 +234,24 @@ def test_tomography_plot_raises_for_incorrect_number_of_axes():
229
234
  result.plot(axes)
230
235
 
231
236
 
232
- def test_single_qubit_cliffords_gateset():
237
+ @pytest.mark.parametrize('num_cliffords', range(5, 10))
238
+ @pytest.mark.parametrize('use_xy_basis', [False, True])
239
+ @pytest.mark.parametrize('strict_basis', [False, True])
240
+ def test_single_qubit_cliffords_gateset(num_cliffords, use_xy_basis, strict_basis):
233
241
  qubits = [GridQubit(0, i) for i in range(4)]
234
- clifford_group = cirq.experiments.qubit_characterizations._single_qubit_cliffords()
242
+ c1_in_xy = cirq.experiments.qubit_characterizations.RBParameters(
243
+ use_xy_basis=use_xy_basis, strict_basis=strict_basis
244
+ ).gateset()
245
+ if strict_basis:
246
+ assert len(c1_in_xy) == 20
247
+ else:
248
+ assert len(c1_in_xy) == 24
235
249
  c = cirq.experiments.qubit_characterizations._create_parallel_rb_circuit(
236
- qubits, 5, clifford_group.c1_in_xy
250
+ qubits, num_cliffords, c1_in_xy
237
251
  )
238
252
  device = cirq.testing.ValidatingTestDevice(
239
253
  qubits=qubits, allowed_gates=(cirq.ops.PhasedXZGate, cirq.MeasurementGate)
240
254
  )
241
255
  device.validate_circuit(c)
256
+
257
+ assert len(c) == num_cliffords + 2
@@ -30,8 +30,9 @@ from cirq import ops, value, vis
30
30
  from cirq._compat import cached_method
31
31
  from cirq.experiments import random_quantum_circuit_generation as rqcg
32
32
  from cirq.experiments.qubit_characterizations import (
33
- parallel_single_qubit_randomized_benchmarking,
33
+ parallel_single_qubit_rb,
34
34
  ParallelRandomizedBenchmarkingResult,
35
+ RBParameters,
35
36
  )
36
37
  from cirq.experiments.xeb_fitting import (
37
38
  benchmark_2q_xeb_fidelities,
@@ -586,12 +587,14 @@ def run_rb_and_xeb(
586
587
 
587
588
  qubits, pairs = qubits_and_pairs(sampler, qubits, pairs)
588
589
 
589
- rb = parallel_single_qubit_randomized_benchmarking(
590
+ rb = parallel_single_qubit_rb(
590
591
  sampler=sampler,
591
592
  qubits=qubits,
592
- repetitions=repetitions,
593
- num_circuits=num_circuits,
594
- num_clifford_range=num_clifford_range,
593
+ parameters=RBParameters(
594
+ num_circuits=num_circuits,
595
+ repetitions=repetitions,
596
+ num_clifford_range=num_clifford_range,
597
+ ),
595
598
  )
596
599
 
597
600
  xeb = parallel_two_qubit_xeb(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cirq-core
3
- Version: 1.6.0.dev20250708003832
3
+ Version: 1.6.0.dev20250709210336
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
@@ -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=ygmrzn06EPTbFWOVLRny8R883ka_UHuEY_CF9X3Cbwc,1278
8
- cirq/_version_test.py,sha256=lyEjEDyqrmP9pddMqZ4Vx_G03nha1k2CAOcBde9gnyU,155
7
+ cirq/_version.py,sha256=S65gLkswFYFbacmVIIcqSpj4S2_5h7O1oBhn2M9Y8Yg,1278
8
+ cirq/_version_test.py,sha256=WpxLgLhkE14_vDAssF-m_kPh73Uq4GUNr_kDfOxz5tE,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
@@ -180,15 +180,15 @@ cirq/devices/thermal_noise_model.py,sha256=LIGlA6ikYWqbh-759RqXPMDMpCV2uKHT_pRLf
180
180
  cirq/devices/thermal_noise_model_test.py,sha256=vgloNkmkNes_pn0D50-LD2RUcsMJey7EN8Wm6Nc-d5U,12282
181
181
  cirq/devices/unconstrained_device.py,sha256=wa94uVzaCPb1jmG3h6hSGJQggSuCvEK8wekkGXCOx_Q,1551
182
182
  cirq/devices/unconstrained_device_test.py,sha256=J8vABVWWywQuX6Jlo5Y0pWTh6VZRatdmjdBL6u0kZKk,1083
183
- cirq/experiments/__init__.py,sha256=Pl86-y9EoQuz8_XkzYGUcaiBJQKsWwVE4oG_sCORIb0,3645
183
+ cirq/experiments/__init__.py,sha256=3y8FX6Edh_mEFJ7AWjhDurnSLxuEt0_edqL7CitCrTQ,3777
184
184
  cirq/experiments/fidelity_estimation.py,sha256=2wq4gFZ6XYzk3NUGbyNn7EZT911XEHcZot1RD4825mc,9264
185
185
  cirq/experiments/fidelity_estimation_test.py,sha256=On0O1StB6Fo85xuK6BWo-zZWb2at-GqhAgpSrNRBn3I,4955
186
186
  cirq/experiments/n_qubit_tomography.py,sha256=16u0Tv14SyUM9WCk-ZxbBit9cl93MbZodGrj16XiBuo,8436
187
187
  cirq/experiments/n_qubit_tomography_test.py,sha256=8wIgs0O8DtlCGOyC0MZA_d3tLNoURX1ARcqnnp1360g,4439
188
188
  cirq/experiments/purity_estimation.py,sha256=0F5uWh0pqNJ9RZQtNBzGeF8OUpapGFeqPWWVsdpEA7k,2503
189
189
  cirq/experiments/purity_estimation_test.py,sha256=OF3EtFBg7ZqPSBfRJK_-1ji2-xrNVEuD77lHO8Sm3Jc,959
190
- cirq/experiments/qubit_characterizations.py,sha256=1ly0iYWcXVxOicsZehIOukHZQtqtNrlad44MIDdJdXU,36617
191
- cirq/experiments/qubit_characterizations_test.py,sha256=A0_BjQnjeOxXlR2kC7gEwtmssTnv8kR0ljAQA4hOGoQ,9752
190
+ cirq/experiments/qubit_characterizations.py,sha256=BKvi1_A7nOT24lxT8zsTWdqeORMUIV_yhQFUS5gy6bE,40673
191
+ cirq/experiments/qubit_characterizations_test.py,sha256=RZzyuQwYm9tHtQSZLigJnQcyhZdCzE7OiuyETQSiHxo,10319
192
192
  cirq/experiments/random_quantum_circuit_generation.py,sha256=pV6ubukLLdfPXLvJD2t979rVDCOTM32X6SB65vExeE4,28012
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
@@ -199,7 +199,7 @@ cirq/experiments/t1_decay_experiment.py,sha256=ojtmkQ5mgiQ-cK389YrvlRXotzHon83HN
199
199
  cirq/experiments/t1_decay_experiment_test.py,sha256=vjm-zV0a2yrFrFhzq03GOMBy5U_XnvX1Ga3NN4FiT3k,9262
200
200
  cirq/experiments/t2_decay_experiment.py,sha256=w4W7QvdIPW5LO9KeREpMFJpFpz0F0wA9T9qPs1t4Mzw,19135
201
201
  cirq/experiments/t2_decay_experiment_test.py,sha256=b2ikIWTctvAp66GZftmVJ1z0mgS-eN0FsUU7bErG7Cg,15066
202
- cirq/experiments/two_qubit_xeb.py,sha256=JKv6B5iH3HXhiJQ4qG2BldVzWu1kinZNHpxJeZdDHVA,22771
202
+ cirq/experiments/two_qubit_xeb.py,sha256=7CXYU1W-qijnp-1831zT-lEXCx6GeEJoCf6QOBvBChw,22803
203
203
  cirq/experiments/two_qubit_xeb_test.py,sha256=MSwdIOcfFy9d-GZUzz4f-2_gblleR89dPIyC8pt_AsQ,10689
204
204
  cirq/experiments/xeb_fitting.py,sha256=SaiamG0gc36bC6ilecZwJou-taEh3REWJAwg5F47DEA,30306
205
205
  cirq/experiments/xeb_fitting_test.py,sha256=q4d-6dPnnN_E9Qw9laip-opsfhdftJuY3QZfEh_u7Wo,15483
@@ -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.dev20250708003832.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1224
- cirq_core-1.6.0.dev20250708003832.dist-info/METADATA,sha256=VMbtjwjbwGyd4SMU1VaROP5loZQ0AQnbXXrKoEdTX5Y,4857
1225
- cirq_core-1.6.0.dev20250708003832.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1226
- cirq_core-1.6.0.dev20250708003832.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1227
- cirq_core-1.6.0.dev20250708003832.dist-info/RECORD,,
1223
+ cirq_core-1.6.0.dev20250709210336.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1224
+ cirq_core-1.6.0.dev20250709210336.dist-info/METADATA,sha256=DJxd5cHncmEgwK28oKZzXMm8LBc7zToCFmREDR7TlUg,4857
1225
+ cirq_core-1.6.0.dev20250709210336.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1226
+ cirq_core-1.6.0.dev20250709210336.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1227
+ cirq_core-1.6.0.dev20250709210336.dist-info/RECORD,,