cirq-core 1.5.0.dev20250407181219__py3-none-any.whl → 1.5.0.dev20250407210732__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/ops/common_gates.py +16 -4
- cirq/ops/phased_x_gate.py +2 -17
- cirq/ops/phased_x_gate_test.py +19 -3
- cirq/transformers/eject_phased_paulis.py +25 -12
- cirq/transformers/eject_phased_paulis_test.py +2 -7
- cirq/transformers/eject_z_test.py +2 -2
- cirq/transformers/merge_single_qubit_gates_test.py +1 -1
- {cirq_core-1.5.0.dev20250407181219.dist-info → cirq_core-1.5.0.dev20250407210732.dist-info}/METADATA +1 -1
- {cirq_core-1.5.0.dev20250407181219.dist-info → cirq_core-1.5.0.dev20250407210732.dist-info}/RECORD +14 -14
- {cirq_core-1.5.0.dev20250407181219.dist-info → cirq_core-1.5.0.dev20250407210732.dist-info}/LICENSE +0 -0
- {cirq_core-1.5.0.dev20250407181219.dist-info → cirq_core-1.5.0.dev20250407210732.dist-info}/WHEEL +0 -0
- {cirq_core-1.5.0.dev20250407181219.dist-info → cirq_core-1.5.0.dev20250407210732.dist-info}/top_level.txt +0 -0
cirq/_version.py
CHANGED
cirq/_version_test.py
CHANGED
cirq/ops/common_gates.py
CHANGED
|
@@ -289,9 +289,7 @@ class XPowGate(eigen_gate.EigenGate):
|
|
|
289
289
|
|
|
290
290
|
def _phase_by_(self, phase_turns, qubit_index):
|
|
291
291
|
"""See `cirq.SupportsPhase`."""
|
|
292
|
-
return
|
|
293
|
-
exponent=self._exponent, phase_exponent=phase_turns * 2
|
|
294
|
-
)
|
|
292
|
+
return _phased_x_or_pauli_gate(exponent=self._exponent, phase_exponent=phase_turns * 2)
|
|
295
293
|
|
|
296
294
|
def _has_stabilizer_effect_(self) -> Optional[bool]:
|
|
297
295
|
if self._is_parameterized_() or self._dimension != 2:
|
|
@@ -484,7 +482,7 @@ class YPowGate(eigen_gate.EigenGate):
|
|
|
484
482
|
|
|
485
483
|
def _phase_by_(self, phase_turns, qubit_index):
|
|
486
484
|
"""See `cirq.SupportsPhase`."""
|
|
487
|
-
return
|
|
485
|
+
return _phased_x_or_pauli_gate(
|
|
488
486
|
exponent=self._exponent, phase_exponent=0.5 + phase_turns * 2
|
|
489
487
|
)
|
|
490
488
|
|
|
@@ -1542,3 +1540,17 @@ document(
|
|
|
1542
1540
|
$$
|
|
1543
1541
|
""",
|
|
1544
1542
|
)
|
|
1543
|
+
|
|
1544
|
+
|
|
1545
|
+
def _phased_x_or_pauli_gate(
|
|
1546
|
+
exponent: Union[float, sympy.Expr], phase_exponent: Union[float, sympy.Expr]
|
|
1547
|
+
) -> Union['cirq.PhasedXPowGate', 'cirq.XPowGate', 'cirq.YPowGate']:
|
|
1548
|
+
"""Return PhasedXPowGate or X or Y gate if equivalent at the given phase_exponent."""
|
|
1549
|
+
if not isinstance(phase_exponent, sympy.Expr) or phase_exponent.is_constant():
|
|
1550
|
+
half_turns = value.canonicalize_half_turns(float(phase_exponent))
|
|
1551
|
+
match half_turns:
|
|
1552
|
+
case 0.0:
|
|
1553
|
+
return XPowGate(exponent=exponent)
|
|
1554
|
+
case 0.5:
|
|
1555
|
+
return YPowGate(exponent=exponent)
|
|
1556
|
+
return cirq.ops.PhasedXPowGate(exponent=exponent, phase_exponent=phase_exponent)
|
cirq/ops/phased_x_gate.py
CHANGED
|
@@ -24,10 +24,10 @@ import sympy
|
|
|
24
24
|
import cirq
|
|
25
25
|
from cirq import protocols, value
|
|
26
26
|
from cirq._compat import proper_repr
|
|
27
|
-
from cirq.ops import
|
|
27
|
+
from cirq.ops import raw_types
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
@value.value_equality(
|
|
30
|
+
@value.value_equality(approximate=True)
|
|
31
31
|
class PhasedXPowGate(raw_types.Gate):
|
|
32
32
|
r"""A gate equivalent to $Z^{-p} X^t Z^{p}$ (in time order).
|
|
33
33
|
|
|
@@ -241,22 +241,7 @@ class PhasedXPowGate(raw_types.Gate):
|
|
|
241
241
|
|
|
242
242
|
return self._exponent % period
|
|
243
243
|
|
|
244
|
-
def _value_equality_values_cls_(self):
|
|
245
|
-
if self.phase_exponent == 0:
|
|
246
|
-
return common_gates.XPowGate
|
|
247
|
-
if self.phase_exponent == 0.5:
|
|
248
|
-
return common_gates.YPowGate
|
|
249
|
-
return PhasedXPowGate
|
|
250
|
-
|
|
251
244
|
def _value_equality_values_(self):
|
|
252
|
-
if self.phase_exponent == 0:
|
|
253
|
-
return common_gates.XPowGate(
|
|
254
|
-
exponent=self._exponent, global_shift=self._global_shift
|
|
255
|
-
)._value_equality_values_()
|
|
256
|
-
if self.phase_exponent == 0.5:
|
|
257
|
-
return common_gates.YPowGate(
|
|
258
|
-
exponent=self._exponent, global_shift=self._global_shift
|
|
259
|
-
)._value_equality_values_()
|
|
260
245
|
return self.phase_exponent, self._canonical_exponent, self._global_shift
|
|
261
246
|
|
|
262
247
|
def _json_dict_(self) -> Dict[str, Any]:
|
cirq/ops/phased_x_gate_test.py
CHANGED
|
@@ -79,16 +79,17 @@ def test_eq():
|
|
|
79
79
|
cirq.PhasedXPowGate(exponent=1, phase_exponent=0),
|
|
80
80
|
cirq.PhasedXPowGate(exponent=1, phase_exponent=2),
|
|
81
81
|
cirq.PhasedXPowGate(exponent=1, phase_exponent=-2),
|
|
82
|
-
cirq.X,
|
|
83
82
|
)
|
|
83
|
+
eq.add_equality_group(cirq.X)
|
|
84
84
|
eq.add_equality_group(cirq.PhasedXPowGate(exponent=1, phase_exponent=2, global_shift=0.1))
|
|
85
85
|
|
|
86
86
|
eq.add_equality_group(
|
|
87
87
|
cirq.PhasedXPowGate(phase_exponent=0.5, exponent=1),
|
|
88
88
|
cirq.PhasedXPowGate(phase_exponent=2.5, exponent=3),
|
|
89
|
-
cirq.Y,
|
|
90
89
|
)
|
|
91
|
-
eq.add_equality_group(cirq.
|
|
90
|
+
eq.add_equality_group(cirq.Y)
|
|
91
|
+
eq.add_equality_group(cirq.PhasedXPowGate(phase_exponent=0.5, exponent=0.25))
|
|
92
|
+
eq.add_equality_group(cirq.Y**0.25)
|
|
92
93
|
|
|
93
94
|
eq.add_equality_group(cirq.PhasedXPowGate(phase_exponent=0.25, exponent=0.25, global_shift=0.1))
|
|
94
95
|
eq.add_equality_group(cirq.PhasedXPowGate(phase_exponent=2.25, exponent=0.25, global_shift=0.2))
|
|
@@ -266,3 +267,18 @@ def test_exponent_consistency(exponent, phase_exponent):
|
|
|
266
267
|
u = cirq.protocols.unitary(g)
|
|
267
268
|
u2 = cirq.protocols.unitary(g2)
|
|
268
269
|
assert np.all(u == u2)
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
def test_approx_eq_for_close_phase_exponents():
|
|
273
|
+
gate1 = cirq.PhasedXPowGate(phase_exponent=0)
|
|
274
|
+
gate2 = cirq.PhasedXPowGate(phase_exponent=1e-12)
|
|
275
|
+
gate3 = cirq.PhasedXPowGate(phase_exponent=2e-12)
|
|
276
|
+
gate4 = cirq.PhasedXPowGate(phase_exponent=0.345)
|
|
277
|
+
|
|
278
|
+
assert cirq.approx_eq(gate2, gate3)
|
|
279
|
+
assert cirq.approx_eq(gate2, gate1)
|
|
280
|
+
assert not cirq.approx_eq(gate2, gate4)
|
|
281
|
+
|
|
282
|
+
assert cirq.equal_up_to_global_phase(gate2, gate3)
|
|
283
|
+
assert cirq.equal_up_to_global_phase(gate2, gate1)
|
|
284
|
+
assert not cirq.equal_up_to_global_phase(gate2, gate4)
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
"""Transformer pass that pushes 180° rotations around axes in the XY plane later in the circuit."""
|
|
16
16
|
|
|
17
|
-
from typing import cast, Dict, Iterable, Iterator, Optional, Tuple, TYPE_CHECKING
|
|
17
|
+
from typing import cast, Dict, Iterable, Iterator, Optional, Tuple, TYPE_CHECKING, Union
|
|
18
18
|
|
|
19
19
|
import numpy as np
|
|
20
20
|
import sympy
|
|
@@ -63,7 +63,7 @@ def eject_phased_paulis(
|
|
|
63
63
|
def map_func(op: 'cirq.Operation', _: int) -> 'cirq.OP_TREE':
|
|
64
64
|
# Dump if `op` marked with a no compile tag.
|
|
65
65
|
if set(op.tags) & tags_to_ignore:
|
|
66
|
-
return [_dump_held(op.qubits, held_w_phases), op]
|
|
66
|
+
return [_dump_held(op.qubits, held_w_phases, atol), op]
|
|
67
67
|
|
|
68
68
|
# Collect, phase, and merge Ws.
|
|
69
69
|
w = _try_get_known_phased_pauli(op, no_symbolic=not eject_parameterized)
|
|
@@ -71,7 +71,7 @@ def eject_phased_paulis(
|
|
|
71
71
|
return (
|
|
72
72
|
_potential_cross_whole_w(op, atol, held_w_phases)
|
|
73
73
|
if single_qubit_decompositions.is_negligible_turn((w[0] - 1) / 2, atol)
|
|
74
|
-
else _potential_cross_partial_w(op, held_w_phases)
|
|
74
|
+
else _potential_cross_partial_w(op, held_w_phases, atol)
|
|
75
75
|
)
|
|
76
76
|
|
|
77
77
|
affected = [q for q in op.qubits if q in held_w_phases]
|
|
@@ -96,12 +96,12 @@ def eject_phased_paulis(
|
|
|
96
96
|
)
|
|
97
97
|
|
|
98
98
|
# Don't know how to handle this situation. Dump the gates.
|
|
99
|
-
return [_dump_held(op.qubits, held_w_phases), op]
|
|
99
|
+
return [_dump_held(op.qubits, held_w_phases, atol), op]
|
|
100
100
|
|
|
101
101
|
# Map operations and put anything that's still held at the end of the circuit.
|
|
102
102
|
return circuits.Circuit(
|
|
103
103
|
transformer_primitives.map_operations_and_unroll(circuit, map_func),
|
|
104
|
-
_dump_held(held_w_phases.keys(), held_w_phases),
|
|
104
|
+
_dump_held(held_w_phases.keys(), held_w_phases, atol),
|
|
105
105
|
)
|
|
106
106
|
|
|
107
107
|
|
|
@@ -127,14 +127,14 @@ def _absorb_z_into_w(
|
|
|
127
127
|
|
|
128
128
|
|
|
129
129
|
def _dump_held(
|
|
130
|
-
qubits: Iterable[ops.Qid], held_w_phases: Dict[ops.Qid, value.TParamVal]
|
|
130
|
+
qubits: Iterable[ops.Qid], held_w_phases: Dict[ops.Qid, value.TParamVal], atol: float
|
|
131
131
|
) -> Iterator['cirq.OP_TREE']:
|
|
132
132
|
# Note: sorting is to avoid non-determinism in the insertion order.
|
|
133
133
|
for q in sorted(qubits):
|
|
134
134
|
p = held_w_phases.get(q)
|
|
135
135
|
if p is not None:
|
|
136
|
-
|
|
137
|
-
yield
|
|
136
|
+
gate = _phased_x_or_pauli_gate(exponent=1.0, phase_exponent=p, atol=atol)
|
|
137
|
+
yield gate.on(q)
|
|
138
138
|
held_w_phases.pop(q, None)
|
|
139
139
|
|
|
140
140
|
|
|
@@ -184,7 +184,7 @@ def _potential_cross_whole_w(
|
|
|
184
184
|
|
|
185
185
|
|
|
186
186
|
def _potential_cross_partial_w(
|
|
187
|
-
op: ops.Operation, held_w_phases: Dict[ops.Qid, value.TParamVal]
|
|
187
|
+
op: ops.Operation, held_w_phases: Dict[ops.Qid, value.TParamVal], atol: float
|
|
188
188
|
) -> 'cirq.OP_TREE':
|
|
189
189
|
"""Cross the held W over a partial W gate.
|
|
190
190
|
|
|
@@ -204,10 +204,10 @@ def _potential_cross_partial_w(
|
|
|
204
204
|
exponent, phase_exponent = cast(
|
|
205
205
|
Tuple[value.TParamVal, value.TParamVal], _try_get_known_phased_pauli(op)
|
|
206
206
|
)
|
|
207
|
-
|
|
208
|
-
|
|
207
|
+
gate = _phased_x_or_pauli_gate(
|
|
208
|
+
exponent=exponent, phase_exponent=2 * a - phase_exponent, atol=atol
|
|
209
209
|
)
|
|
210
|
-
return
|
|
210
|
+
return gate.on(op.qubits[0])
|
|
211
211
|
|
|
212
212
|
|
|
213
213
|
def _single_cross_over_cz(op: ops.Operation, qubit_with_w: 'cirq.Qid') -> 'cirq.OP_TREE':
|
|
@@ -351,3 +351,16 @@ def _try_get_known_z_half_turns(
|
|
|
351
351
|
if no_symbolic and isinstance(h, sympy.Basic):
|
|
352
352
|
return None
|
|
353
353
|
return h
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
def _phased_x_or_pauli_gate(
|
|
357
|
+
exponent: Union[float, sympy.Expr], phase_exponent: Union[float, sympy.Expr], atol: float
|
|
358
|
+
) -> Union['cirq.PhasedXPowGate', 'cirq.XPowGate', 'cirq.YPowGate']:
|
|
359
|
+
"""Return PhasedXPowGate or X or Y gate if equivalent within atol in z-axis turns."""
|
|
360
|
+
if not isinstance(phase_exponent, sympy.Expr) or phase_exponent.is_constant():
|
|
361
|
+
half_turns = value.canonicalize_half_turns(float(phase_exponent))
|
|
362
|
+
if abs(half_turns / 2) <= atol:
|
|
363
|
+
return ops.XPowGate(exponent=exponent)
|
|
364
|
+
if abs((half_turns - 0.5) / 2) <= atol:
|
|
365
|
+
return ops.YPowGate(exponent=exponent)
|
|
366
|
+
return ops.PhasedXPowGate(exponent=exponent, phase_exponent=phase_exponent)
|
|
@@ -212,11 +212,7 @@ def test_crosses_czs():
|
|
|
212
212
|
[cirq.CZ(a, b) ** 0.25],
|
|
213
213
|
),
|
|
214
214
|
expected=quick_circuit(
|
|
215
|
-
[cirq.CZ(a, b) ** 0.25],
|
|
216
|
-
[
|
|
217
|
-
cirq.PhasedXPowGate(phase_exponent=0.5).on(b),
|
|
218
|
-
cirq.PhasedXPowGate(phase_exponent=0.25).on(a),
|
|
219
|
-
],
|
|
215
|
+
[cirq.CZ(a, b) ** 0.25], [cirq.Y(b), cirq.PhasedXPowGate(phase_exponent=0.25).on(a)]
|
|
220
216
|
),
|
|
221
217
|
)
|
|
222
218
|
assert_optimizes(
|
|
@@ -387,8 +383,7 @@ def test_phases_partial_ws():
|
|
|
387
383
|
assert_optimizes(
|
|
388
384
|
before=quick_circuit([cirq.PhasedXPowGate(phase_exponent=0.25).on(q)], [cirq.X(q) ** 0.5]),
|
|
389
385
|
expected=quick_circuit(
|
|
390
|
-
[cirq.
|
|
391
|
-
[cirq.PhasedXPowGate(phase_exponent=0.25).on(q)],
|
|
386
|
+
[cirq.Y(q) ** 0.5], [cirq.PhasedXPowGate(phase_exponent=0.25).on(q)]
|
|
392
387
|
),
|
|
393
388
|
)
|
|
394
389
|
|
|
@@ -51,10 +51,10 @@ def assert_optimizes(
|
|
|
51
51
|
cirq.Moment(cirq.CircuitOperation(before.freeze()).repeat(3).with_tags("preserve_tag")),
|
|
52
52
|
)
|
|
53
53
|
c_expected = cirq.Circuit(
|
|
54
|
-
cirq.
|
|
54
|
+
(cirq.X**0.25).on_each(*q),
|
|
55
55
|
(cirq.Z**0.5).on_each(*q),
|
|
56
56
|
cirq.Moment(cirq.CircuitOperation(before.freeze()).repeat(2).with_tags("ignore")),
|
|
57
|
-
cirq.
|
|
57
|
+
(cirq.X**0.25).on_each(*q),
|
|
58
58
|
(cirq.Z**0.5).on_each(*q),
|
|
59
59
|
cirq.Moment(cirq.CircuitOperation(expected.freeze()).repeat(3).with_tags("preserve_tag")),
|
|
60
60
|
)
|
|
@@ -45,7 +45,7 @@ def test_merge_single_qubit_gates_to_phased_x_and_z():
|
|
|
45
45
|
optimized=cirq.merge_single_qubit_gates_to_phased_x_and_z(c),
|
|
46
46
|
expected=cirq.Circuit(
|
|
47
47
|
cirq.PhasedXPowGate(phase_exponent=1)(a),
|
|
48
|
-
cirq.
|
|
48
|
+
cirq.PhasedXPowGate(phase_exponent=0.5)(b) ** 0.5,
|
|
49
49
|
cirq.CZ(a, b),
|
|
50
50
|
(cirq.PhasedXPowGate(phase_exponent=-0.5)(a)) ** 0.5,
|
|
51
51
|
cirq.measure(b, key="m"),
|
{cirq_core-1.5.0.dev20250407181219.dist-info → cirq_core-1.5.0.dev20250407210732.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.dev20250407210732
|
|
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.dev20250407181219.dist-info → cirq_core-1.5.0.dev20250407210732.dist-info}/RECORD
RENAMED
|
@@ -4,8 +4,8 @@ cirq/_compat_test.py,sha256=0m3sYIyxRNv9jvAo6rzJ-cnbpny3KGnAByrbU7bApgQ,34720
|
|
|
4
4
|
cirq/_doc.py,sha256=yDyWUD_2JDS0gShfGRb-rdqRt9-WeL7DhkqX7np0Nko,2879
|
|
5
5
|
cirq/_import.py,sha256=cfocxtT1BJ4HkfZ-VO8YyIhPP-xfqHDkLrzz6eeO5U0,8421
|
|
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=XNJPC2YqEByjqq7QB_SY0Biz1p6Vz68JiL_vG-Ii0xw,1206
|
|
8
|
+
cirq/_version_test.py,sha256=RLpRiRXwv5_4NRx-ObmveVFG10t-vOFIJO5XFgmigFE,147
|
|
9
9
|
cirq/conftest.py,sha256=X7yLFL8GLhg2CjPw0hp5e_dGASfvHx1-QT03aUbhKJw,1168
|
|
10
10
|
cirq/json_resolver_cache.py,sha256=YVamU72nCUT5dG0bhAvRKVX5lXcZMNTwP3H36v-cYag,13615
|
|
11
11
|
cirq/py.typed,sha256=VFSlmh_lNwnaXzwY-ZuW-C2Ws5PkuDoVgBdNCs0jXJE,63
|
|
@@ -280,7 +280,7 @@ cirq/ops/common_channels.py,sha256=lGDOSdstoK57DingL-lo2n49-a51MshhJOl4LOcpQfg,3
|
|
|
280
280
|
cirq/ops/common_channels_test.py,sha256=nQsSSxu7vtedb3ZUuw4hNKIX7MYI4x8lxvLyWMZNt10,30079
|
|
281
281
|
cirq/ops/common_gate_families.py,sha256=2E31Qr_Yv1zI-r_MNWmr1xJYrEHHU45274iDrt_oKPE,8611
|
|
282
282
|
cirq/ops/common_gate_families_test.py,sha256=bEF6Q6GtEOTc9kHM5WC1UIULPGnMPXdtm8gzLT_aNBI,5276
|
|
283
|
-
cirq/ops/common_gates.py,sha256=
|
|
283
|
+
cirq/ops/common_gates.py,sha256=WFNrvxaHQdfS_2sm0-Kuq4VaH-qcgbJOFi2_PBecBX0,58481
|
|
284
284
|
cirq/ops/common_gates_test.py,sha256=bASPqAkuN92Ij3CCAVwOftL0heIu3J5VPcCtmm6nVU0,46873
|
|
285
285
|
cirq/ops/control_values.py,sha256=Loi_voLNOzPJpjD6AnQz8JrqJLOAUe0jvV3XB_0tTGE,13430
|
|
286
286
|
cirq/ops/control_values_test.py,sha256=K8tbKM6b6PqMEL_lHLFzdrnWF1SkLN0Scft6YMT7FlE,12907
|
|
@@ -348,8 +348,8 @@ cirq/ops/permutation_gate.py,sha256=2h8n76N2M3nu5MA8JkRQgVLByq5cOEluKUN042ClSRs,
|
|
|
348
348
|
cirq/ops/permutation_gate_test.py,sha256=qroZ88JYhSU6rxuQsJ2pS2XqPFJ1BGvXYVy3cnpUc9k,3281
|
|
349
349
|
cirq/ops/phased_iswap_gate.py,sha256=Q-1PuSc4F3gsZL9UUN8EgrO31Ix6mA-7HoUIndvePbk,8990
|
|
350
350
|
cirq/ops/phased_iswap_gate_test.py,sha256=tB1MqH8Y0Kgr0QIxs1kq1yl2g0mKYI7Q_AaadBhFe2U,7360
|
|
351
|
-
cirq/ops/phased_x_gate.py,sha256=
|
|
352
|
-
cirq/ops/phased_x_gate_test.py,sha256=
|
|
351
|
+
cirq/ops/phased_x_gate.py,sha256=ykYG1wxKh1649B9V1vJPOUsE5Z3hmm5t0sa9mCdn530,9331
|
|
352
|
+
cirq/ops/phased_x_gate_test.py,sha256=g_qbhl2OesKgXkzECv-7FJPMlOBzv9-AzkVZgfflxbE,10821
|
|
353
353
|
cirq/ops/phased_x_z_gate.py,sha256=E96p1za5rN3Q2jwOfV1HWnkvb9mcxdV9ZaV8FzcpJHE,11518
|
|
354
354
|
cirq/ops/phased_x_z_gate_test.py,sha256=KK5-FD5zoaqZkw7p6UKxFddzaFWoxnQnE8LpCiKtIk8,10690
|
|
355
355
|
cirq/ops/projector.py,sha256=y3ignrYFmthdPm_pjJ0Y0xp8SGPviqcT07Y9KEZ231Y,5646
|
|
@@ -1052,10 +1052,10 @@ cirq/transformers/drop_negligible_operations.py,sha256=pd9fkVRrP4TX7MxwKfmFPiwuv
|
|
|
1052
1052
|
cirq/transformers/drop_negligible_operations_test.py,sha256=gqL6RoDPm6Zf4RxtprBenFyIsZQPUxmPur9oRl0Yr3U,3823
|
|
1053
1053
|
cirq/transformers/dynamical_decoupling.py,sha256=dIh5mgE8OKA6RDBvWW4MDbTzs2R-lG1QDc6QHa6ppMc,14700
|
|
1054
1054
|
cirq/transformers/dynamical_decoupling_test.py,sha256=7iPpgEgA6pZ_x6we8JnqwIzTUrg-IN6ItK8Fp1kIw0Q,44692
|
|
1055
|
-
cirq/transformers/eject_phased_paulis.py,sha256=
|
|
1056
|
-
cirq/transformers/eject_phased_paulis_test.py,sha256=
|
|
1055
|
+
cirq/transformers/eject_phased_paulis.py,sha256=zOvCiSXKBNex-zWB8BnhiIY8E34Za8XvnNSMmN3BCu4,14780
|
|
1056
|
+
cirq/transformers/eject_phased_paulis_test.py,sha256=nALOTD4leNU8RBsjdyzTsrqOFZR6h2Z56SiWebmXM4Q,15682
|
|
1057
1057
|
cirq/transformers/eject_z.py,sha256=Ja5lU8RMSSrnUr8n8_15Miqruq4L-Y-r4x6jB3rwCUU,5824
|
|
1058
|
-
cirq/transformers/eject_z_test.py,sha256=
|
|
1058
|
+
cirq/transformers/eject_z_test.py,sha256=f0H_oxe-whPlrrg7vaHRmjVWoRIyh_xuvVk3WjxuzhQ,13226
|
|
1059
1059
|
cirq/transformers/expand_composite.py,sha256=nASRoP4qfjsnX_t2a2hBw8BE7B_JD-0XLGIIXxbIdbc,2387
|
|
1060
1060
|
cirq/transformers/expand_composite_test.py,sha256=4Gn6LVqr0DeuUumde80O4esOLGIoo86_S_Mk-HwnMfk,8640
|
|
1061
1061
|
cirq/transformers/insertion_sort.py,sha256=biwPNET6LlFnnzzHks1pjQda7OMNRnzwNQjYYJVL820,2612
|
|
@@ -1065,7 +1065,7 @@ cirq/transformers/measurement_transformers_test.py,sha256=VXXqJIfXJcduJXXXz0_yq7
|
|
|
1065
1065
|
cirq/transformers/merge_k_qubit_gates.py,sha256=c6F33qJeTlwRxneNkgcQoLFgR7MyiY1yaTEfV12A_hM,4390
|
|
1066
1066
|
cirq/transformers/merge_k_qubit_gates_test.py,sha256=k_ROZvUebHgPy5vsNnWNMBYU4kfIkrunPsw39ZngMwo,13920
|
|
1067
1067
|
cirq/transformers/merge_single_qubit_gates.py,sha256=TFlW-iZuUnlGTsnj6BI_z8P16ZkZbHUi69iHyi-0HPs,5826
|
|
1068
|
-
cirq/transformers/merge_single_qubit_gates_test.py,sha256=
|
|
1068
|
+
cirq/transformers/merge_single_qubit_gates_test.py,sha256=O0my-DZ_KdBZn1ACf_TDgdlsYdf4b46C_6ov6vWJHBM,9947
|
|
1069
1069
|
cirq/transformers/noise_adding.py,sha256=UPqLAqXxeDkj0HeYGhFE6oCKGRdT7mQOA60UbUH9zl4,4440
|
|
1070
1070
|
cirq/transformers/noise_adding_test.py,sha256=8bTcxE4oiqmZ3H1QJhjP_VImdBVpmdI1b9dxQ-Mz-Pk,2135
|
|
1071
1071
|
cirq/transformers/optimize_for_target_gateset.py,sha256=Kawt_ltBP7DX0Wo-f4U6_lEDGfSfCDYU_Qj5mvHdM7k,7229
|
|
@@ -1209,8 +1209,8 @@ cirq/work/sampler.py,sha256=sW0RhIelGABAKbqTM58shwyyCPgf86JIv9IGdJe__js,19186
|
|
|
1209
1209
|
cirq/work/sampler_test.py,sha256=mdk1J-WrvbPUYhY41VhWf9_te4DnXr_XMPcugWwc4-I,13281
|
|
1210
1210
|
cirq/work/zeros_sampler.py,sha256=8_Ne6dBkDANtTZuql7Eb0Qg_E_P3-_gu-ybFzxTbKAQ,2356
|
|
1211
1211
|
cirq/work/zeros_sampler_test.py,sha256=JIkpBBFPJe5Ba4142vzogyWyboG1Q1ZAm0UVGgOoZn8,3279
|
|
1212
|
-
cirq_core-1.5.0.
|
|
1213
|
-
cirq_core-1.5.0.
|
|
1214
|
-
cirq_core-1.5.0.
|
|
1215
|
-
cirq_core-1.5.0.
|
|
1216
|
-
cirq_core-1.5.0.
|
|
1212
|
+
cirq_core-1.5.0.dev20250407210732.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
1213
|
+
cirq_core-1.5.0.dev20250407210732.dist-info/METADATA,sha256=sro4XuCo8p2N2qcMWQCqv2nEy8DaboIXqxZGtyTBk3M,4584
|
|
1214
|
+
cirq_core-1.5.0.dev20250407210732.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
1215
|
+
cirq_core-1.5.0.dev20250407210732.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
|
|
1216
|
+
cirq_core-1.5.0.dev20250407210732.dist-info/RECORD,,
|
{cirq_core-1.5.0.dev20250407181219.dist-info → cirq_core-1.5.0.dev20250407210732.dist-info}/LICENSE
RENAMED
|
File without changes
|
{cirq_core-1.5.0.dev20250407181219.dist-info → cirq_core-1.5.0.dev20250407210732.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|