cirq-core 1.5.0.dev20250109220553__py3-none-any.whl → 1.5.0.dev20250110193226__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/_compat.py +6 -0
- cirq/_version.py +1 -1
- cirq/_version_test.py +1 -1
- cirq/json_resolver_cache.py +6 -0
- cirq/ops/classically_controlled_operation_test.py +62 -0
- cirq/protocols/hash_from_pickle_test.py +6 -0
- cirq/protocols/json_serialization.py +6 -0
- cirq/protocols/json_test_data/SympyCondition.json +60 -15
- cirq/protocols/json_test_data/SympyCondition.repr +4 -1
- cirq/protocols/json_test_data/sympy.And.json +13 -0
- cirq/protocols/json_test_data/sympy.And.repr +1 -0
- cirq/protocols/json_test_data/sympy.Indexed.json +18 -0
- cirq/protocols/json_test_data/sympy.Indexed.repr +1 -0
- cirq/protocols/json_test_data/sympy.IndexedBase.json +9 -0
- cirq/protocols/json_test_data/sympy.IndexedBase.repr +1 -0
- cirq/protocols/json_test_data/sympy.Not.json +9 -0
- cirq/protocols/json_test_data/sympy.Not.repr +1 -0
- cirq/protocols/json_test_data/sympy.Or.json +13 -0
- cirq/protocols/json_test_data/sympy.Or.repr +1 -0
- cirq/protocols/json_test_data/sympy.Xor.json +13 -0
- cirq/protocols/json_test_data/sympy.Xor.repr +1 -0
- cirq/value/condition.py +23 -3
- cirq/value/condition_test.py +46 -0
- {cirq_core-1.5.0.dev20250109220553.dist-info → cirq_core-1.5.0.dev20250110193226.dist-info}/METADATA +1 -1
- {cirq_core-1.5.0.dev20250109220553.dist-info → cirq_core-1.5.0.dev20250110193226.dist-info}/RECORD +28 -16
- {cirq_core-1.5.0.dev20250109220553.dist-info → cirq_core-1.5.0.dev20250110193226.dist-info}/LICENSE +0 -0
- {cirq_core-1.5.0.dev20250109220553.dist-info → cirq_core-1.5.0.dev20250110193226.dist-info}/WHEEL +0 -0
- {cirq_core-1.5.0.dev20250109220553.dist-info → cirq_core-1.5.0.dev20250110193226.dist-info}/top_level.txt +0 -0
cirq/_compat.py
CHANGED
cirq/_version.py
CHANGED
cirq/_version_test.py
CHANGED
cirq/json_resolver_cache.py
CHANGED
|
@@ -273,6 +273,12 @@ def _class_resolver_dictionary() -> Dict[str, ObjectFactory]:
|
|
|
273
273
|
'sympy.StrictLessThan': lambda args: sympy.StrictLessThan(*args),
|
|
274
274
|
'sympy.Equality': lambda args: sympy.Equality(*args),
|
|
275
275
|
'sympy.Unequality': lambda args: sympy.Unequality(*args),
|
|
276
|
+
'sympy.And': lambda args: sympy.And(*args),
|
|
277
|
+
'sympy.Or': lambda args: sympy.Or(*args),
|
|
278
|
+
'sympy.Not': lambda args: sympy.Not(*args),
|
|
279
|
+
'sympy.Xor': lambda args: sympy.Xor(*args),
|
|
280
|
+
'sympy.Indexed': lambda args: sympy.Indexed(*args),
|
|
281
|
+
'sympy.IndexedBase': lambda args: sympy.IndexedBase(*args),
|
|
276
282
|
'sympy.Float': lambda approx: sympy.Float(approx),
|
|
277
283
|
'sympy.Integer': sympy.Integer,
|
|
278
284
|
'sympy.Rational': sympy.Rational,
|
|
@@ -1127,3 +1127,65 @@ m1: ═════@════^═══════
|
|
|
1127
1127
|
└──┘
|
|
1128
1128
|
""",
|
|
1129
1129
|
)
|
|
1130
|
+
|
|
1131
|
+
|
|
1132
|
+
def test_sympy_indexed_condition_circuit():
|
|
1133
|
+
a = sympy.IndexedBase('a')
|
|
1134
|
+
# XOR the 2nd and 3rd bits of the measurement (big-endian)
|
|
1135
|
+
cond = cirq.SympyCondition(sympy.Xor(a[1], a[2]))
|
|
1136
|
+
q0, q1, q2, q3 = cirq.LineQubit.range(4)
|
|
1137
|
+
sim = cirq.Simulator()
|
|
1138
|
+
circuit = cirq.Circuit(
|
|
1139
|
+
cirq.measure(q0, q1, q2, key='a'),
|
|
1140
|
+
cirq.X(q3).with_classical_controls(cond),
|
|
1141
|
+
cirq.measure(q3, key='b'),
|
|
1142
|
+
)
|
|
1143
|
+
cirq.testing.assert_has_diagram(
|
|
1144
|
+
circuit,
|
|
1145
|
+
"""
|
|
1146
|
+
0: ───M──────────────────────────────────────────
|
|
1147
|
+
║
|
|
1148
|
+
1: ───M──────────────────────────────────────────
|
|
1149
|
+
║
|
|
1150
|
+
2: ───M──────────────────────────────────────────
|
|
1151
|
+
║
|
|
1152
|
+
3: ───╫───X(conditions=[a[1] ^ a[2]])───M('b')───
|
|
1153
|
+
║ ║
|
|
1154
|
+
a: ═══@═══^══════════════════════════════════════
|
|
1155
|
+
""",
|
|
1156
|
+
)
|
|
1157
|
+
result = sim.sample(circuit)
|
|
1158
|
+
assert result['a'][0] == 0b000
|
|
1159
|
+
assert result['b'][0] == 0
|
|
1160
|
+
circuit.insert(0, cirq.X(q2))
|
|
1161
|
+
result = sim.sample(circuit)
|
|
1162
|
+
assert result['a'][0] == 0b001
|
|
1163
|
+
assert result['b'][0] == 1
|
|
1164
|
+
circuit.insert(0, cirq.X(q1))
|
|
1165
|
+
circuit.insert(0, cirq.X(q2))
|
|
1166
|
+
result = sim.sample(circuit)
|
|
1167
|
+
assert result['a'][0] == 0b010
|
|
1168
|
+
assert result['b'][0] == 1
|
|
1169
|
+
circuit.insert(0, cirq.X(q2))
|
|
1170
|
+
result = sim.sample(circuit)
|
|
1171
|
+
assert result['a'][0] == 0b011
|
|
1172
|
+
assert result['b'][0] == 0
|
|
1173
|
+
circuit.insert(0, cirq.X(q0))
|
|
1174
|
+
circuit.insert(0, cirq.X(q1))
|
|
1175
|
+
circuit.insert(0, cirq.X(q2))
|
|
1176
|
+
result = sim.sample(circuit)
|
|
1177
|
+
assert result['a'][0] == 0b100
|
|
1178
|
+
assert result['b'][0] == 0
|
|
1179
|
+
circuit.insert(0, cirq.X(q2))
|
|
1180
|
+
result = sim.sample(circuit)
|
|
1181
|
+
assert result['a'][0] == 0b101
|
|
1182
|
+
assert result['b'][0] == 1
|
|
1183
|
+
circuit.insert(0, cirq.X(q1))
|
|
1184
|
+
circuit.insert(0, cirq.X(q2))
|
|
1185
|
+
result = sim.sample(circuit)
|
|
1186
|
+
assert result['a'][0] == 0b110
|
|
1187
|
+
assert result['b'][0] == 1
|
|
1188
|
+
circuit.insert(0, cirq.X(q2))
|
|
1189
|
+
result = sim.sample(circuit)
|
|
1190
|
+
assert result['a'][0] == 0b111
|
|
1191
|
+
assert result['b'][0] == 0
|
|
@@ -43,6 +43,12 @@ _EXCLUDE_JSON_FILES = (
|
|
|
43
43
|
"cirq/protocols/json_test_data/sympy.StrictLessThan.json",
|
|
44
44
|
"cirq/protocols/json_test_data/sympy.Symbol.json",
|
|
45
45
|
"cirq/protocols/json_test_data/sympy.Unequality.json",
|
|
46
|
+
"cirq/protocols/json_test_data/sympy.And.json",
|
|
47
|
+
"cirq/protocols/json_test_data/sympy.Not.json",
|
|
48
|
+
"cirq/protocols/json_test_data/sympy.Or.json",
|
|
49
|
+
"cirq/protocols/json_test_data/sympy.Xor.json",
|
|
50
|
+
"cirq/protocols/json_test_data/sympy.Indexed.json",
|
|
51
|
+
"cirq/protocols/json_test_data/sympy.IndexedBase.json",
|
|
46
52
|
"cirq/protocols/json_test_data/sympy.pi.json",
|
|
47
53
|
# RigettiQCSAspenDevice does not pickle
|
|
48
54
|
"cirq_rigetti/json_test_data/RigettiQCSAspenDevice.json",
|
|
@@ -255,6 +255,12 @@ class CirqEncoder(json.JSONEncoder):
|
|
|
255
255
|
sympy.StrictLessThan,
|
|
256
256
|
sympy.Equality,
|
|
257
257
|
sympy.Unequality,
|
|
258
|
+
sympy.And,
|
|
259
|
+
sympy.Or,
|
|
260
|
+
sympy.Not,
|
|
261
|
+
sympy.Xor,
|
|
262
|
+
sympy.Indexed,
|
|
263
|
+
sympy.IndexedBase,
|
|
258
264
|
),
|
|
259
265
|
):
|
|
260
266
|
return {'cirq_type': f'sympy.{o.__class__.__name__}', 'args': o.args}
|
|
@@ -1,17 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
"cirq_type": "SympyCondition",
|
|
3
|
-
"expr":
|
|
1
|
+
[
|
|
4
2
|
{
|
|
5
|
-
"cirq_type": "
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
3
|
+
"cirq_type": "SympyCondition",
|
|
4
|
+
"expr": {
|
|
5
|
+
"cirq_type": "sympy.GreaterThan",
|
|
6
|
+
"args": [
|
|
7
|
+
{
|
|
8
|
+
"cirq_type": "sympy.Symbol",
|
|
9
|
+
"name": "a"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"cirq_type": "sympy.Symbol",
|
|
13
|
+
"name": "b"
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"cirq_type": "SympyCondition",
|
|
20
|
+
"expr": {
|
|
21
|
+
"cirq_type": "sympy.Xor",
|
|
22
|
+
"args": [
|
|
23
|
+
{
|
|
24
|
+
"cirq_type": "sympy.Indexed",
|
|
25
|
+
"args": [
|
|
26
|
+
{
|
|
27
|
+
"cirq_type": "sympy.IndexedBase",
|
|
28
|
+
"args": [
|
|
29
|
+
{
|
|
30
|
+
"cirq_type": "sympy.Symbol",
|
|
31
|
+
"name": "a"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"cirq_type": "sympy.Integer",
|
|
37
|
+
"i": 0
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"cirq_type": "sympy.Indexed",
|
|
43
|
+
"args": [
|
|
44
|
+
{
|
|
45
|
+
"cirq_type": "sympy.IndexedBase",
|
|
46
|
+
"args": [
|
|
47
|
+
{
|
|
48
|
+
"cirq_type": "sympy.Symbol",
|
|
49
|
+
"name": "a"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"cirq_type": "sympy.Integer",
|
|
55
|
+
"i": 1
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
}
|
|
16
61
|
}
|
|
17
|
-
|
|
62
|
+
]
|
|
@@ -1 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
[
|
|
2
|
+
cirq.SympyCondition(sympy.GreaterThan(sympy.Symbol('a'), sympy.Symbol('b'))),
|
|
3
|
+
cirq.SympyCondition(sympy.Xor(sympy.Indexed(sympy.IndexedBase(sympy.Symbol('a')), sympy.Integer(0)), sympy.Indexed(sympy.IndexedBase(sympy.Symbol('a')), sympy.Integer(1))))
|
|
4
|
+
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
sympy.And(sympy.Symbol('s'), sympy.Symbol('t'))
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
sympy.Indexed(sympy.IndexedBase(sympy.Symbol('s')),sympy.Integer(1))
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
sympy.IndexedBase(sympy.Symbol('s'))
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
sympy.Not(sympy.Symbol('s'))
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
sympy.Or(sympy.Symbol('s'), sympy.Symbol('t'))
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
sympy.Xor(sympy.Symbol('s'), sympy.Symbol('t'))
|
cirq/value/condition.py
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
import abc
|
|
16
16
|
import dataclasses
|
|
17
|
-
from typing import
|
|
17
|
+
from typing import Any, Dict, FrozenSet, Mapping, Optional, Tuple, TYPE_CHECKING
|
|
18
18
|
|
|
19
19
|
import sympy
|
|
20
20
|
|
|
@@ -142,6 +142,12 @@ class SympyCondition(Condition):
|
|
|
142
142
|
This condition resolves to True iff the sympy expression resolves to a
|
|
143
143
|
truthy value (i.e. `bool(x) == True`) when the measurement keys are
|
|
144
144
|
substituted in as the free variables.
|
|
145
|
+
|
|
146
|
+
`sympy.IndexedBase` can be used for bitwise conditions. For example, the
|
|
147
|
+
following will create a condition that is controlled by the XOR of the
|
|
148
|
+
first two bits (big-endian) of measurement 'a'.
|
|
149
|
+
>>> a = sympy.IndexedBase('a')
|
|
150
|
+
>>> cond = cirq.SympyCondition(sympy.Xor(a[0], a[1]))
|
|
145
151
|
"""
|
|
146
152
|
|
|
147
153
|
expr: sympy.Basic
|
|
@@ -151,6 +157,9 @@ class SympyCondition(Condition):
|
|
|
151
157
|
return tuple(
|
|
152
158
|
measurement_key.MeasurementKey.parse_serialized(symbol.name)
|
|
153
159
|
for symbol in self.expr.free_symbols
|
|
160
|
+
if isinstance(symbol, sympy.Symbol)
|
|
161
|
+
# For bitwise ops, both Symbol ('a') and Indexed ('a[0]') are returned. We only want to
|
|
162
|
+
# keep the former here.
|
|
154
163
|
)
|
|
155
164
|
|
|
156
165
|
def replace_key(self, current: 'cirq.MeasurementKey', replacement: 'cirq.MeasurementKey'):
|
|
@@ -167,8 +176,19 @@ class SympyCondition(Condition):
|
|
|
167
176
|
if missing:
|
|
168
177
|
raise ValueError(f'Measurement keys {missing} missing when testing classical control')
|
|
169
178
|
|
|
170
|
-
replacements
|
|
171
|
-
|
|
179
|
+
replacements: Dict[str, Any] = {}
|
|
180
|
+
for symbol in self.expr.free_symbols:
|
|
181
|
+
if isinstance(symbol, sympy.Symbol):
|
|
182
|
+
name = symbol.name
|
|
183
|
+
key = measurement_key.MeasurementKey.parse_serialized(name)
|
|
184
|
+
replacements[str(key)] = classical_data.get_int(key)
|
|
185
|
+
for symbol in self.expr.free_symbols:
|
|
186
|
+
if isinstance(symbol, sympy.Indexed):
|
|
187
|
+
name = symbol.base.name
|
|
188
|
+
key = measurement_key.MeasurementKey.parse_serialized(name)
|
|
189
|
+
replacements[str(key)] = tuple(classical_data.get_digits(key))
|
|
190
|
+
value = self.expr.subs(replacements)
|
|
191
|
+
return bool(value)
|
|
172
192
|
|
|
173
193
|
def _json_dict_(self):
|
|
174
194
|
return json_serialization.dataclass_json_dict(self)
|
cirq/value/condition_test.py
CHANGED
|
@@ -140,6 +140,52 @@ def test_sympy_condition_resolve():
|
|
|
140
140
|
_ = resolve({'0:b': [[1]]})
|
|
141
141
|
|
|
142
142
|
|
|
143
|
+
def test_sympy_indexed_condition():
|
|
144
|
+
a = sympy.IndexedBase('a')
|
|
145
|
+
cond = cirq.SympyCondition(sympy.Xor(a[0], a[1]))
|
|
146
|
+
assert cond.keys == (cirq.MeasurementKey('a'),)
|
|
147
|
+
assert str(cond) == 'a[0] ^ a[1]'
|
|
148
|
+
|
|
149
|
+
def resolve(records):
|
|
150
|
+
classical_data = cirq.ClassicalDataDictionaryStore(_records=records)
|
|
151
|
+
return cond.resolve(classical_data)
|
|
152
|
+
|
|
153
|
+
assert not resolve({'a': [(0, 0)]})
|
|
154
|
+
assert resolve({'a': [(1, 0)]})
|
|
155
|
+
assert resolve({'a': [(0, 1)]})
|
|
156
|
+
assert not resolve({'a': [(1, 1)]})
|
|
157
|
+
assert resolve({'a': [(0, 1, 0)]})
|
|
158
|
+
assert resolve({'a': [(0, 1, 1)]})
|
|
159
|
+
assert not resolve({'a': [(1, 1, 0)]})
|
|
160
|
+
assert not resolve({'a': [(1, 1, 1)]})
|
|
161
|
+
with pytest.raises(IndexError):
|
|
162
|
+
assert resolve({'a': [()]})
|
|
163
|
+
with pytest.raises(IndexError):
|
|
164
|
+
assert resolve({'a': [(0,)]})
|
|
165
|
+
with pytest.raises(IndexError):
|
|
166
|
+
assert resolve({'a': [(1,)]})
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
def test_sympy_indexed_condition_qudits():
|
|
170
|
+
a = sympy.IndexedBase('a')
|
|
171
|
+
cond = cirq.SympyCondition(sympy.And(a[1] >= 2, a[2] <= 3))
|
|
172
|
+
assert cond.keys == (cirq.MeasurementKey('a'),)
|
|
173
|
+
assert str(cond) == '(a[1] >= 2) & (a[2] <= 3)'
|
|
174
|
+
|
|
175
|
+
def resolve(records):
|
|
176
|
+
classical_data = cirq.ClassicalDataDictionaryStore(_records=records)
|
|
177
|
+
return cond.resolve(classical_data)
|
|
178
|
+
|
|
179
|
+
assert not resolve({'a': [(0, 0, 0)]})
|
|
180
|
+
assert not resolve({'a': [(0, 1, 0)]})
|
|
181
|
+
assert resolve({'a': [(0, 2, 0)]})
|
|
182
|
+
assert resolve({'a': [(0, 3, 0)]})
|
|
183
|
+
assert not resolve({'a': [(0, 0, 4)]})
|
|
184
|
+
assert not resolve({'a': [(0, 1, 4)]})
|
|
185
|
+
assert not resolve({'a': [(0, 2, 4)]})
|
|
186
|
+
assert not resolve({'a': [(0, 3, 4)]})
|
|
187
|
+
|
|
188
|
+
|
|
143
189
|
def test_sympy_condition_qasm():
|
|
144
190
|
# Measurements get prepended with "m_", so the condition needs to be too.
|
|
145
191
|
assert cirq.SympyCondition(sympy.Eq(sympy.Symbol('a'), 2)).qasm == 'm_a==2'
|
{cirq_core-1.5.0.dev20250109220553.dist-info → cirq_core-1.5.0.dev20250110193226.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.dev20250110193226
|
|
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.dev20250109220553.dist-info → cirq_core-1.5.0.dev20250110193226.dist-info}/RECORD
RENAMED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
cirq/__init__.py,sha256=Qi4qkUVdT7je-13VrMLdVVcF1RPHI3nR8oTUs90l9OI,28084
|
|
2
|
-
cirq/_compat.py,sha256=
|
|
2
|
+
cirq/_compat.py,sha256=_DknO27XngcjEidNApRsCzLUWDS4QmDk9M12BaqP5Is,29531
|
|
3
3
|
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=aLivJ2QQroXAAGa1f9uYsRnHO0W15r17VfAOrtBamBw,1206
|
|
8
|
+
cirq/_version_test.py,sha256=tWvnH5g25T2NqkMUHa0oIpnhflLMSSXug4Bz-TrW0WU,147
|
|
9
9
|
cirq/conftest.py,sha256=X7yLFL8GLhg2CjPw0hp5e_dGASfvHx1-QT03aUbhKJw,1168
|
|
10
|
-
cirq/json_resolver_cache.py,sha256=
|
|
10
|
+
cirq/json_resolver_cache.py,sha256=5fPH07VyuACPlPo8ifHTAePrasf-pKwQ12Wf-Nz96Uw,13636
|
|
11
11
|
cirq/py.typed,sha256=VFSlmh_lNwnaXzwY-ZuW-C2Ws5PkuDoVgBdNCs0jXJE,63
|
|
12
12
|
cirq/circuits/__init__.py,sha256=HKunqRpZoDmjy1IiK9Cn84MTGT84_PMeQ5VDCPafcWk,1335
|
|
13
13
|
cirq/circuits/_block_diagram_drawer.py,sha256=06ceNV01cMx4irIGYnztfLt_HDNhK3AwfsiNh686hjU,9510
|
|
@@ -269,7 +269,7 @@ cirq/ops/arithmetic_operation_test.py,sha256=axy8xy9IvDb-ATUV-LE1HNWRqCEz06VyZWV
|
|
|
269
269
|
cirq/ops/boolean_hamiltonian.py,sha256=li003lNq6zS8pNPTobqzfzYJvyvaIpCVo3wkliI6Hzk,14930
|
|
270
270
|
cirq/ops/boolean_hamiltonian_test.py,sha256=1ey5yfYZPKZDsfM3jpCPAOpbPs_y8i4K_WvDK2d5_4Y,8518
|
|
271
271
|
cirq/ops/classically_controlled_operation.py,sha256=qTOsbGRZFbQIaBj9iee31V_V8oMLqWIJjgFomy3kg4A,9104
|
|
272
|
-
cirq/ops/classically_controlled_operation_test.py,sha256=
|
|
272
|
+
cirq/ops/classically_controlled_operation_test.py,sha256=nIYyXfNH4E2IibZSLk6QDVHpfJQbuI_iWwirCH8rhi8,50209
|
|
273
273
|
cirq/ops/clifford_gate.py,sha256=qAKS0wqqoHljOF63treyR95I6H0yWFZBiHQoM4sLgSc,39350
|
|
274
274
|
cirq/ops/clifford_gate_test.py,sha256=NF_if1X8LCMA9hy0vBO7lxvVPdumlvMMnI2XRQ-RLpk,37472
|
|
275
275
|
cirq/ops/common_channels.py,sha256=uqgocTUhtuJ4VZI_9_3L34gBRTf1A10mByhZY4Q1fB8,38283
|
|
@@ -400,10 +400,10 @@ cirq/protocols/has_stabilizer_effect_protocol.py,sha256=XH6Lv9SGuYhuuSB0mi5v8Eg5
|
|
|
400
400
|
cirq/protocols/has_stabilizer_effect_protocol_test.py,sha256=0ia7ehyGpmscjRP448dBANZKwnlbqSODdPUYRUhDEN0,3879
|
|
401
401
|
cirq/protocols/has_unitary_protocol.py,sha256=inj17qr8Pz2Zofj0Lsp2o7TWlfmdU1TybtRjs1TWVow,5372
|
|
402
402
|
cirq/protocols/has_unitary_protocol_test.py,sha256=IjmJ3dqvteFUUO4FLwCTokgUvYy8H2HJjLmTDzt2__Q,5610
|
|
403
|
-
cirq/protocols/hash_from_pickle_test.py,sha256=
|
|
403
|
+
cirq/protocols/hash_from_pickle_test.py,sha256=rcY7nFo17Vo7ZEzvyW2bSIuPIoSq3hB6tpN1EjC4dNs,4384
|
|
404
404
|
cirq/protocols/inverse_protocol.py,sha256=CEqtGRRj86WQyyALonRXxQrNq-fENOs_Zqrlr_BVau8,4115
|
|
405
405
|
cirq/protocols/inverse_protocol_test.py,sha256=pqqIU4_G4Npc9Z-SeoM9eCB2T5JRTeI02NCXhP0UtaI,2017
|
|
406
|
-
cirq/protocols/json_serialization.py,sha256=
|
|
406
|
+
cirq/protocols/json_serialization.py,sha256=zwNSm0nHBRJp5NBwOksJ3gkBVzl87Nw6ZC5b-OqvxGg,24517
|
|
407
407
|
cirq/protocols/json_serialization_test.py,sha256=kOM7-DWVy0jy7SBx-RgNNiExm-Ot4wbYm0JKtl9uF0w,27737
|
|
408
408
|
cirq/protocols/kraus_protocol.py,sha256=8jed4J2VhyB4NNeZd04Vk5UhCDifuOK-JVdWJyNYKzw,9140
|
|
409
409
|
cirq/protocols/kraus_protocol_test.py,sha256=QpPwkk7XBiGKNdrOcjXqtvhESVbUzujnUPz47uUNyqc,5401
|
|
@@ -748,8 +748,8 @@ cirq/protocols/json_test_data/SwapPowGate.json,sha256=I1ZVxusP8SzxwW2n3Z1XjIugux
|
|
|
748
748
|
cirq/protocols/json_test_data/SwapPowGate.repr,sha256=Zr6oWijotmJVMeywjUikY0dPwXUZnfBJ6UMDqZIEwLI,29
|
|
749
749
|
cirq/protocols/json_test_data/SymmetricalQidPair.json_inward,sha256=RfD0Jy1OE8GRKrMHYLy5ADQsYZ2n_WUFKPy3YMEfihw,171
|
|
750
750
|
cirq/protocols/json_test_data/SymmetricalQidPair.repr_inward,sha256=HoS6O8xbikCUU1k7CGjkCWNqBq0UUl-I5B1aQ7ebSXU,49
|
|
751
|
-
cirq/protocols/json_test_data/SympyCondition.json,sha256=
|
|
752
|
-
cirq/protocols/json_test_data/SympyCondition.repr,sha256=
|
|
751
|
+
cirq/protocols/json_test_data/SympyCondition.json,sha256=E3CHdecvRGhpukhJLxRUzwU-7j_xOV2SpYHCMc6oasg,1244
|
|
752
|
+
cirq/protocols/json_test_data/SympyCondition.repr,sha256=bLvqMeovrpidl37-x46NhKkVbR-erYpZnVa1cf5g0DM,254
|
|
753
753
|
cirq/protocols/json_test_data/T.json,sha256=cQ6Lr96RK4lbRN8w7BkhzwcyjbN3zEdOoAa1RPEmbEg,72
|
|
754
754
|
cirq/protocols/json_test_data/T.repr,sha256=HNwqoQ8INnlYEf_he7OVMYgMGw_eQAjC1umsxuA9YRA,6
|
|
755
755
|
cirq/protocols/json_test_data/TOFFOLI.json,sha256=-Ch9-If0fyeWYFak9stM8uJ8iHa2g8blkyK5hKqCg8o,71
|
|
@@ -848,6 +848,8 @@ cirq/protocols/json_test_data/pandas.MultiIndex.repr,sha256=g4q-1zFWYG8T7IAI0anQ
|
|
|
848
848
|
cirq/protocols/json_test_data/spec.py,sha256=b_9-k4vW8eHi8umSwo7ryDAkjvUb74aW-UvZRKONaXY,5615
|
|
849
849
|
cirq/protocols/json_test_data/sympy.Add.json,sha256=fVilRXllnMRnQcXuoU06IlwZOWK9Kwim1t6Q_s6z97g,1000
|
|
850
850
|
cirq/protocols/json_test_data/sympy.Add.repr,sha256=9L_05ZlcrFpo8QoExFAAO_kEEpc7SSqGyp0vudkRlsU,228
|
|
851
|
+
cirq/protocols/json_test_data/sympy.And.json,sha256=eaM07ihBPjZbn44gRIy6TbXeEwblF-QN32Jb1ATAQ5Q,178
|
|
852
|
+
cirq/protocols/json_test_data/sympy.And.repr,sha256=EFN2FEj37avIYn5AUyYycrQdIXANEABEdS2xKjQaKRc,47
|
|
851
853
|
cirq/protocols/json_test_data/sympy.E.json,sha256=d2NfgXTX-YhePH-I0SkkI-lSSJ6PkqTnUZ-yngh9GQk,39
|
|
852
854
|
cirq/protocols/json_test_data/sympy.E.repr,sha256=5TZkWsfhPeqaM5BUy4U_PrJOeJi4OogjqHSHlNPwMb4,11
|
|
853
855
|
cirq/protocols/json_test_data/sympy.Equality.json,sha256=QB4ZR-brr3-DYLIDlzesq9Rcy3GlgU4YS12psrzur5M,183
|
|
@@ -858,12 +860,20 @@ cirq/protocols/json_test_data/sympy.Float.json,sha256=HFkBmN51ZoGF93U16X_9vRUVkN
|
|
|
858
860
|
cirq/protocols/json_test_data/sympy.Float.repr,sha256=H2uK53HNWTF4tAG6TTP1Wuhvss-aAqWnI26sLNWOG60,52
|
|
859
861
|
cirq/protocols/json_test_data/sympy.GreaterThan.json,sha256=RceHlPzCXOgE-hRrW9BMsXgR9DF24ok_Q_ptbMHtZec,186
|
|
860
862
|
cirq/protocols/json_test_data/sympy.GreaterThan.repr,sha256=1O4MH_mCEhNaksrE_Fau_JW-mENwZSpSEZb2D61OsYs,55
|
|
863
|
+
cirq/protocols/json_test_data/sympy.Indexed.json,sha256=p678vhUV1kP-O7TL85V3OWfGDxWP6p58sL4dX3K1e8M,270
|
|
864
|
+
cirq/protocols/json_test_data/sympy.Indexed.repr,sha256=oheRHGYZc1SRGSr7UeVbg0SAuQM-z4qNbqRlzUKByRw,68
|
|
865
|
+
cirq/protocols/json_test_data/sympy.IndexedBase.json,sha256=ROJjG422YZbFmC4AWbQN9cMQkXC50VRIbo_Bq2OifOk,120
|
|
866
|
+
cirq/protocols/json_test_data/sympy.IndexedBase.repr,sha256=4YW8dM4s85Di6x9B8ZBV5b3Lxccelt9Y-C5U4OlVygM,36
|
|
861
867
|
cirq/protocols/json_test_data/sympy.Integer.json,sha256=P1T8fJhXoMMN9RwTCXNAVsPA0022btcv1NkyP5QA7_0,56
|
|
862
868
|
cirq/protocols/json_test_data/sympy.Integer.repr,sha256=dabVVMIK3-iXbhD4-8GR573r8CXfC2gyTu5GX_8JoFs,21
|
|
863
869
|
cirq/protocols/json_test_data/sympy.LessThan.json,sha256=pYMllJqZcjAcH6-EU_N7lmcyQkR4pAXwH-UXaEKveaE,183
|
|
864
870
|
cirq/protocols/json_test_data/sympy.LessThan.repr,sha256=UiCWBJlPEM1mTrXODmmHdigaHjv8olz9hodXSJtfPkM,52
|
|
865
871
|
cirq/protocols/json_test_data/sympy.Mul.json,sha256=v6ync9FPSpGCMm215OFP6Ys-aNzZEUfoaJjQvxjGwJs,794
|
|
866
872
|
cirq/protocols/json_test_data/sympy.Mul.repr,sha256=PyuiEzSnRFkhTO43ZUyL5H63mWEIcPSYrsEtOSsLdQ0,179
|
|
873
|
+
cirq/protocols/json_test_data/sympy.Not.json,sha256=pbGra21C3e6nYfVLQPSUZi6-fGjDMjkouRpKqZsvy8w,112
|
|
874
|
+
cirq/protocols/json_test_data/sympy.Not.repr,sha256=4np2NPnSsMJJRKO1W1ez5Fsj_HKzDnItzfNNLhhYeyg,28
|
|
875
|
+
cirq/protocols/json_test_data/sympy.Or.json,sha256=ldjgZWPfy2SxrPtPIAoD5aJ5r5zUlS52K1FN4IQWyr8,177
|
|
876
|
+
cirq/protocols/json_test_data/sympy.Or.repr,sha256=_jBJmKzI6kOtrG17Fme6LcTRZa7A3L2rgBoqDBKuZ94,46
|
|
867
877
|
cirq/protocols/json_test_data/sympy.Pow.json,sha256=9t2ho1233pZBRu42LWfplkLZb4mqmRkQQ72dZx28GeY,612
|
|
868
878
|
cirq/protocols/json_test_data/sympy.Pow.repr,sha256=Pq980YU8aHzUv5j_BUmwDHeGgzVi1rXX8N06Uqc_exg,148
|
|
869
879
|
cirq/protocols/json_test_data/sympy.Rational.json,sha256=Nwgk-Tu5ycAjHhuhkokNFx4nIl4zuw4QTwMYiTLIZvc,69
|
|
@@ -876,6 +886,8 @@ cirq/protocols/json_test_data/sympy.Symbol.json,sha256=MvEdH0ou6Z1CRhKrTcPAABSlD
|
|
|
876
886
|
cirq/protocols/json_test_data/sympy.Symbol.repr,sha256=vnQ0m3ghzzcMgF7aQqFAIX44BKNzAKGArMuTLjOypKc,41
|
|
877
887
|
cirq/protocols/json_test_data/sympy.Unequality.json,sha256=Bd2vedLFPwZuWyIcipOYXT6G3wfTj-_I8HmoZ0_pBLY,185
|
|
878
888
|
cirq/protocols/json_test_data/sympy.Unequality.repr,sha256=PsC01doMaEuySfnFUQhHdcAq9tlmLzSdQ8WKe8PUaTM,54
|
|
889
|
+
cirq/protocols/json_test_data/sympy.Xor.json,sha256=irgOYOU5To1SNNxdGC_mRveem8RpX-dn8VUThzJOFZY,178
|
|
890
|
+
cirq/protocols/json_test_data/sympy.Xor.repr,sha256=JJQpRqs9zS_NGgbgvK6a_smY_xPWquua5VsbJ8V5slw,47
|
|
879
891
|
cirq/protocols/json_test_data/sympy.pi.json,sha256=9LMRtr_ef-On0sxRe0vbUeXZt8cdDvvPvmmwXZ5iwnw,40
|
|
880
892
|
cirq/protocols/json_test_data/sympy.pi.repr,sha256=ZQS0my0esr3dWTZ3mWlqgR63uorPCpuSkOgnvu_x_c4,12
|
|
881
893
|
cirq/qis/__init__.py,sha256=7yOctnS4jY-rTfV9fKMbddVh1m8GjZDf3_hx4A7ZOcM,2892
|
|
@@ -1136,8 +1148,8 @@ cirq/value/angle.py,sha256=vNZfTE3WmbWPYBKSPt--wvTub5bgUhmKR7ao_dIlyBQ,3313
|
|
|
1136
1148
|
cirq/value/angle_test.py,sha256=PqeTBGJw6zfain4cG8FYMobtYQsfyxLQeBu_CF5fIjg,3548
|
|
1137
1149
|
cirq/value/classical_data.py,sha256=so7OCCfEGU2XU1yc5kWz2yhryK8s4FFChqi9GEV4hqE,11607
|
|
1138
1150
|
cirq/value/classical_data_test.py,sha256=23ZraKZ-V3p-uux21bkcboQcEp81RW6VKnVIYPQc6_o,5231
|
|
1139
|
-
cirq/value/condition.py,sha256=
|
|
1140
|
-
cirq/value/condition_test.py,sha256=
|
|
1151
|
+
cirq/value/condition.py,sha256=ie1MBRAHkZpVdNEPAW8Ew3RnLeqAjctQlgly41vP1nU,7887
|
|
1152
|
+
cirq/value/condition_test.py,sha256=TViocolFwabyabjWS7-oACVI-b8vcolX9Zs_K-4b0_A,6835
|
|
1141
1153
|
cirq/value/digits.py,sha256=pUQi6PIA1FMbXUOWknefb6dBApCyLsTkpLFrhvNgE0Q,6024
|
|
1142
1154
|
cirq/value/digits_test.py,sha256=evx-y619LfjSN_gUO1B6K7O80X5HJmxxBPl61RrOovo,3812
|
|
1143
1155
|
cirq/value/duration.py,sha256=isNzA1TuKb5rSaAYy4JpgT91Zt9_5XLQBSmMkuWCtD4,10358
|
|
@@ -1189,8 +1201,8 @@ cirq/work/sampler.py,sha256=bE5tmVkcR6cZZMLETxDfHehdsYUMbx2RvBeIBetehI4,19187
|
|
|
1189
1201
|
cirq/work/sampler_test.py,sha256=hL2UWx3dz2ukZVNxWftiKVvJcQoLplLZdQm-k1QcA40,13282
|
|
1190
1202
|
cirq/work/zeros_sampler.py,sha256=x1C7cup66a43n-3tm8QjhiqJa07qcJW10FxNp9jJ59Q,2356
|
|
1191
1203
|
cirq/work/zeros_sampler_test.py,sha256=JIkpBBFPJe5Ba4142vzogyWyboG1Q1ZAm0UVGgOoZn8,3279
|
|
1192
|
-
cirq_core-1.5.0.
|
|
1193
|
-
cirq_core-1.5.0.
|
|
1194
|
-
cirq_core-1.5.0.
|
|
1195
|
-
cirq_core-1.5.0.
|
|
1196
|
-
cirq_core-1.5.0.
|
|
1204
|
+
cirq_core-1.5.0.dev20250110193226.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
1205
|
+
cirq_core-1.5.0.dev20250110193226.dist-info/METADATA,sha256=I3a4P7Jam0h67VTrRKlOgdr2TKumNO23dZrer3uLClU,2105
|
|
1206
|
+
cirq_core-1.5.0.dev20250110193226.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
1207
|
+
cirq_core-1.5.0.dev20250110193226.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
|
|
1208
|
+
cirq_core-1.5.0.dev20250110193226.dist-info/RECORD,,
|
{cirq_core-1.5.0.dev20250109220553.dist-info → cirq_core-1.5.0.dev20250110193226.dist-info}/LICENSE
RENAMED
|
File without changes
|
{cirq_core-1.5.0.dev20250109220553.dist-info → cirq_core-1.5.0.dev20250110193226.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|