cirq-core 1.6.0.dev20250708194540__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 +1 -1
- cirq/_version_test.py +1 -1
- cirq/experiments/__init__.py +3 -0
- cirq/experiments/qubit_characterizations.py +134 -22
- cirq/experiments/qubit_characterizations_test.py +20 -4
- cirq/experiments/two_qubit_xeb.py +8 -5
- {cirq_core-1.6.0.dev20250708194540.dist-info → cirq_core-1.6.0.dev20250709210336.dist-info}/METADATA +1 -1
- {cirq_core-1.6.0.dev20250708194540.dist-info → cirq_core-1.6.0.dev20250709210336.dist-info}/RECORD +11 -11
- {cirq_core-1.6.0.dev20250708194540.dist-info → cirq_core-1.6.0.dev20250709210336.dist-info}/WHEEL +0 -0
- {cirq_core-1.6.0.dev20250708194540.dist-info → cirq_core-1.6.0.dev20250709210336.dist-info}/licenses/LICENSE +0 -0
- {cirq_core-1.6.0.dev20250708194540.dist-info → cirq_core-1.6.0.dev20250709210336.dist-info}/top_level.txt +0 -0
cirq/_version.py
CHANGED
cirq/_version_test.py
CHANGED
cirq/experiments/__init__.py
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
425
|
+
return single_qubit_rb(
|
|
380
426
|
sampler,
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
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
|
-
|
|
422
|
-
|
|
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],
|
|
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 = [
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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 =
|
|
590
|
+
rb = parallel_single_qubit_rb(
|
|
590
591
|
sampler=sampler,
|
|
591
592
|
qubits=qubits,
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
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(
|
{cirq_core-1.6.0.dev20250708194540.dist-info → cirq_core-1.6.0.dev20250709210336.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.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
|
{cirq_core-1.6.0.dev20250708194540.dist-info → cirq_core-1.6.0.dev20250709210336.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=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=
|
|
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=
|
|
191
|
-
cirq/experiments/qubit_characterizations_test.py,sha256=
|
|
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=
|
|
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.
|
|
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.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,,
|
{cirq_core-1.6.0.dev20250708194540.dist-info → cirq_core-1.6.0.dev20250709210336.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|