cirq-core 1.6.0.dev20250507172716__py3-none-any.whl → 1.6.0.dev20250507223949__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/contrib/paulistring/clifford_optimize.py +2 -2
- cirq/contrib/paulistring/recombine.py +1 -1
- cirq/contrib/paulistring/separate.py +5 -4
- cirq/ops/pauli_string.py +3 -4
- cirq/ops/pauli_string_phasor.py +20 -3
- cirq/ops/pauli_string_phasor_test.py +2 -5
- cirq/ops/pauli_string_test.py +0 -147
- {cirq_core-1.6.0.dev20250507172716.dist-info → cirq_core-1.6.0.dev20250507223949.dist-info}/METADATA +1 -1
- {cirq_core-1.6.0.dev20250507172716.dist-info → cirq_core-1.6.0.dev20250507223949.dist-info}/RECORD +14 -14
- {cirq_core-1.6.0.dev20250507172716.dist-info → cirq_core-1.6.0.dev20250507223949.dist-info}/WHEEL +0 -0
- {cirq_core-1.6.0.dev20250507172716.dist-info → cirq_core-1.6.0.dev20250507223949.dist-info}/licenses/LICENSE +0 -0
- {cirq_core-1.6.0.dev20250507172716.dist-info → cirq_core-1.6.0.dev20250507223949.dist-info}/top_level.txt +0 -0
cirq/_version.py
CHANGED
cirq/_version_test.py
CHANGED
|
@@ -65,7 +65,7 @@ def clifford_optimized_circuit(circuit: circuits.Circuit, atol: float = 1e-8) ->
|
|
|
65
65
|
furthest_i = i
|
|
66
66
|
break
|
|
67
67
|
if cont_cond == CONTINUE:
|
|
68
|
-
modified_op = modified_op.
|
|
68
|
+
modified_op = modified_op.conjugated_by(protocols.inverse(op))
|
|
69
69
|
num_passed_over += 1
|
|
70
70
|
if len(modified_op.pauli_string) == 1:
|
|
71
71
|
furthest_op = modified_op
|
|
@@ -122,7 +122,7 @@ def clifford_optimized_circuit(circuit: circuits.Circuit, atol: float = 1e-8) ->
|
|
|
122
122
|
all_ops.insert(merge_i + 1, part_cliff_gate(qubit))
|
|
123
123
|
elif isinstance(other_op, ops.PauliStringPhasor):
|
|
124
124
|
# Pass over a non-Clifford gate
|
|
125
|
-
mod_op = other_op.
|
|
125
|
+
mod_op = other_op.conjugated_by([part_cliff_gate(qubit)])
|
|
126
126
|
all_ops[merge_i] = mod_op
|
|
127
127
|
all_ops.insert(merge_i + 1, part_cliff_gate(qubit))
|
|
128
128
|
elif merge_i > start_i + 1 and num_passed > 0:
|
|
@@ -53,7 +53,7 @@ def _sorted_best_string_placements(
|
|
|
53
53
|
):
|
|
54
54
|
# This is as far through as this Pauli string can move
|
|
55
55
|
break
|
|
56
|
-
string_op = string_op.
|
|
56
|
+
string_op = string_op.conjugated_by(protocols.inverse(out_op))
|
|
57
57
|
curr = (string_op, i + 1, possible_node)
|
|
58
58
|
if sort_key(curr) > sort_key(node_max):
|
|
59
59
|
node_max = curr
|
|
@@ -89,8 +89,9 @@ def pauli_string_half(circuit: circuits.Circuit) -> circuits.Circuit:
|
|
|
89
89
|
|
|
90
90
|
|
|
91
91
|
def _pull_non_clifford_before(circuit: circuits.Circuit) -> Iterator[ops.OP_TREE]:
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
|
|
93
|
+
def _iter_ops_range(moment_end):
|
|
94
|
+
for i in range(moment_end):
|
|
94
95
|
moment = circuit[i]
|
|
95
96
|
for op in moment.operations:
|
|
96
97
|
if not isinstance(op, ops.PauliStringPhasor):
|
|
@@ -99,5 +100,5 @@ def _pull_non_clifford_before(circuit: circuits.Circuit) -> Iterator[ops.OP_TREE
|
|
|
99
100
|
for i, moment in enumerate(circuit):
|
|
100
101
|
for op in moment.operations:
|
|
101
102
|
if isinstance(op, ops.PauliStringPhasor):
|
|
102
|
-
ops_to_cross =
|
|
103
|
-
yield op.
|
|
103
|
+
ops_to_cross = _iter_ops_range(i)
|
|
104
|
+
yield op.conjugated_by(ops_to_cross)
|
cirq/ops/pauli_string.py
CHANGED
|
@@ -45,6 +45,7 @@ import numpy as np
|
|
|
45
45
|
import sympy
|
|
46
46
|
|
|
47
47
|
from cirq import _compat, linalg, protocols, qis, value
|
|
48
|
+
from cirq._compat import deprecated
|
|
48
49
|
from cirq._doc import document
|
|
49
50
|
from cirq._import import LazyLoader
|
|
50
51
|
from cirq.ops import (
|
|
@@ -1070,9 +1071,10 @@ class PauliString(raw_types.Operation, Generic[TKey]):
|
|
|
1070
1071
|
"""
|
|
1071
1072
|
return self.conjugated_by(ops)
|
|
1072
1073
|
|
|
1074
|
+
@deprecated(deadline="v2.0", fix="Use conjuagetd_by()/before()/after() instead.")
|
|
1073
1075
|
def pass_operations_over(
|
|
1074
1076
|
self, ops: Iterable[cirq.Operation], after_to_before: bool = False
|
|
1075
|
-
) -> PauliString:
|
|
1077
|
+
) -> PauliString: # pragma: no cover
|
|
1076
1078
|
"""Determines how the Pauli string changes when conjugated by Cliffords.
|
|
1077
1079
|
|
|
1078
1080
|
The output and input pauli strings are related by a circuit equivalence.
|
|
@@ -1099,9 +1101,6 @@ class PauliString(raw_types.Operation, Generic[TKey]):
|
|
|
1099
1101
|
pauli string, instead of before (and so are moving in the
|
|
1100
1102
|
opposite direction).
|
|
1101
1103
|
"""
|
|
1102
|
-
# TODO(#6946): deprecate this method.
|
|
1103
|
-
# Note: This method is supposed to be replaced by conjugated_by()
|
|
1104
|
-
# (see #2351 for details).
|
|
1105
1104
|
if after_to_before:
|
|
1106
1105
|
return self.after(ops)
|
|
1107
1106
|
|
cirq/ops/pauli_string_phasor.py
CHANGED
|
@@ -30,7 +30,7 @@ from typing import (
|
|
|
30
30
|
import sympy
|
|
31
31
|
|
|
32
32
|
from cirq import protocols, value
|
|
33
|
-
from cirq._compat import proper_repr
|
|
33
|
+
from cirq._compat import deprecated, proper_repr
|
|
34
34
|
from cirq.ops import (
|
|
35
35
|
common_gates,
|
|
36
36
|
dense_pauli_string as dps,
|
|
@@ -199,9 +199,21 @@ class PauliStringPhasor(gate_operation.GateOperation):
|
|
|
199
199
|
syms = tuple(sym(qubit) for qubit in qubits)
|
|
200
200
|
return protocols.CircuitDiagramInfo(wire_symbols=syms, exponent=self.exponent_relative)
|
|
201
201
|
|
|
202
|
+
def conjugated_by(self, clifford: 'cirq.OP_TREE') -> 'PauliStringPhasor':
|
|
203
|
+
r"""Returns the Pauli string conjugated by a clifford operation.
|
|
204
|
+
|
|
205
|
+
The PauliStringPhasor $P$ conjugated by the Clifford operation $C$ is
|
|
206
|
+
$C^\dagger P C$.
|
|
207
|
+
"""
|
|
208
|
+
new_pauli_string: ps.PauliString = self.pauli_string.conjugated_by(clifford)
|
|
209
|
+
pp = self.exponent_pos
|
|
210
|
+
pn = self.exponent_neg
|
|
211
|
+
return PauliStringPhasor(new_pauli_string, exponent_pos=pp, exponent_neg=pn)
|
|
212
|
+
|
|
213
|
+
@deprecated(deadline="v2.0", fix="Use conjuagetd_by() instead.")
|
|
202
214
|
def pass_operations_over(
|
|
203
215
|
self, ops: Iterable[raw_types.Operation], after_to_before: bool = False
|
|
204
|
-
) -> PauliStringPhasor:
|
|
216
|
+
) -> PauliStringPhasor: # pragma: no cover
|
|
205
217
|
"""Determines how the Pauli phasor changes when conjugated by Cliffords.
|
|
206
218
|
|
|
207
219
|
The output and input pauli phasors are related by a circuit equivalence.
|
|
@@ -228,7 +240,12 @@ class PauliStringPhasor(gate_operation.GateOperation):
|
|
|
228
240
|
pauli string, instead of before (and so are moving in the
|
|
229
241
|
opposite direction).
|
|
230
242
|
"""
|
|
231
|
-
new_pauli_string =
|
|
243
|
+
new_pauli_string: ps.PauliString = ps.PauliString()
|
|
244
|
+
if after_to_before:
|
|
245
|
+
new_pauli_string = self.pauli_string.after(ops)
|
|
246
|
+
else:
|
|
247
|
+
all_ops = list(op_tree.flatten_to_ops(ops))
|
|
248
|
+
new_pauli_string = self.pauli_string.before(all_ops[::-1])
|
|
232
249
|
pp = self.exponent_pos
|
|
233
250
|
pn = self.exponent_neg
|
|
234
251
|
return PauliStringPhasor(new_pauli_string, exponent_pos=pp, exponent_neg=pn)
|
|
@@ -155,7 +155,7 @@ def test_consistent():
|
|
|
155
155
|
cirq.testing.assert_implements_consistent_protocols(p)
|
|
156
156
|
|
|
157
157
|
|
|
158
|
-
def
|
|
158
|
+
def test_conjugated_by():
|
|
159
159
|
q0, q1 = _make_qubits(2)
|
|
160
160
|
op = cirq.SingleQubitCliffordGate.from_double_map(
|
|
161
161
|
{cirq.Z: (cirq.X, False), cirq.X: (cirq.Z, False)}
|
|
@@ -164,10 +164,7 @@ def test_pass_operations_over():
|
|
|
164
164
|
ps_after = cirq.PauliString({q0: cirq.Z, q1: cirq.Y}, -1)
|
|
165
165
|
before = cirq.PauliStringPhasor(ps_before, exponent_neg=0.1)
|
|
166
166
|
after = cirq.PauliStringPhasor(ps_after, exponent_neg=0.1)
|
|
167
|
-
assert before.
|
|
168
|
-
assert (
|
|
169
|
-
after.pass_operations_over([op], after_to_before=True).pauli_string == before.pauli_string
|
|
170
|
-
)
|
|
167
|
+
assert before.conjugated_by(op).pauli_string == after.pauli_string
|
|
171
168
|
|
|
172
169
|
|
|
173
170
|
def test_extrapolate_effect():
|
cirq/ops/pauli_string_test.py
CHANGED
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
|
|
15
15
|
import itertools
|
|
16
16
|
import math
|
|
17
|
-
from typing import List
|
|
18
17
|
|
|
19
18
|
import numpy as np
|
|
20
19
|
import pytest
|
|
@@ -723,118 +722,6 @@ def test_to_z_basis_ops_product_state():
|
|
|
723
722
|
)
|
|
724
723
|
|
|
725
724
|
|
|
726
|
-
def _assert_pass_over(ops: List[cirq.Operation], before: cirq.PauliString, after: cirq.PauliString):
|
|
727
|
-
assert before.pass_operations_over(ops[::-1]) == after
|
|
728
|
-
assert after.pass_operations_over(ops, after_to_before=True) == before
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
@pytest.mark.parametrize('shift,sign', itertools.product(range(3), (-1, +1)))
|
|
732
|
-
def test_pass_operations_over_single(shift: int, sign: int):
|
|
733
|
-
q0, q1 = _make_qubits(2)
|
|
734
|
-
X, Y, Z = (cirq.Pauli.by_relative_index(pauli, shift) for pauli in (cirq.X, cirq.Y, cirq.Z))
|
|
735
|
-
|
|
736
|
-
op0 = cirq.SingleQubitCliffordGate.from_pauli(Y)(q1)
|
|
737
|
-
ps_before: cirq.PauliString[cirq.Qid] = cirq.PauliString({q0: X}, sign)
|
|
738
|
-
ps_after = ps_before
|
|
739
|
-
_assert_pass_over([op0], ps_before, ps_after)
|
|
740
|
-
|
|
741
|
-
op0 = cirq.SingleQubitCliffordGate.from_pauli(X)(q0)
|
|
742
|
-
op1 = cirq.SingleQubitCliffordGate.from_pauli(Y)(q1)
|
|
743
|
-
ps_before = cirq.PauliString({q0: X, q1: Y}, sign)
|
|
744
|
-
ps_after = ps_before
|
|
745
|
-
_assert_pass_over([op0, op1], ps_before, ps_after)
|
|
746
|
-
|
|
747
|
-
op0 = cirq.SingleQubitCliffordGate.from_double_map({Z: (X, False), X: (Z, False)})(q0)
|
|
748
|
-
ps_before = cirq.PauliString({q0: X, q1: Y}, sign)
|
|
749
|
-
ps_after = cirq.PauliString({q0: Z, q1: Y}, sign)
|
|
750
|
-
_assert_pass_over([op0], ps_before, ps_after)
|
|
751
|
-
|
|
752
|
-
op1 = cirq.SingleQubitCliffordGate.from_pauli(X)(q1)
|
|
753
|
-
ps_before = cirq.PauliString({q0: X, q1: Y}, sign)
|
|
754
|
-
ps_after = -ps_before
|
|
755
|
-
_assert_pass_over([op1], ps_before, ps_after)
|
|
756
|
-
|
|
757
|
-
ps_after = cirq.PauliString({q0: Z, q1: Y}, -sign)
|
|
758
|
-
_assert_pass_over([op0, op1], ps_before, ps_after)
|
|
759
|
-
|
|
760
|
-
op0 = cirq.SingleQubitCliffordGate.from_pauli(Z, True)(q0)
|
|
761
|
-
op1 = cirq.SingleQubitCliffordGate.from_pauli(X, True)(q0)
|
|
762
|
-
ps_before = cirq.PauliString({q0: X}, sign)
|
|
763
|
-
ps_after = cirq.PauliString({q0: Y}, -sign)
|
|
764
|
-
_assert_pass_over([op0, op1], ps_before, ps_after)
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
@pytest.mark.parametrize(
|
|
768
|
-
'shift,t_or_f1, t_or_f2,neg', itertools.product(range(3), *((True, False),) * 3)
|
|
769
|
-
)
|
|
770
|
-
def test_pass_operations_over_double(shift: int, t_or_f1: bool, t_or_f2: bool, neg: bool):
|
|
771
|
-
sign = -1 if neg else +1
|
|
772
|
-
q0, q1, q2 = _make_qubits(3)
|
|
773
|
-
X, Y, Z = (cirq.Pauli.by_relative_index(pauli, shift) for pauli in (cirq.X, cirq.Y, cirq.Z))
|
|
774
|
-
|
|
775
|
-
op0 = cirq.PauliInteractionGate(Z, t_or_f1, X, t_or_f2)(q0, q1)
|
|
776
|
-
ps_before = cirq.PauliString(qubit_pauli_map={q0: Z, q2: Y}, coefficient=sign)
|
|
777
|
-
ps_after = cirq.PauliString(qubit_pauli_map={q0: Z, q2: Y}, coefficient=sign)
|
|
778
|
-
assert_conjugation(ps_before, op0, ps_after, True)
|
|
779
|
-
_assert_pass_over([op0], ps_before, ps_after)
|
|
780
|
-
|
|
781
|
-
op0 = cirq.PauliInteractionGate(Y, t_or_f1, X, t_or_f2)(q0, q1)
|
|
782
|
-
ps_before = cirq.PauliString({q0: Z, q2: Y}, sign)
|
|
783
|
-
ps_after = cirq.PauliString({q0: Z, q2: Y, q1: X}, -sign if t_or_f2 else sign)
|
|
784
|
-
assert_conjugation(ps_before, op0, ps_after, True)
|
|
785
|
-
_assert_pass_over([op0], ps_before, ps_after)
|
|
786
|
-
|
|
787
|
-
op0 = cirq.PauliInteractionGate(Z, t_or_f1, X, t_or_f2)(q0, q1)
|
|
788
|
-
ps_before = cirq.PauliString({q0: Z, q1: Y}, sign)
|
|
789
|
-
ps_after = cirq.PauliString({q1: Y}, -sign if t_or_f1 else sign)
|
|
790
|
-
assert_conjugation(ps_before, op0, ps_after, True)
|
|
791
|
-
_assert_pass_over([op0], ps_before, ps_after)
|
|
792
|
-
|
|
793
|
-
op0 = cirq.PauliInteractionGate(Y, t_or_f1, X, t_or_f2)(q0, q1)
|
|
794
|
-
ps_before = cirq.PauliString({q0: Z, q1: Y}, sign)
|
|
795
|
-
ps_after = cirq.PauliString({q0: X, q1: Z}, -1 if neg ^ t_or_f1 ^ t_or_f2 else +1)
|
|
796
|
-
assert_conjugation(ps_before, op0, ps_after, True)
|
|
797
|
-
_assert_pass_over([op0], ps_before, ps_after)
|
|
798
|
-
|
|
799
|
-
op0 = cirq.PauliInteractionGate(X, t_or_f1, X, t_or_f2)(q0, q1)
|
|
800
|
-
ps_before = cirq.PauliString({q0: Z, q1: Y}, sign)
|
|
801
|
-
ps_after = cirq.PauliString({q0: Y, q1: Z}, +1 if neg ^ t_or_f1 ^ t_or_f2 else -1)
|
|
802
|
-
assert_conjugation(ps_before, op0, ps_after, True)
|
|
803
|
-
_assert_pass_over([op0], ps_before, ps_after)
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
def test_pass_operations_over_cz():
|
|
807
|
-
q0, q1 = _make_qubits(2)
|
|
808
|
-
op0 = cirq.CZ(q0, q1)
|
|
809
|
-
ps_before = cirq.PauliString({q0: cirq.Z, q1: cirq.Y})
|
|
810
|
-
ps_after = cirq.PauliString({q1: cirq.Y})
|
|
811
|
-
_assert_pass_over([op0], ps_before, ps_after)
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
def test_pass_operations_over_no_common_qubits():
|
|
815
|
-
class ExampleGate(cirq.testing.SingleQubitGate):
|
|
816
|
-
|
|
817
|
-
def _decompose_(self, qubits):
|
|
818
|
-
return cirq.X(qubits[0])
|
|
819
|
-
|
|
820
|
-
q0, q1 = _make_qubits(2)
|
|
821
|
-
op0 = ExampleGate()(q1)
|
|
822
|
-
ps_before = cirq.PauliString({q0: cirq.Z})
|
|
823
|
-
ps_after = cirq.PauliString({q0: cirq.Z})
|
|
824
|
-
_assert_pass_over([op0], ps_before, ps_after)
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
def test_pass_unsupported_operations_over():
|
|
828
|
-
(q0,) = _make_qubits(1)
|
|
829
|
-
pauli_string = cirq.PauliString({q0: cirq.X})
|
|
830
|
-
with pytest.raises(
|
|
831
|
-
ValueError,
|
|
832
|
-
match='Clifford Gate can only be constructed from the operations'
|
|
833
|
-
' that has stabilizer effect.',
|
|
834
|
-
):
|
|
835
|
-
pauli_string.pass_operations_over([cirq.T(q0)])
|
|
836
|
-
|
|
837
|
-
|
|
838
725
|
def test_with_qubits():
|
|
839
726
|
old_qubits = cirq.LineQubit.range(9)
|
|
840
727
|
new_qubits = cirq.LineQubit.range(9, 18)
|
|
@@ -1637,40 +1524,6 @@ def test_conjugated_by_ordering():
|
|
|
1637
1524
|
assert out1 == out2 == cirq.X(a) * cirq.Z(b)
|
|
1638
1525
|
|
|
1639
1526
|
|
|
1640
|
-
def test_pass_operations_over_ordering():
|
|
1641
|
-
class OrderSensitiveGate(cirq.Gate):
|
|
1642
|
-
def num_qubits(self):
|
|
1643
|
-
return 2
|
|
1644
|
-
|
|
1645
|
-
def _decompose_(self, qubits):
|
|
1646
|
-
return [cirq.Y(qubits[0]) ** -0.5, cirq.CNOT(*qubits)]
|
|
1647
|
-
|
|
1648
|
-
a, b = cirq.LineQubit.range(2)
|
|
1649
|
-
inp = cirq.Z(b)
|
|
1650
|
-
out1 = inp.pass_operations_over(OrderSensitiveGate().on(a, b))
|
|
1651
|
-
out2 = inp.pass_operations_over([cirq.CNOT(a, b), cirq.Y(a) ** -0.5])
|
|
1652
|
-
out3 = inp.pass_operations_over([cirq.CNOT(a, b)]).pass_operations_over([cirq.Y(a) ** -0.5])
|
|
1653
|
-
assert out1 == out2 == out3 == cirq.X(a) * cirq.Z(b)
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
def test_pass_operations_over_ordering_reversed():
|
|
1657
|
-
class OrderSensitiveGate(cirq.Gate):
|
|
1658
|
-
def num_qubits(self):
|
|
1659
|
-
return 2
|
|
1660
|
-
|
|
1661
|
-
def _decompose_(self, qubits):
|
|
1662
|
-
return [cirq.Y(qubits[0]) ** -0.5, cirq.CNOT(*qubits)]
|
|
1663
|
-
|
|
1664
|
-
a, b = cirq.LineQubit.range(2)
|
|
1665
|
-
inp = cirq.X(a) * cirq.Z(b)
|
|
1666
|
-
out1 = inp.pass_operations_over(OrderSensitiveGate().on(a, b), after_to_before=True)
|
|
1667
|
-
out2 = inp.pass_operations_over([cirq.Y(a) ** -0.5, cirq.CNOT(a, b)], after_to_before=True)
|
|
1668
|
-
out3 = inp.pass_operations_over([cirq.Y(a) ** -0.5], after_to_before=True).pass_operations_over(
|
|
1669
|
-
[cirq.CNOT(a, b)], after_to_before=True
|
|
1670
|
-
)
|
|
1671
|
-
assert out1 == out2 == out3 == cirq.Z(b)
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
1527
|
def test_pretty_print():
|
|
1675
1528
|
a, b, c = cirq.LineQubit.range(3)
|
|
1676
1529
|
result = cirq.PauliString({a: 'x', b: 'y', c: 'z'})
|
{cirq_core-1.6.0.dev20250507172716.dist-info → cirq_core-1.6.0.dev20250507223949.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.dev20250507223949
|
|
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.dev20250507172716.dist-info → cirq_core-1.6.0.dev20250507223949.dist-info}/RECORD
RENAMED
|
@@ -4,8 +4,8 @@ cirq/_compat_test.py,sha256=t51ZXkEuomg1SMI871Ws-5pk68DGBsAf2TGNjVXtZ8I,34755
|
|
|
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=ej5Fg_x84YN77p1cdtLyrTatULWldkQMY3wr9uVW6Ao,1206
|
|
8
|
+
cirq/_version_test.py,sha256=SLvxISQ8V1GpwYAJkTGScRjoLHudE0Z08eAlyTEUacU,147
|
|
9
9
|
cirq/conftest.py,sha256=X7yLFL8GLhg2CjPw0hp5e_dGASfvHx1-QT03aUbhKJw,1168
|
|
10
10
|
cirq/json_resolver_cache.py,sha256=-4KqEEYb6aps-seafnFTHTp3SZc0D8mr4O-pCKIajn8,13653
|
|
11
11
|
cirq/py.typed,sha256=VFSlmh_lNwnaXzwY-ZuW-C2Ws5PkuDoVgBdNCs0jXJE,63
|
|
@@ -88,7 +88,7 @@ cirq/contrib/noise_models/__init__.py,sha256=O3wvaQ6kyNZzwsCnMMZvr2EyS76LpO9xnVZ
|
|
|
88
88
|
cirq/contrib/noise_models/noise_models.py,sha256=i1hCLuI4c6DLMQzBenK1ghAvfnrGKCYgow7tl8Pjf5Q,7674
|
|
89
89
|
cirq/contrib/noise_models/noise_models_test.py,sha256=nELHWYWbRp6RCurjTSEAumpZPMY2gNN3S4Mhho3pwJ0,10488
|
|
90
90
|
cirq/contrib/paulistring/__init__.py,sha256=1k2_MYLTMPn8AFoJvSgpN-F-6xgmDjKXRhb-FdDsFoQ,1761
|
|
91
|
-
cirq/contrib/paulistring/clifford_optimize.py,sha256=
|
|
91
|
+
cirq/contrib/paulistring/clifford_optimize.py,sha256=bdS4pXjBxcJhFiL_jsVeS4Odcd-D02FtyxLVVsWi4LU,7830
|
|
92
92
|
cirq/contrib/paulistring/clifford_optimize_test.py,sha256=Q8REpwDRNEHVYl3yxfzxN7c5dsQLhZSkk842xaKvFrw,3889
|
|
93
93
|
cirq/contrib/paulistring/clifford_target_gateset.py,sha256=7TyfG3ieJluz8AziQKFCT1EgRKLzWu2aoUGAEcLblGw,6369
|
|
94
94
|
cirq/contrib/paulistring/clifford_target_gateset_test.py,sha256=Q_Zqbfp6yVzLabpKLnhIFCnGBaCgsgiABXCuAixwySQ,8668
|
|
@@ -100,9 +100,9 @@ cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation.py,sha
|
|
|
100
100
|
cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation_test.py,sha256=yPFWcZiVkUcwwpjQQsT135JPmj9p5KOS9urzNqUWAfQ,35501
|
|
101
101
|
cirq/contrib/paulistring/pauli_string_optimize.py,sha256=QhowjgeI0vXg_XvF7FmpUgGgDJP9xCbsYS8_womA4Ho,2903
|
|
102
102
|
cirq/contrib/paulistring/pauli_string_optimize_test.py,sha256=2wSpV7EVwuuK8wI_Pp31V4vCIkq-CEmQz3EjaFWi8fM,2895
|
|
103
|
-
cirq/contrib/paulistring/recombine.py,sha256=
|
|
103
|
+
cirq/contrib/paulistring/recombine.py,sha256=Q_0RCTfg5i7WaqoynimpYXkuSuE2BIov8jYcan8V1Gk,4343
|
|
104
104
|
cirq/contrib/paulistring/recombine_test.py,sha256=ClvleI2hVVBOA7sbi3yTth-fErJQYYCw-6ebAvXt-Ns,1915
|
|
105
|
-
cirq/contrib/paulistring/separate.py,sha256=
|
|
105
|
+
cirq/contrib/paulistring/separate.py,sha256=dtGwqXxEiRCxo21wV8uAlA1E3GKQGxr3FuQWqy-jTdM,3926
|
|
106
106
|
cirq/contrib/paulistring/separate_test.py,sha256=FzR78MSHDhNJxizbXreK6u3BeYhT7xn7W1QyHfEZ34E,1267
|
|
107
107
|
cirq/contrib/qasm_import/__init__.py,sha256=RKX0vGDC2Pe5rH5rM4ClXdvtrAU16ePFImQpiJtJVNo,744
|
|
108
108
|
cirq/contrib/qasm_import/_lexer.py,sha256=RkrbOoT5flW_NEzdxRgv4nbmJ1mWJWlENPf7aPAVM9Y,2929
|
|
@@ -339,12 +339,12 @@ cirq/ops/pauli_interaction_gate.py,sha256=hGYmC1i8UCDDJ6e3ML6M8GeW-byq_dLoNv5UvB
|
|
|
339
339
|
cirq/ops/pauli_interaction_gate_test.py,sha256=adnIIgCvFzO-inNaN77HER-WJ0hg6L63_HfiT60oV3M,4543
|
|
340
340
|
cirq/ops/pauli_measurement_gate.py,sha256=R64b1zbnwecKTkZHXzOcro21OubDu-wibRk5ppwFfLk,7217
|
|
341
341
|
cirq/ops/pauli_measurement_gate_test.py,sha256=acKmYvwSQniIX2FtOCVrIPRPmyUBeV4uNUFmyShJixE,6778
|
|
342
|
-
cirq/ops/pauli_string.py,sha256=
|
|
343
|
-
cirq/ops/pauli_string_phasor.py,sha256=
|
|
344
|
-
cirq/ops/pauli_string_phasor_test.py,sha256=
|
|
342
|
+
cirq/ops/pauli_string.py,sha256=OUqhn_gdf3RkYM3G1amiPaHMU89kOUBCSA3AFaWjGnI,66771
|
|
343
|
+
cirq/ops/pauli_string_phasor.py,sha256=WZTsn6ed5H0M3io7ErMrPjFYP9o5huWN63zuabR6PYw,18280
|
|
344
|
+
cirq/ops/pauli_string_phasor_test.py,sha256=R6YLz66Q1Mh2BblMVmXpdR32iNRy_TK1mPENfbzz3G4,27731
|
|
345
345
|
cirq/ops/pauli_string_raw_types.py,sha256=200Epv_YmR33YVEL8wT198S04GAruyG7I0xVtVk8oqk,2269
|
|
346
346
|
cirq/ops/pauli_string_raw_types_test.py,sha256=SZPluslZPGffPq93F5apESBygWZ2cj7BEX6dQuawRQE,2648
|
|
347
|
-
cirq/ops/pauli_string_test.py,sha256=
|
|
347
|
+
cirq/ops/pauli_string_test.py,sha256=t4nrqnunT412KzOKac5Wb9NdiZGoR8exWy31GmFXmSk,72831
|
|
348
348
|
cirq/ops/pauli_sum_exponential.py,sha256=o-OsJ6SfsYNnMdSTpAaL1uauTKh9SLL3oLLoh7y4IV0,4868
|
|
349
349
|
cirq/ops/pauli_sum_exponential_test.py,sha256=Vi2-0zDUCS4XtFn9dfmkgh9dH2ncuKYOiQLCZPoLMkg,5369
|
|
350
350
|
cirq/ops/permutation_gate.py,sha256=uLd0qZgT4eDKO22Me9HGSDD7Hnf1Ol3ddkwJ7ZghL3U,4224
|
|
@@ -1212,8 +1212,8 @@ cirq/work/sampler.py,sha256=b7O3B8bc77KQb8ReLx7qeF8owP1Qwb5_I-RwC6-M_C8,19118
|
|
|
1212
1212
|
cirq/work/sampler_test.py,sha256=TBJm3gepuOURwklJTXNdqj0thvdqKUvrZwZqdytJxNY,13313
|
|
1213
1213
|
cirq/work/zeros_sampler.py,sha256=vHCfqkXmUcPkaDuKHlY-UQ71dUHVroEtm_XW51mZpHs,2390
|
|
1214
1214
|
cirq/work/zeros_sampler_test.py,sha256=TR3AXYSfg3ETpeaEtrmE-GgZsPtfZkUZ36kyH9JquJk,3313
|
|
1215
|
-
cirq_core-1.6.0.
|
|
1216
|
-
cirq_core-1.6.0.
|
|
1217
|
-
cirq_core-1.6.0.
|
|
1218
|
-
cirq_core-1.6.0.
|
|
1219
|
-
cirq_core-1.6.0.
|
|
1215
|
+
cirq_core-1.6.0.dev20250507223949.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
1216
|
+
cirq_core-1.6.0.dev20250507223949.dist-info/METADATA,sha256=N8AvAV22NN2JNnFf298hHfQGPHnVd4I2-Yz1_DamQYk,4908
|
|
1217
|
+
cirq_core-1.6.0.dev20250507223949.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
|
|
1218
|
+
cirq_core-1.6.0.dev20250507223949.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
|
|
1219
|
+
cirq_core-1.6.0.dev20250507223949.dist-info/RECORD,,
|
{cirq_core-1.6.0.dev20250507172716.dist-info → cirq_core-1.6.0.dev20250507223949.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|