cirq-core 1.6.0.dev20250617175947__py3-none-any.whl → 1.6.0.dev20250618173543__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/linalg/predicates.py +6 -2
- cirq/linalg/predicates_test.py +3 -0
- cirq/protocols/apply_mixture_protocol.py +0 -29
- cirq/protocols/apply_unitary_protocol.py +14 -9
- cirq/protocols/apply_unitary_protocol_test.py +2 -1
- cirq/protocols/has_unitary_protocol.py +3 -1
- cirq/protocols/has_unitary_protocol_test.py +3 -0
- cirq/protocols/kraus_protocol.py +1 -3
- cirq/protocols/mixture_protocol.py +1 -1
- cirq/protocols/mixture_protocol_test.py +2 -2
- cirq/protocols/pauli_expansion_protocol_test.py +1 -1
- cirq/protocols/unitary_protocol.py +8 -0
- cirq/protocols/unitary_protocol_test.py +9 -0
- {cirq_core-1.6.0.dev20250617175947.dist-info → cirq_core-1.6.0.dev20250618173543.dist-info}/METADATA +1 -1
- {cirq_core-1.6.0.dev20250617175947.dist-info → cirq_core-1.6.0.dev20250618173543.dist-info}/RECORD +20 -20
- {cirq_core-1.6.0.dev20250617175947.dist-info → cirq_core-1.6.0.dev20250618173543.dist-info}/WHEEL +0 -0
- {cirq_core-1.6.0.dev20250617175947.dist-info → cirq_core-1.6.0.dev20250618173543.dist-info}/licenses/LICENSE +0 -0
- {cirq_core-1.6.0.dev20250617175947.dist-info → cirq_core-1.6.0.dev20250618173543.dist-info}/top_level.txt +0 -0
cirq/_version.py
CHANGED
cirq/_version_test.py
CHANGED
cirq/linalg/predicates.py
CHANGED
|
@@ -115,8 +115,12 @@ def is_unitary(matrix: np.ndarray, *, rtol: float = 1e-5, atol: float = 1e-8) ->
|
|
|
115
115
|
Returns:
|
|
116
116
|
Whether the matrix is unitary within the given tolerance.
|
|
117
117
|
"""
|
|
118
|
-
return
|
|
119
|
-
matrix.
|
|
118
|
+
return (
|
|
119
|
+
matrix.ndim == 2
|
|
120
|
+
and matrix.shape[0] == matrix.shape[1]
|
|
121
|
+
and np.allclose(
|
|
122
|
+
matrix.dot(np.conj(matrix.T)), np.eye(matrix.shape[0]), rtol=rtol, atol=atol
|
|
123
|
+
)
|
|
120
124
|
)
|
|
121
125
|
|
|
122
126
|
|
cirq/linalg/predicates_test.py
CHANGED
|
@@ -103,10 +103,13 @@ def test_is_hermitian_tolerance():
|
|
|
103
103
|
|
|
104
104
|
|
|
105
105
|
def test_is_unitary():
|
|
106
|
+
assert not cirq.is_unitary(np.empty((0,)))
|
|
106
107
|
assert cirq.is_unitary(np.empty((0, 0)))
|
|
107
108
|
assert not cirq.is_unitary(np.empty((1, 0)))
|
|
108
109
|
assert not cirq.is_unitary(np.empty((0, 1)))
|
|
110
|
+
assert not cirq.is_unitary(np.empty((0, 0, 0)))
|
|
109
111
|
|
|
112
|
+
assert not cirq.is_unitary(np.array(1))
|
|
110
113
|
assert cirq.is_unitary(np.array([[1]]))
|
|
111
114
|
assert cirq.is_unitary(np.array([[-1]]))
|
|
112
115
|
assert cirq.is_unitary(np.array([[1j]]))
|
|
@@ -22,7 +22,6 @@ from typing import Any, cast, Iterable, TypeVar
|
|
|
22
22
|
import numpy as np
|
|
23
23
|
from typing_extensions import Protocol
|
|
24
24
|
|
|
25
|
-
from cirq import linalg
|
|
26
25
|
from cirq._doc import doc_private
|
|
27
26
|
from cirq.protocols import qid_shape_protocol
|
|
28
27
|
from cirq.protocols.apply_unitary_protocol import apply_unitary, ApplyUnitaryArgs
|
|
@@ -332,32 +331,6 @@ def _apply_unitary_strat(
|
|
|
332
331
|
return right_result
|
|
333
332
|
|
|
334
333
|
|
|
335
|
-
def _apply_unitary_from_matrix_strat(
|
|
336
|
-
val: np.ndarray, args: ApplyMixtureArgs, is_density_matrix: bool
|
|
337
|
-
) -> np.ndarray | None:
|
|
338
|
-
"""Used to enact mixture tuples that are given as (probability, np.ndarray)
|
|
339
|
-
|
|
340
|
-
If `val` does not support `apply_unitary` returns None.
|
|
341
|
-
"""
|
|
342
|
-
qid_shape = tuple(args.target_tensor.shape[i] for i in args.left_axes)
|
|
343
|
-
matrix_tensor = np.reshape(val.astype(args.target_tensor.dtype), qid_shape * 2)
|
|
344
|
-
linalg.targeted_left_multiply(
|
|
345
|
-
matrix_tensor, args.target_tensor, args.left_axes, out=args.auxiliary_buffer0
|
|
346
|
-
)
|
|
347
|
-
|
|
348
|
-
if not is_density_matrix:
|
|
349
|
-
return args.auxiliary_buffer0
|
|
350
|
-
# No need to transpose as we are acting on the tensor
|
|
351
|
-
# representation of matrix, so transpose is done for us.
|
|
352
|
-
linalg.targeted_left_multiply(
|
|
353
|
-
np.conjugate(matrix_tensor),
|
|
354
|
-
args.auxiliary_buffer0,
|
|
355
|
-
cast(tuple[int], args.right_axes),
|
|
356
|
-
out=args.target_tensor,
|
|
357
|
-
)
|
|
358
|
-
return args.target_tensor
|
|
359
|
-
|
|
360
|
-
|
|
361
334
|
def _apply_mixture_from_mixture_strat(
|
|
362
335
|
val: Any, args: ApplyMixtureArgs, is_density_matrix: bool
|
|
363
336
|
) -> np.ndarray | None:
|
|
@@ -373,8 +346,6 @@ def _apply_mixture_from_mixture_strat(
|
|
|
373
346
|
for prob, op in prob_mix:
|
|
374
347
|
np.copyto(dst=args.target_tensor, src=args.auxiliary_buffer1)
|
|
375
348
|
right_result = _apply_unitary_strat(op, args, is_density_matrix)
|
|
376
|
-
if right_result is None:
|
|
377
|
-
right_result = _apply_unitary_from_matrix_strat(op, args, is_density_matrix)
|
|
378
349
|
|
|
379
350
|
args.out_buffer += prob * right_result
|
|
380
351
|
|
|
@@ -469,15 +469,20 @@ def _apply_unitary_from_matrix(matrix: np.ndarray, unitary_value: Any, args: App
|
|
|
469
469
|
def _strat_apply_unitary_from_unitary(
|
|
470
470
|
unitary_value: Any, args: ApplyUnitaryArgs
|
|
471
471
|
) -> np.ndarray | None:
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
472
|
+
if isinstance(unitary_value, np.ndarray):
|
|
473
|
+
matrix = unitary_value
|
|
474
|
+
if not linalg.is_unitary(matrix):
|
|
475
|
+
return None
|
|
476
|
+
else:
|
|
477
|
+
# Check for magic method.
|
|
478
|
+
method = getattr(unitary_value, '_unitary_', None)
|
|
479
|
+
if method is None:
|
|
480
|
+
return NotImplemented
|
|
481
|
+
|
|
482
|
+
# Attempt to get the unitary matrix.
|
|
483
|
+
matrix = method()
|
|
484
|
+
if matrix is NotImplemented or matrix is None:
|
|
485
|
+
return matrix
|
|
481
486
|
|
|
482
487
|
return _apply_unitary_from_matrix(matrix, unitary_value, args)
|
|
483
488
|
|
|
@@ -56,12 +56,13 @@ def test_apply_unitary_presence_absence():
|
|
|
56
56
|
args.target_tensor[one] *= -1
|
|
57
57
|
return args.target_tensor
|
|
58
58
|
|
|
59
|
-
fails = [NoUnitaryEffect(), HasApplyReturnsNotImplemented()]
|
|
59
|
+
fails = [NoUnitaryEffect(), HasApplyReturnsNotImplemented(), m * 2]
|
|
60
60
|
passes = [
|
|
61
61
|
HasUnitary(),
|
|
62
62
|
HasApplyReturnsNotImplementedButHasUnitary(),
|
|
63
63
|
HasApplyOutputInBuffer(),
|
|
64
64
|
HasApplyMutateInline(),
|
|
65
|
+
m,
|
|
65
66
|
]
|
|
66
67
|
|
|
67
68
|
def make_input():
|
|
@@ -19,7 +19,7 @@ from typing import Any, TypeVar
|
|
|
19
19
|
import numpy as np
|
|
20
20
|
from typing_extensions import Protocol
|
|
21
21
|
|
|
22
|
-
from cirq import qis
|
|
22
|
+
from cirq import linalg, qis
|
|
23
23
|
from cirq._doc import doc_private
|
|
24
24
|
from cirq.protocols import qid_shape_protocol
|
|
25
25
|
from cirq.protocols.apply_unitary_protocol import ApplyUnitaryArgs
|
|
@@ -112,6 +112,8 @@ def has_unitary(val: Any, *, allow_decompose: bool = True) -> bool:
|
|
|
112
112
|
|
|
113
113
|
def _strat_has_unitary_from_has_unitary(val: Any) -> bool | None:
|
|
114
114
|
"""Attempts to infer a value's unitary-ness via its _has_unitary_ method."""
|
|
115
|
+
if isinstance(val, np.ndarray):
|
|
116
|
+
return linalg.is_unitary(val)
|
|
115
117
|
if hasattr(val, '_has_unitary_'):
|
|
116
118
|
result = val._has_unitary_()
|
|
117
119
|
if result is NotImplemented:
|
|
@@ -61,10 +61,13 @@ def test_via_unitary() -> None:
|
|
|
61
61
|
def _unitary_(self):
|
|
62
62
|
return np.array([[1]])
|
|
63
63
|
|
|
64
|
+
m = np.diag([1, -1])
|
|
64
65
|
assert not cirq.has_unitary(No1())
|
|
65
66
|
assert not cirq.has_unitary(No2())
|
|
67
|
+
assert not cirq.has_unitary(m * 2)
|
|
66
68
|
assert cirq.has_unitary(Yes())
|
|
67
69
|
assert cirq.has_unitary(Yes(), allow_decompose=False)
|
|
70
|
+
assert cirq.has_unitary(m)
|
|
68
71
|
|
|
69
72
|
|
|
70
73
|
def test_via_apply_unitary() -> None:
|
cirq/protocols/kraus_protocol.py
CHANGED
|
@@ -148,9 +148,7 @@ def kraus(
|
|
|
148
148
|
mixture_getter = getattr(val, '_mixture_', None)
|
|
149
149
|
mixture_result = NotImplemented if mixture_getter is None else mixture_getter()
|
|
150
150
|
if mixture_result is not NotImplemented and mixture_result is not None:
|
|
151
|
-
return tuple(
|
|
152
|
-
np.sqrt(p) * (u if isinstance(u, np.ndarray) else unitary(u)) for p, u in mixture_result
|
|
153
|
-
)
|
|
151
|
+
return tuple(np.sqrt(p) * unitary(u) for p, u in mixture_result)
|
|
154
152
|
|
|
155
153
|
unitary_getter = getattr(val, '_unitary_', None)
|
|
156
154
|
unitary_result = NotImplemented if unitary_getter is None else unitary_getter()
|
|
@@ -94,7 +94,7 @@ def mixture(
|
|
|
94
94
|
mixture_getter = getattr(val, '_mixture_', None)
|
|
95
95
|
result = NotImplemented if mixture_getter is None else mixture_getter()
|
|
96
96
|
if result is not NotImplemented and result is not None:
|
|
97
|
-
return tuple((p,
|
|
97
|
+
return tuple((p, unitary(u)) for p, u in result)
|
|
98
98
|
|
|
99
99
|
unitary_getter = getattr(val, '_unitary_', None)
|
|
100
100
|
result = NotImplemented if unitary_getter is None else unitary_getter()
|
|
@@ -54,7 +54,7 @@ class HasQuditUnitary:
|
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
@pytest.mark.parametrize(
|
|
57
|
-
'val', (NoMethod(), ReturnsNotImplemented(), HasQuditUnitary(), 123,
|
|
57
|
+
'val', (NoMethod(), ReturnsNotImplemented(), HasQuditUnitary(), 123, object(), cirq)
|
|
58
58
|
)
|
|
59
59
|
def test_raises_no_pauli_expansion(val) -> None:
|
|
60
60
|
assert cirq.pauli_expansion(val, default=None) is None
|
|
@@ -20,6 +20,7 @@ from typing import Any, TypeVar
|
|
|
20
20
|
import numpy as np
|
|
21
21
|
from typing_extensions import Protocol
|
|
22
22
|
|
|
23
|
+
from cirq import linalg
|
|
23
24
|
from cirq._doc import doc_private
|
|
24
25
|
from cirq.protocols import qid_shape_protocol
|
|
25
26
|
from cirq.protocols.apply_unitary_protocol import apply_unitaries, ApplyUnitaryArgs
|
|
@@ -84,6 +85,7 @@ def unitary(
|
|
|
84
85
|
|
|
85
86
|
The matrix is determined by any one of the following techniques:
|
|
86
87
|
|
|
88
|
+
- If the value is a numpy array, it is returned directly.
|
|
87
89
|
- The value has a `_unitary_` method that returns something besides None or
|
|
88
90
|
NotImplemented. The matrix is whatever the method returned.
|
|
89
91
|
- The value has a `_decompose_` method that returns a list of operations,
|
|
@@ -110,7 +112,13 @@ def unitary(
|
|
|
110
112
|
Raises:
|
|
111
113
|
TypeError: `val` doesn't have a unitary effect and no default value was
|
|
112
114
|
specified.
|
|
115
|
+
ValueError: `val` is a numpy array that is not unitary.
|
|
113
116
|
"""
|
|
117
|
+
if isinstance(val, np.ndarray):
|
|
118
|
+
if not linalg.is_unitary(val):
|
|
119
|
+
raise ValueError("The provided numpy array is not unitary.")
|
|
120
|
+
return val
|
|
121
|
+
|
|
114
122
|
strats = [
|
|
115
123
|
_strat_unitary_from_unitary,
|
|
116
124
|
_strat_unitary_from_apply_unitary,
|
|
@@ -161,6 +161,15 @@ def test_unitary():
|
|
|
161
161
|
_ = cirq.unitary(ReturnsNotImplemented())
|
|
162
162
|
assert cirq.unitary(ReturnsMatrix()) is m1
|
|
163
163
|
|
|
164
|
+
# Test that numpy arrays are handled directly
|
|
165
|
+
test_matrix = np.array([[1, 0], [0, 1]])
|
|
166
|
+
assert cirq.unitary(test_matrix, NotImplemented) is test_matrix
|
|
167
|
+
|
|
168
|
+
# Test that non-unitary numpy arrays raise ValueError
|
|
169
|
+
non_unitary_matrix = np.array([[1, 1], [0, 1]])
|
|
170
|
+
with pytest.raises(ValueError, match="The provided numpy array is not unitary"):
|
|
171
|
+
_ = cirq.unitary(non_unitary_matrix)
|
|
172
|
+
|
|
164
173
|
assert cirq.unitary(NoMethod(), None) is None
|
|
165
174
|
assert cirq.unitary(ReturnsNotImplemented(), None) is None
|
|
166
175
|
assert cirq.unitary(ReturnsMatrix(), None) is m1
|
{cirq_core-1.6.0.dev20250617175947.dist-info → cirq_core-1.6.0.dev20250618173543.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.dev20250618173543
|
|
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.dev20250617175947.dist-info → cirq_core-1.6.0.dev20250618173543.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=u8UjjcWIaPdjDo9p-_CSqJH-_FuA8zj2QQlCSKcqpP4,1206
|
|
8
|
+
cirq/_version_test.py,sha256=l1RlWRlz5ss_-IrT-8jZH71heDWt0ecsUQJQpo3E79E,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
|
|
@@ -260,8 +260,8 @@ cirq/linalg/diagonalize.py,sha256=3PpGmlI7CCkQS3JKr0AkgdHOZedXLniZkxmUtpCNQPk,10
|
|
|
260
260
|
cirq/linalg/diagonalize_test.py,sha256=c6-ksL2PDZ5hqr2ib2iS0uEnJuCHSv16cuiJK4PLjok,9161
|
|
261
261
|
cirq/linalg/operator_spaces.py,sha256=jUU-OYL8Lnn58kbhLskDyhkBeXZXPXVmR-hcIkq60JQ,4132
|
|
262
262
|
cirq/linalg/operator_spaces_test.py,sha256=9puH8uqMhWVF4QvJImX0WvcxsxBMvvroUZUSNNvaTDQ,10729
|
|
263
|
-
cirq/linalg/predicates.py,sha256=
|
|
264
|
-
cirq/linalg/predicates_test.py,sha256=
|
|
263
|
+
cirq/linalg/predicates.py,sha256=z4f7eHM7rQIYucpjlRoM-ZoY6ObxQFTuD9XruaYK6kI,12164
|
|
264
|
+
cirq/linalg/predicates_test.py,sha256=ZEIqb3fPWFsAaY49HUBRwN3oGShM0k0YHq22WX149Sg,21683
|
|
265
265
|
cirq/linalg/tolerance.py,sha256=4TZ_BjldOhPuP2CwYvMdzHCc9Lzfwi9ZkndSKObyyBg,1893
|
|
266
266
|
cirq/linalg/tolerance_test.py,sha256=uAqJk--Rhxr9XXLh3dAvK_BDcbJUccEAFIFdLHiMEHU,2423
|
|
267
267
|
cirq/linalg/transformations.py,sha256=YiQdLe2BNHupPxV9Gxt3VRSWKTRmqt4yObV0Wwij2Dw,32526
|
|
@@ -387,10 +387,10 @@ cirq/protocols/act_on_protocol.py,sha256=YE92pdK_TAoeCNiAiKjkz8XwQCGbFcjo1Wst1e6
|
|
|
387
387
|
cirq/protocols/act_on_protocol_test.py,sha256=X7GNM9mGPCpWukW9_7kF88g12RdqsWhcniIw5LW1tC4,3215
|
|
388
388
|
cirq/protocols/apply_channel_protocol.py,sha256=-FkwzW2FKDY713lGOTIJ0yMIPKp3ZzWqLBl_yhmOGdk,15615
|
|
389
389
|
cirq/protocols/apply_channel_protocol_test.py,sha256=THW95ZzW1y8UtBIuzVJ872wEOZqIcFdPbXocBUzAiWw,10618
|
|
390
|
-
cirq/protocols/apply_mixture_protocol.py,sha256=
|
|
390
|
+
cirq/protocols/apply_mixture_protocol.py,sha256=a5St6DR5kIcXqDxXblBPYFuoSeAT8N1roJguTidGMyM,15321
|
|
391
391
|
cirq/protocols/apply_mixture_protocol_test.py,sha256=_ftefdRBYj73OC_m3179VX8U1-xDesAOHu94tx3d-gU,11142
|
|
392
|
-
cirq/protocols/apply_unitary_protocol.py,sha256=
|
|
393
|
-
cirq/protocols/apply_unitary_protocol_test.py,sha256=
|
|
392
|
+
cirq/protocols/apply_unitary_protocol.py,sha256=NBq_RqzSAlqHaNi90MKN9uncHUyKpgQ2t9Wa8c-rHdA,29899
|
|
393
|
+
cirq/protocols/apply_unitary_protocol_test.py,sha256=nuGgoN3LYaPUwPKmLQK3LhUqNAJVIQmda5PZN0ocIUg,26190
|
|
394
394
|
cirq/protocols/approximate_equality_protocol.py,sha256=DZ4eNCSwl_MI1LIo6tosFFqw0Gl9snM51C2vR5X1mdA,6293
|
|
395
395
|
cirq/protocols/approximate_equality_protocol_test.py,sha256=qVw2TzKRTZC7fDg6DK_fVEvJzJGmlzBi6JidlJrR_Fc,9212
|
|
396
396
|
cirq/protocols/circuit_diagram_info_protocol.py,sha256=jttsQgG7DDYJDcVC3kV-jZxrkJrE5HKrZB8VnyVsziE,17164
|
|
@@ -405,23 +405,23 @@ cirq/protocols/equal_up_to_global_phase_protocol.py,sha256=y-GPOImHgdjVqXF-qE3SU
|
|
|
405
405
|
cirq/protocols/equal_up_to_global_phase_protocol_test.py,sha256=EDfWnCuYAVfcvBXHYoZ0lDukNEGG2c53vzP7s8jHLKA,6050
|
|
406
406
|
cirq/protocols/has_stabilizer_effect_protocol.py,sha256=T_CVVpvckp3ZTsWi089mPqbmwOPLlF6GalEKrVK7Hvs,4309
|
|
407
407
|
cirq/protocols/has_stabilizer_effect_protocol_test.py,sha256=T6-vtMO-eBXIMRur1nlmAzi4ty4-F1BP59ZRWR_d0HQ,3955
|
|
408
|
-
cirq/protocols/has_unitary_protocol.py,sha256=
|
|
409
|
-
cirq/protocols/has_unitary_protocol_test.py,sha256=
|
|
408
|
+
cirq/protocols/has_unitary_protocol.py,sha256=7dSbLcY8ojqf1Svi8bekf057fNkKl30hFVZiaTJHCZ0,5468
|
|
409
|
+
cirq/protocols/has_unitary_protocol_test.py,sha256=FifK9oCMMyXHsZJNsDNutbKvty-p3jfcwVZzxyWoZ74,5956
|
|
410
410
|
cirq/protocols/hash_from_pickle_test.py,sha256=ghLwtXySQgya5flt4rSNiuK4nqRfiFlZh7d9o7nmeXc,4642
|
|
411
411
|
cirq/protocols/inverse_protocol.py,sha256=tHaY8-dfd0SD59v3DZ_zpwz7lwFrraPExEnIgn1T0RI,3965
|
|
412
412
|
cirq/protocols/inverse_protocol_test.py,sha256=5RoZfSRzBvpGpLdg1XKYdB6qy-GkDvZsATUvxdFrLJ0,2067
|
|
413
413
|
cirq/protocols/json_serialization.py,sha256=z7Yu2vsNabRkdeYyIuNCoXATHkrOGreTRShNyN0Fjuc,24520
|
|
414
414
|
cirq/protocols/json_serialization_test.py,sha256=xDRylmud660G3A-mSv8FLZvRiG59mBsY6qK-j3gwvP4,28109
|
|
415
|
-
cirq/protocols/kraus_protocol.py,sha256=
|
|
415
|
+
cirq/protocols/kraus_protocol.py,sha256=ptiRkEnDgBnEdxobs6wZdZsOAhVzF6bhhSHuNqLKFJo,9250
|
|
416
416
|
cirq/protocols/kraus_protocol_test.py,sha256=51eJ3r3Kx10rG-1hPjcfcODeUO3PFQmwU9ATMnhTWDw,5495
|
|
417
417
|
cirq/protocols/measurement_key_protocol.py,sha256=JU7XbZfR7o6Wcv5qRJisp3ZAWwW9Fx7OHtxNMrWtZoQ,13351
|
|
418
418
|
cirq/protocols/measurement_key_protocol_test.py,sha256=PqSU9uB4t2yvPz9hZBLby2mZnZo-DOLlx3HIicyPeLo,8768
|
|
419
|
-
cirq/protocols/mixture_protocol.py,sha256=
|
|
420
|
-
cirq/protocols/mixture_protocol_test.py,sha256=
|
|
419
|
+
cirq/protocols/mixture_protocol.py,sha256=A8J-kkwUqiQphw6d3DK3QZ-lP31DTWv475ZzdeqYA0w,6428
|
|
420
|
+
cirq/protocols/mixture_protocol_test.py,sha256=Sa0XzglMnVZRJir0EKTTiNJ2yBGVSrGvD8fDoKfYFQg,3858
|
|
421
421
|
cirq/protocols/mul_protocol.py,sha256=Jv7Qq5SejO0F6kpnFcTBML3rjZd-LTmrUJJ_D7PRpR4,2749
|
|
422
422
|
cirq/protocols/mul_protocol_test.py,sha256=J2jvKPr4Doy9Fx7RNCXbjvTkyBu1fcsxfRH-I6OzE34,2172
|
|
423
423
|
cirq/protocols/pauli_expansion_protocol.py,sha256=haLt7_FJUt-jK0im4R25Gku6Zhiyu6Zt-CeB_WonXK4,3768
|
|
424
|
-
cirq/protocols/pauli_expansion_protocol_test.py,sha256=
|
|
424
|
+
cirq/protocols/pauli_expansion_protocol_test.py,sha256=TATNum73ccpG_SbK6FWxcD7rj5kw92mKpzzK1oNZkk8,2769
|
|
425
425
|
cirq/protocols/phase_protocol.py,sha256=e_xsYDgs4K5poWcTBipziiz3Asuc7tGiVSBgD__Mooo,3648
|
|
426
426
|
cirq/protocols/phase_protocol_test.py,sha256=brLHtnnAhB28ErwgdkVDZlXTFsF5M7vSyNz-lxe8D0Y,1983
|
|
427
427
|
cirq/protocols/pow_protocol.py,sha256=q_Y3MMdkOXiB1D6V34lQGNf8vlvc5btZfDeO8M0jZd0,3151
|
|
@@ -434,8 +434,8 @@ cirq/protocols/resolve_parameters.py,sha256=KAMkSoctbyl_S775T567_mL0Fb46upElSEzk
|
|
|
434
434
|
cirq/protocols/resolve_parameters_test.py,sha256=2R2T2p4NkbD4IV2_4i8WkvSHu3OqjXo-Bf856Rwb-3w,4933
|
|
435
435
|
cirq/protocols/trace_distance_bound.py,sha256=aE8fopaFTFS1baWTgrH-tbdSUz0btgOrxZAWg82LgoM,4179
|
|
436
436
|
cirq/protocols/trace_distance_bound_test.py,sha256=0bI9uYttJj5eayM05kShPh9qkxeKG1egcZ9fXJPZWNU,1980
|
|
437
|
-
cirq/protocols/unitary_protocol.py,sha256=
|
|
438
|
-
cirq/protocols/unitary_protocol_test.py,sha256=
|
|
437
|
+
cirq/protocols/unitary_protocol.py,sha256=DZx3cIURlCYzxNj49mfAqDjV7IDnf-8X_vOBYjq2TRA,8462
|
|
438
|
+
cirq/protocols/unitary_protocol_test.py,sha256=ZiU-74fCQ5CJ_KvGOBDtIu7A8K5f9lh1FZerx291Gek,10619
|
|
439
439
|
cirq/protocols/json_test_data/AmplitudeDampingChannel.json,sha256=x3szAuG8j_1uAK5ghFapaB410g0twQ83aQNsvItXVdo,60
|
|
440
440
|
cirq/protocols/json_test_data/AmplitudeDampingChannel.repr,sha256=n_tJNGHkWlxYunXGMFtFO6-RuIv0y8Ki0YqE8w3hOl0,30
|
|
441
441
|
cirq/protocols/json_test_data/AnyIntegerPowerGateFamily.json,sha256=Qf8FTwvPV7en7WcPbhP1kvjLUUPYgbICoPFqT6w86hw,68
|
|
@@ -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.dev20250618173543.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
1224
|
+
cirq_core-1.6.0.dev20250618173543.dist-info/METADATA,sha256=vboPt1qIiBB7xyV4-5_-4o-A11n3pYpOrrfK_q2GAVY,4857
|
|
1225
|
+
cirq_core-1.6.0.dev20250618173543.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
1226
|
+
cirq_core-1.6.0.dev20250618173543.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
|
|
1227
|
+
cirq_core-1.6.0.dev20250618173543.dist-info/RECORD,,
|
{cirq_core-1.6.0.dev20250617175947.dist-info → cirq_core-1.6.0.dev20250618173543.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|