cirq-core 1.2.0.dev20230712233101__py3-none-any.whl → 1.2.0.dev20230717131509__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/testing/__init__.py +2 -0
- cirq/testing/consistent_decomposition.py +11 -2
- cirq/testing/consistent_decomposition_test.py +8 -1
- cirq/testing/consistent_protocols.py +2 -0
- cirq/testing/consistent_unitary.py +85 -0
- cirq/testing/consistent_unitary_test.py +96 -0
- cirq/testing/sample_gates.py +5 -5
- {cirq_core-1.2.0.dev20230712233101.dist-info → cirq_core-1.2.0.dev20230717131509.dist-info}/METADATA +1 -1
- {cirq_core-1.2.0.dev20230712233101.dist-info → cirq_core-1.2.0.dev20230717131509.dist-info}/RECORD +13 -11
- {cirq_core-1.2.0.dev20230712233101.dist-info → cirq_core-1.2.0.dev20230717131509.dist-info}/LICENSE +0 -0
- {cirq_core-1.2.0.dev20230712233101.dist-info → cirq_core-1.2.0.dev20230717131509.dist-info}/WHEEL +0 -0
- {cirq_core-1.2.0.dev20230712233101.dist-info → cirq_core-1.2.0.dev20230717131509.dist-info}/top_level.txt +0 -0
cirq/_version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "1.2.0.
|
|
1
|
+
__version__ = "1.2.0.dev20230717131509"
|
cirq/testing/__init__.py
CHANGED
|
@@ -109,3 +109,5 @@ from cirq.testing.routing_devices import (
|
|
|
109
109
|
from cirq.testing.sample_circuits import nonoptimal_toffoli_circuit
|
|
110
110
|
|
|
111
111
|
from cirq.testing.sample_gates import PhaseUsingCleanAncilla, PhaseUsingDirtyAncilla
|
|
112
|
+
|
|
113
|
+
from cirq.testing.consistent_unitary import assert_unitary_is_consistent
|
|
@@ -40,8 +40,17 @@ def assert_decompose_is_consistent_with_unitary(val: Any, ignoring_global_phase:
|
|
|
40
40
|
# If there's no decomposition, it's vacuously consistent.
|
|
41
41
|
return
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
c = circuits.Circuit(dec)
|
|
44
|
+
if len(c.all_qubits().difference(qubits)):
|
|
45
|
+
# The decomposition contains ancilla qubits.
|
|
46
|
+
ancilla = tuple(c.all_qubits().difference(qubits))
|
|
47
|
+
qubit_order = ancilla + qubits
|
|
48
|
+
actual = c.unitary(qubit_order=qubit_order)
|
|
49
|
+
qid_shape = protocols.qid_shape(qubits)
|
|
50
|
+
vol = np.prod(qid_shape, dtype=np.int64)
|
|
51
|
+
actual = actual[:vol, :vol]
|
|
52
|
+
else:
|
|
53
|
+
actual = c.unitary(qubit_order=qubits)
|
|
45
54
|
if ignoring_global_phase:
|
|
46
55
|
lin_alg_utils.assert_allclose_up_to_global_phase(actual, expected, atol=1e-8)
|
|
47
56
|
else:
|
|
@@ -43,6 +43,14 @@ def test_assert_decompose_is_consistent_with_unitary():
|
|
|
43
43
|
GoodGateDecompose().on(cirq.NamedQubit('q'))
|
|
44
44
|
)
|
|
45
45
|
|
|
46
|
+
cirq.testing.assert_decompose_is_consistent_with_unitary(
|
|
47
|
+
cirq.testing.PhaseUsingCleanAncilla(theta=0.1, ancilla_bitsize=3)
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
cirq.testing.assert_decompose_is_consistent_with_unitary(
|
|
51
|
+
cirq.testing.PhaseUsingDirtyAncilla(phase_state=1, ancilla_bitsize=4)
|
|
52
|
+
)
|
|
53
|
+
|
|
46
54
|
with pytest.raises(AssertionError):
|
|
47
55
|
cirq.testing.assert_decompose_is_consistent_with_unitary(BadGateDecompose())
|
|
48
56
|
|
|
@@ -83,7 +91,6 @@ class ParameterizedGate(cirq.Gate):
|
|
|
83
91
|
|
|
84
92
|
|
|
85
93
|
def test_assert_decompose_ends_at_default_gateset():
|
|
86
|
-
|
|
87
94
|
cirq.testing.assert_decompose_ends_at_default_gateset(GateDecomposesToDefaultGateset())
|
|
88
95
|
cirq.testing.assert_decompose_ends_at_default_gateset(
|
|
89
96
|
GateDecomposesToDefaultGateset().on(*cirq.LineQubit.range(2))
|
|
@@ -37,6 +37,7 @@ from cirq.testing.consistent_resolve_parameters import assert_consistent_resolve
|
|
|
37
37
|
from cirq.testing.consistent_specified_has_unitary import assert_specifies_has_unitary_if_unitary
|
|
38
38
|
from cirq.testing.equivalent_repr_eval import assert_equivalent_repr
|
|
39
39
|
from cirq.testing.consistent_controlled_gate_op import assert_controlled_and_controlled_by_identical
|
|
40
|
+
from cirq.testing.consistent_unitary import assert_unitary_is_consistent
|
|
40
41
|
|
|
41
42
|
|
|
42
43
|
def assert_implements_consistent_protocols(
|
|
@@ -153,6 +154,7 @@ def _assert_meets_standards_helper(
|
|
|
153
154
|
assert_qasm_is_consistent_with_unitary(val)
|
|
154
155
|
assert_has_consistent_trace_distance_bound(val)
|
|
155
156
|
assert_decompose_is_consistent_with_unitary(val, ignoring_global_phase=ignoring_global_phase)
|
|
157
|
+
assert_unitary_is_consistent(val, ignoring_global_phase=ignoring_global_phase)
|
|
156
158
|
if not ignore_decompose_to_default_gateset:
|
|
157
159
|
assert_decompose_ends_at_default_gateset(val)
|
|
158
160
|
assert_phase_by_is_consistent_with_unitary(val)
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Copyright 2023 The Cirq Developers
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
from typing import Any
|
|
17
|
+
import cirq
|
|
18
|
+
import numpy as np
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def assert_unitary_is_consistent(val: Any, ignoring_global_phase: bool = False):
|
|
22
|
+
if not isinstance(val, (cirq.Operation, cirq.Gate)):
|
|
23
|
+
return
|
|
24
|
+
|
|
25
|
+
if not cirq.has_unitary(val):
|
|
26
|
+
return
|
|
27
|
+
|
|
28
|
+
# Ensure that `u` is a unitary.
|
|
29
|
+
u = cirq.unitary(val)
|
|
30
|
+
assert not (u is None or u is NotImplemented)
|
|
31
|
+
assert cirq.is_unitary(u)
|
|
32
|
+
|
|
33
|
+
if isinstance(val, cirq.Operation):
|
|
34
|
+
qubits = val.qubits
|
|
35
|
+
decomposition = cirq.decompose_once(val, default=None)
|
|
36
|
+
else:
|
|
37
|
+
qubits = tuple(cirq.LineQid.for_gate(val))
|
|
38
|
+
decomposition = cirq.decompose_once_with_qubits(val, qubits, default=None)
|
|
39
|
+
|
|
40
|
+
if decomposition is None or decomposition is NotImplemented:
|
|
41
|
+
return
|
|
42
|
+
|
|
43
|
+
c = cirq.Circuit(decomposition)
|
|
44
|
+
if len(c.all_qubits().difference(qubits)) == 0:
|
|
45
|
+
return
|
|
46
|
+
|
|
47
|
+
clean_qubits = tuple(q for q in c.all_qubits() if isinstance(q, cirq.ops.CleanQubit))
|
|
48
|
+
borrowable_qubits = tuple(q for q in c.all_qubits() if isinstance(q, cirq.ops.BorrowableQubit))
|
|
49
|
+
qubit_order = clean_qubits + borrowable_qubits + qubits
|
|
50
|
+
|
|
51
|
+
# Check that the decomposition uses all data qubits in addition to
|
|
52
|
+
# clean and/or borrowable qubits.
|
|
53
|
+
assert set(qubit_order) == c.all_qubits()
|
|
54
|
+
|
|
55
|
+
qid_shape = cirq.qid_shape(qubit_order)
|
|
56
|
+
full_unitary = cirq.apply_unitaries(
|
|
57
|
+
decomposition,
|
|
58
|
+
qubits=qubit_order,
|
|
59
|
+
args=cirq.ApplyUnitaryArgs.for_unitary(qid_shape=qid_shape),
|
|
60
|
+
default=None,
|
|
61
|
+
)
|
|
62
|
+
if full_unitary is None:
|
|
63
|
+
raise ValueError(f'apply_unitaries failed on the decomposition of {val}')
|
|
64
|
+
vol = np.prod(qid_shape, dtype=np.int64)
|
|
65
|
+
full_unitary = full_unitary.reshape((vol, vol))
|
|
66
|
+
|
|
67
|
+
vol = np.prod(cirq.qid_shape(borrowable_qubits + qubits), dtype=np.int64)
|
|
68
|
+
|
|
69
|
+
# Extract the submatrix acting on the |0..0> subspace of clean qubits.
|
|
70
|
+
# This submatirx must be a unitary.
|
|
71
|
+
clean_qubits_zero_subspace = full_unitary[:vol, :vol]
|
|
72
|
+
|
|
73
|
+
# If the borrowable qubits are restored to their initial state, then
|
|
74
|
+
# the decomposition's effect on it is the identity matrix.
|
|
75
|
+
# This means that the `clean_qubits_zero_subspace` must be I \otimes u.
|
|
76
|
+
# So checking that `clean_qubits_zero_subspace` is I \otimes u checks correctness
|
|
77
|
+
# for both clean and borrowable qubits at the same time.
|
|
78
|
+
expected = np.kron(np.eye(2 ** len(borrowable_qubits), dtype=np.complex128), u)
|
|
79
|
+
|
|
80
|
+
if ignoring_global_phase:
|
|
81
|
+
cirq.testing.assert_allclose_up_to_global_phase(
|
|
82
|
+
clean_qubits_zero_subspace, expected, atol=1e-8
|
|
83
|
+
)
|
|
84
|
+
else:
|
|
85
|
+
np.testing.assert_allclose(clean_qubits_zero_subspace, expected, atol=1e-8)
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Copyright 2023 The Cirq Developers
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
import cirq
|
|
16
|
+
|
|
17
|
+
import pytest
|
|
18
|
+
import numpy as np
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class InconsistentGate(cirq.Gate):
|
|
22
|
+
def _num_qubits_(self) -> int:
|
|
23
|
+
return 1
|
|
24
|
+
|
|
25
|
+
def _unitary_(self) -> np.ndarray:
|
|
26
|
+
return np.eye(2, dtype=np.complex128)
|
|
27
|
+
|
|
28
|
+
def _decompose_with_context_(self, qubits, *, context):
|
|
29
|
+
(q,) = context.qubit_manager.qalloc(1)
|
|
30
|
+
yield cirq.X(q)
|
|
31
|
+
yield cirq.CNOT(q, qubits[0])
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class FailsOnDecompostion(cirq.Gate):
|
|
35
|
+
def _num_qubits_(self) -> int:
|
|
36
|
+
return 1
|
|
37
|
+
|
|
38
|
+
def _unitary_(self) -> np.ndarray:
|
|
39
|
+
return np.eye(2, dtype=np.complex128)
|
|
40
|
+
|
|
41
|
+
def _has_unitary_(self) -> bool:
|
|
42
|
+
return True
|
|
43
|
+
|
|
44
|
+
def _decompose_with_context_(self, qubits, *, context):
|
|
45
|
+
(q,) = context.qubit_manager.qalloc(1)
|
|
46
|
+
yield cirq.X(q)
|
|
47
|
+
yield cirq.measure(qubits[0])
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class CleanCorrectButBorrowableIncorrectGate(cirq.Gate):
|
|
51
|
+
"""Ancilla type determines if the decomposition is correct or not."""
|
|
52
|
+
|
|
53
|
+
def __init__(self, use_clean_ancilla: bool) -> None:
|
|
54
|
+
self.ancillas_are_clean = use_clean_ancilla
|
|
55
|
+
|
|
56
|
+
def _num_qubits_(self):
|
|
57
|
+
return 2
|
|
58
|
+
|
|
59
|
+
def _decompose_with_context_(self, qubits, *, context):
|
|
60
|
+
if self.ancillas_are_clean:
|
|
61
|
+
anc = context.qubit_manager.qalloc(1)
|
|
62
|
+
else:
|
|
63
|
+
anc = context.qubit_manager.qborrow(1)
|
|
64
|
+
yield cirq.CCNOT(*qubits, *anc)
|
|
65
|
+
yield cirq.Z(*anc)
|
|
66
|
+
yield cirq.CCNOT(*qubits, *anc)
|
|
67
|
+
context.qubit_manager.qfree(anc)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
@pytest.mark.parametrize('ignore_phase', [False, True])
|
|
71
|
+
@pytest.mark.parametrize(
|
|
72
|
+
'g,is_consistent',
|
|
73
|
+
[
|
|
74
|
+
(cirq.testing.PhaseUsingCleanAncilla(theta=0.1, ancilla_bitsize=3), True),
|
|
75
|
+
(cirq.testing.PhaseUsingDirtyAncilla(phase_state=1, ancilla_bitsize=4), True),
|
|
76
|
+
(InconsistentGate(), False),
|
|
77
|
+
(CleanCorrectButBorrowableIncorrectGate(use_clean_ancilla=True), True),
|
|
78
|
+
(CleanCorrectButBorrowableIncorrectGate(use_clean_ancilla=False), False),
|
|
79
|
+
],
|
|
80
|
+
)
|
|
81
|
+
def test_assert_unitary_is_consistent(g, ignore_phase, is_consistent):
|
|
82
|
+
if is_consistent:
|
|
83
|
+
cirq.testing.assert_unitary_is_consistent(g, ignore_phase)
|
|
84
|
+
cirq.testing.assert_unitary_is_consistent(g.on(*cirq.LineQid.for_gate(g)), ignore_phase)
|
|
85
|
+
else:
|
|
86
|
+
with pytest.raises(AssertionError):
|
|
87
|
+
cirq.testing.assert_unitary_is_consistent(g, ignore_phase)
|
|
88
|
+
with pytest.raises(AssertionError):
|
|
89
|
+
cirq.testing.assert_unitary_is_consistent(g.on(*cirq.LineQid.for_gate(g)), ignore_phase)
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
def test_failed_decomposition():
|
|
93
|
+
with pytest.raises(ValueError):
|
|
94
|
+
cirq.testing.assert_unitary_is_consistent(FailsOnDecompostion())
|
|
95
|
+
|
|
96
|
+
_ = cirq.testing.assert_unitary_is_consistent(cirq.Circuit())
|
cirq/testing/sample_gates.py
CHANGED
|
@@ -15,7 +15,7 @@ import dataclasses
|
|
|
15
15
|
|
|
16
16
|
import cirq
|
|
17
17
|
import numpy as np
|
|
18
|
-
from cirq import ops, qis
|
|
18
|
+
from cirq import ops, qis, protocols
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
def _matrix_for_phasing_state(num_qubits, phase_state, phase):
|
|
@@ -39,8 +39,8 @@ class PhaseUsingCleanAncilla(ops.Gate):
|
|
|
39
39
|
def _num_qubits_(self):
|
|
40
40
|
return self.target_bitsize
|
|
41
41
|
|
|
42
|
-
def
|
|
43
|
-
anc =
|
|
42
|
+
def _decompose_with_context_(self, qubits, *, context: protocols.DecompositionContext):
|
|
43
|
+
anc = context.qubit_manager.qalloc(self.ancilla_bitsize)
|
|
44
44
|
cv = [int(x) for x in f'{self.phase_state:0{self.target_bitsize}b}']
|
|
45
45
|
cnot_ladder = [cirq.CNOT(anc[i - 1], anc[i]) for i in range(1, self.ancilla_bitsize)]
|
|
46
46
|
|
|
@@ -65,8 +65,8 @@ class PhaseUsingDirtyAncilla(ops.Gate):
|
|
|
65
65
|
def _num_qubits_(self):
|
|
66
66
|
return self.target_bitsize
|
|
67
67
|
|
|
68
|
-
def
|
|
69
|
-
anc =
|
|
68
|
+
def _decompose_with_context_(self, qubits, *, context: protocols.DecompositionContext):
|
|
69
|
+
anc = context.qubit_manager.qalloc(self.ancilla_bitsize)
|
|
70
70
|
cv = [int(x) for x in f'{self.phase_state:0{self.target_bitsize}b}']
|
|
71
71
|
cnot_ladder = [cirq.CNOT(anc[i - 1], anc[i]) for i in range(1, self.ancilla_bitsize)]
|
|
72
72
|
yield ops.X(anc[0]).controlled_by(*qubits, control_values=cv)
|
{cirq_core-1.2.0.dev20230712233101.dist-info → cirq_core-1.2.0.dev20230717131509.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cirq-core
|
|
3
|
-
Version: 1.2.0.
|
|
3
|
+
Version: 1.2.0.dev20230717131509
|
|
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.2.0.dev20230712233101.dist-info → cirq_core-1.2.0.dev20230717131509.dist-info}/RECORD
RENAMED
|
@@ -4,7 +4,7 @@ cirq/_compat_test.py,sha256=tFt1lskrZi_Pmn8ZDeMxxfCNTivqVGzKiIYrskK0dE4,33898
|
|
|
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=
|
|
7
|
+
cirq/_version.py,sha256=QQD_zp2Pz0RjGtHznPQGYTcKwoDhcAb9nl0tOqHjiKU,40
|
|
8
8
|
cirq/_version_test.py,sha256=ZM9GLAiU02rzyJQ_HOT2o_tZixJ0lMXs4tCkOareqTA,133
|
|
9
9
|
cirq/conftest.py,sha256=mHCDs5--u17oLFDAfIlkTS4TRGSc35eLnZ2CXuIuB7I,1175
|
|
10
10
|
cirq/json_resolver_cache.py,sha256=JJiO1dhHsEqYClUv68eg-hiOzbb_C1QiQ-BCcvoe4Ck,13067
|
|
@@ -924,7 +924,7 @@ cirq/study/sweepable.py,sha256=BMgq8lxVnyJGBeu4gFUt_0P_v4gFwKgazZFftRUEwnA,4185
|
|
|
924
924
|
cirq/study/sweepable_test.py,sha256=xjUksIurfbh240fEC7Al_TuiHGz7xZGktQUh86XBG9U,4772
|
|
925
925
|
cirq/study/sweeps.py,sha256=IzonyU-LgEcMpvQrKZbl14v-BHi01oncp9CmHtLw0J4,19813
|
|
926
926
|
cirq/study/sweeps_test.py,sha256=IqZp0ywYA430nNE_slBfc4vdKjULttzPl8ytxHLlgWo,11966
|
|
927
|
-
cirq/testing/__init__.py,sha256=
|
|
927
|
+
cirq/testing/__init__.py,sha256=fYJsFpYtz_4JY3ClCh647oZY7ev27lebzwJ4hXDevXQ,3765
|
|
928
928
|
cirq/testing/circuit_compare.py,sha256=Daor8s6gVQKRO9JX0vOi3rU4hWu7_a0sWKc1E7sypOk,19350
|
|
929
929
|
cirq/testing/circuit_compare_test.py,sha256=6Xw1hrBUDavhji_ygpCKLBHUt_0melvy2VTjH2VcJwk,19743
|
|
930
930
|
cirq/testing/consistent_act_on.py,sha256=bgV2LzqTG8rcxMephuWqoAhd_Q2rPWNGHOnbLRg6KT4,7854
|
|
@@ -933,19 +933,21 @@ cirq/testing/consistent_channels.py,sha256=hrPRjaabPko2l0xqqkJ8F3OM7pornkDNCP-St
|
|
|
933
933
|
cirq/testing/consistent_channels_test.py,sha256=Xpm0KA5ArxGKh3h1GJ9sdDrLuyDCrnkVZgzPZOQYsTY,3485
|
|
934
934
|
cirq/testing/consistent_controlled_gate_op.py,sha256=mU3h3OtpPzqntRcKn8SqaaYU_evw2MpoB_jQywECsnI,2206
|
|
935
935
|
cirq/testing/consistent_controlled_gate_op_test.py,sha256=K2oqmMQvMepQ_SM1sre-E7wNeQlCATKvuGG7rwJUhGQ,2941
|
|
936
|
-
cirq/testing/consistent_decomposition.py,sha256=
|
|
937
|
-
cirq/testing/consistent_decomposition_test.py,sha256
|
|
936
|
+
cirq/testing/consistent_decomposition.py,sha256=UxXW0Mn6XyDcVtL5-JcPC2f7BAkndyU1HNokQj8PB_Y,3731
|
|
937
|
+
cirq/testing/consistent_decomposition_test.py,sha256=6GUPhZQI4FVHM9fYZbHr62-TrwiK0jOPMTOznDellFw,3820
|
|
938
938
|
cirq/testing/consistent_pauli_expansion.py,sha256=NVloOg1I8LGGIEoZxvtUQIUHRvMgo9CNgw5-atuXGsE,1580
|
|
939
939
|
cirq/testing/consistent_pauli_expansion_test.py,sha256=Gy95osE-L4uQs1E1oxAKHCgVguXl-hjI5UNQJW5cEdI,2402
|
|
940
940
|
cirq/testing/consistent_phase_by.py,sha256=oSZcZnKMOIJnBS0HgYi-8aRaVJmHGgI--WAUGC5JxQ8,2085
|
|
941
941
|
cirq/testing/consistent_phase_by_test.py,sha256=YbI0n0FpWpBkbgYp0-yGZSeesDZEst0cmYtXgJE2LQY,3273
|
|
942
|
-
cirq/testing/consistent_protocols.py,sha256=
|
|
942
|
+
cirq/testing/consistent_protocols.py,sha256=dFixwCjCeXmu9EXv4QjIUBXnl1K1UYeMjBUQcZgBD_o,7629
|
|
943
943
|
cirq/testing/consistent_protocols_test.py,sha256=vRRWpp2nqtbIJEvAvRLpKbrfZgTsl1fOm8hv4zlJBiE,10126
|
|
944
944
|
cirq/testing/consistent_qasm.py,sha256=QjawKbxbKhcnbybLqls2OoQ7AusU14H1afv1qj-uxzM,5191
|
|
945
945
|
cirq/testing/consistent_qasm_test.py,sha256=PGXPXexT6sjbbgKdouWWZ9pyXvwRA0HaMrtUzE-yyiQ,2890
|
|
946
946
|
cirq/testing/consistent_resolve_parameters.py,sha256=hYbp6kbXrOLCc1DMDRC2zTAx1qlvCCJMuzZ7a5cGhmA,1973
|
|
947
947
|
cirq/testing/consistent_specified_has_unitary.py,sha256=WY2YPFvRTGoj5gxtbs4jtB18S-yj5MIJkdz2gVda9Gw,1237
|
|
948
948
|
cirq/testing/consistent_specified_has_unitary_test.py,sha256=qMar7K1CoubcX_rl9i3iQdI-LpF-OxvY8V4h7k_f26A,2571
|
|
949
|
+
cirq/testing/consistent_unitary.py,sha256=JWUNy4HeWbs4JjPm6kLTKfqNq1wP2e3WYQxpDabkfZU,3247
|
|
950
|
+
cirq/testing/consistent_unitary_test.py,sha256=MS0cHzR7gwy4zM_AHiYqNErj7bhqmQX78eIuaYORO6Q,3260
|
|
949
951
|
cirq/testing/deprecation.py,sha256=neyww8gBZZmgwPX8xPw8Mg4HgG0OXwSixhOAHnIU2ks,2152
|
|
950
952
|
cirq/testing/deprecation_test.py,sha256=bWq_VY-rGnfvdeJVqdkMIDzMtxQRj9rdR6gu0kCHtzo,2166
|
|
951
953
|
cirq/testing/devices.py,sha256=fA0rcpZxMU0fVObtLcsDJa4XS_QBzi6uH58W0PAYOoA,3259
|
|
@@ -978,7 +980,7 @@ cirq/testing/routing_devices.py,sha256=uIm0j7GcChiHog9-c7kyIw9qdfBEmLLETRF37UwLv
|
|
|
978
980
|
cirq/testing/routing_devices_test.py,sha256=iyNZp3J8fUt8bOktXZNhDgxR6L8UBRphgzYmDsmHvTw,5598
|
|
979
981
|
cirq/testing/sample_circuits.py,sha256=8HTrY_RWoPHV18q7aLz6e5Fjd2Twkt9Wkc_IDBzTE1o,1585
|
|
980
982
|
cirq/testing/sample_circuits_test.py,sha256=IMz72CMXJeRt7Eg1rRB68hFV1v3k7OQpYUyhqmfjNpo,876
|
|
981
|
-
cirq/testing/sample_gates.py,sha256=
|
|
983
|
+
cirq/testing/sample_gates.py,sha256=qSCZhb-A-Mwm_J81Su2sUFyEUdvqfq7Je66dsk8cFy0,3277
|
|
982
984
|
cirq/testing/sample_gates_test.py,sha256=mkfYPNo4WFH6y33Vr_f9zy2Ry1oq5yYLpB__sqSCkjQ,2377
|
|
983
985
|
cirq/testing/_compat_test_data/__init__.py,sha256=yIe0dUE7-FT1bxYjc0hcoOZQkecBdYN5onC6KOpsx8U,3040
|
|
984
986
|
cirq/testing/_compat_test_data/module_a/__init__.py,sha256=klpfbI8BVz2BA5TwhUDGqMSM0Sjw6ABIA_4hpyADHaE,386
|
|
@@ -1138,8 +1140,8 @@ cirq/work/sampler.py,sha256=JVv1vvfa6EgFiR3UeDk44U186dCrioH2NZXueCgsb9w,19828
|
|
|
1138
1140
|
cirq/work/sampler_test.py,sha256=zo1Hj6sn6fLs_WZMxYRApBqgBsldmptn74NL0jhNukc,12325
|
|
1139
1141
|
cirq/work/zeros_sampler.py,sha256=D3hbNZC-jXKuNAWg2OUiUuT8pmDV_WFnEfMank6In4o,2357
|
|
1140
1142
|
cirq/work/zeros_sampler_test.py,sha256=JIkpBBFPJe5Ba4142vzogyWyboG1Q1ZAm0UVGgOoZn8,3279
|
|
1141
|
-
cirq_core-1.2.0.
|
|
1142
|
-
cirq_core-1.2.0.
|
|
1143
|
-
cirq_core-1.2.0.
|
|
1144
|
-
cirq_core-1.2.0.
|
|
1145
|
-
cirq_core-1.2.0.
|
|
1143
|
+
cirq_core-1.2.0.dev20230717131509.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
1144
|
+
cirq_core-1.2.0.dev20230717131509.dist-info/METADATA,sha256=bSlKWub-9LcGFV10b2VqNPinYWWU8WLsBNXvVIILi64,2095
|
|
1145
|
+
cirq_core-1.2.0.dev20230717131509.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
|
1146
|
+
cirq_core-1.2.0.dev20230717131509.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
|
|
1147
|
+
cirq_core-1.2.0.dev20230717131509.dist-info/RECORD,,
|
{cirq_core-1.2.0.dev20230712233101.dist-info → cirq_core-1.2.0.dev20230717131509.dist-info}/LICENSE
RENAMED
|
File without changes
|
{cirq_core-1.2.0.dev20230712233101.dist-info → cirq_core-1.2.0.dev20230717131509.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|