bloqade-circuit 0.4.4__py3-none-any.whl → 0.5.0__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 bloqade-circuit might be problematic. Click here for more details.
- bloqade/cirq_utils/__init__.py +7 -0
- bloqade/cirq_utils/lineprog.py +295 -0
- bloqade/cirq_utils/parallelize.py +400 -0
- bloqade/pyqrack/squin/op.py +7 -2
- bloqade/pyqrack/squin/runtime.py +4 -2
- bloqade/qasm2/dialects/expr/stmts.py +2 -20
- bloqade/qasm2/parse/lowering.py +1 -0
- bloqade/qasm2/passes/parallel.py +18 -0
- bloqade/qasm2/rewrite/__init__.py +1 -0
- bloqade/qasm2/rewrite/parallel_to_glob.py +82 -0
- bloqade/squin/__init__.py +1 -0
- bloqade/squin/_typeinfer.py +20 -0
- bloqade/squin/analysis/nsites/impls.py +6 -1
- bloqade/squin/cirq/__init__.py +74 -9
- bloqade/squin/cirq/emit/noise.py +49 -0
- bloqade/squin/cirq/emit/runtime.py +9 -1
- bloqade/squin/cirq/lowering.py +46 -27
- bloqade/squin/noise/_wrapper.py +9 -2
- bloqade/squin/noise/rewrite.py +3 -3
- bloqade/squin/op/__init__.py +1 -0
- bloqade/squin/op/_wrapper.py +4 -0
- bloqade/squin/op/stmts.py +20 -2
- bloqade/squin/qubit.py +8 -5
- bloqade/squin/rewrite/__init__.py +1 -0
- bloqade/squin/rewrite/canonicalize.py +60 -0
- bloqade/squin/rewrite/desugar.py +52 -5
- bloqade/squin/types.py +8 -0
- bloqade/squin/wire.py +91 -5
- bloqade/stim/__init__.py +1 -0
- bloqade/stim/_wrappers.py +4 -0
- bloqade/stim/dialects/noise/emit.py +1 -0
- bloqade/stim/dialects/noise/stmts.py +5 -0
- bloqade/stim/passes/squin_to_stim.py +16 -1
- bloqade/stim/rewrite/__init__.py +1 -0
- bloqade/stim/rewrite/qubit_to_stim.py +10 -6
- bloqade/stim/rewrite/squin_noise.py +120 -0
- bloqade/stim/rewrite/util.py +44 -9
- bloqade/stim/rewrite/wire_to_stim.py +8 -3
- {bloqade_circuit-0.4.4.dist-info → bloqade_circuit-0.5.0.dist-info}/METADATA +4 -2
- {bloqade_circuit-0.4.4.dist-info → bloqade_circuit-0.5.0.dist-info}/RECORD +42 -33
- {bloqade_circuit-0.4.4.dist-info → bloqade_circuit-0.5.0.dist-info}/WHEEL +0 -0
- {bloqade_circuit-0.4.4.dist-info → bloqade_circuit-0.5.0.dist-info}/licenses/LICENSE +0 -0
bloqade/stim/rewrite/util.py
CHANGED
|
@@ -2,12 +2,12 @@ from kirin import ir
|
|
|
2
2
|
from kirin.dialects import py
|
|
3
3
|
from kirin.rewrite.abc import RewriteResult
|
|
4
4
|
|
|
5
|
-
from bloqade.squin import op, wire, qubit
|
|
5
|
+
from bloqade.squin import op, wire, noise as squin_noise, qubit
|
|
6
6
|
from bloqade.squin.rewrite import AddressAttribute
|
|
7
|
-
from bloqade.stim.dialects import gate, collapse
|
|
7
|
+
from bloqade.stim.dialects import gate, noise as stim_noise, collapse
|
|
8
8
|
from bloqade.analysis.address import AddressReg, AddressWire, AddressQubit, AddressTuple
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
SQUIN_STIM_OP_MAPPING = {
|
|
11
11
|
op.stmts.X: gate.X,
|
|
12
12
|
op.stmts.Y: gate.Y,
|
|
13
13
|
op.stmts.Z: gate.Z,
|
|
@@ -17,6 +17,7 @@ SQUIN_STIM_GATE_MAPPING = {
|
|
|
17
17
|
op.stmts.SqrtY: gate.SqrtY,
|
|
18
18
|
op.stmts.Identity: gate.Identity,
|
|
19
19
|
op.stmts.Reset: collapse.RZ,
|
|
20
|
+
squin_noise.stmts.QubitLoss: stim_noise.QubitLoss,
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
# Squin allows creation of control gates where the gate can be any operator,
|
|
@@ -151,18 +152,52 @@ def rewrite_Control(
|
|
|
151
152
|
stim_stmt = stim_gate(controls=ctrl_qubits, targets=target_qubits)
|
|
152
153
|
|
|
153
154
|
if isinstance(stmt_with_ctrl, (wire.Apply, wire.Broadcast)):
|
|
154
|
-
|
|
155
|
-
# to subsequent statements, remove dependency on the current statement
|
|
156
|
-
for input_wire, output_wire in zip(
|
|
157
|
-
stmt_with_ctrl.inputs, stmt_with_ctrl.results
|
|
158
|
-
):
|
|
159
|
-
output_wire.replace_by(input_wire)
|
|
155
|
+
create_wire_passthrough(stmt_with_ctrl)
|
|
160
156
|
|
|
161
157
|
stmt_with_ctrl.replace_by(stim_stmt)
|
|
162
158
|
|
|
163
159
|
return RewriteResult(has_done_something=True)
|
|
164
160
|
|
|
165
161
|
|
|
162
|
+
def rewrite_QubitLoss(
|
|
163
|
+
stmt: qubit.Apply | qubit.Broadcast | wire.Broadcast | wire.Apply,
|
|
164
|
+
) -> RewriteResult:
|
|
165
|
+
"""
|
|
166
|
+
Rewrite QubitLoss statements to Stim's TrivialError.
|
|
167
|
+
"""
|
|
168
|
+
|
|
169
|
+
squin_loss_op = stmt.operator.owner
|
|
170
|
+
assert isinstance(squin_loss_op, squin_noise.stmts.QubitLoss)
|
|
171
|
+
|
|
172
|
+
qubit_idx_ssas = insert_qubit_idx_after_apply(stmt=stmt)
|
|
173
|
+
if qubit_idx_ssas is None:
|
|
174
|
+
return RewriteResult()
|
|
175
|
+
|
|
176
|
+
stim_loss_stmt = stim_noise.QubitLoss(
|
|
177
|
+
targets=qubit_idx_ssas,
|
|
178
|
+
probs=(squin_loss_op.p,),
|
|
179
|
+
)
|
|
180
|
+
|
|
181
|
+
if isinstance(stmt, (wire.Apply, wire.Broadcast)):
|
|
182
|
+
create_wire_passthrough(stmt)
|
|
183
|
+
|
|
184
|
+
stmt.replace_by(stim_loss_stmt)
|
|
185
|
+
# NoiseChannels are not pure,
|
|
186
|
+
# need to manually delete because
|
|
187
|
+
# DCE won't touch them
|
|
188
|
+
stmt.operator.owner.delete()
|
|
189
|
+
|
|
190
|
+
return RewriteResult(has_done_something=True)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
def create_wire_passthrough(stmt: wire.Apply | wire.Broadcast) -> None:
|
|
194
|
+
|
|
195
|
+
for input_wire, output_wire in zip(stmt.inputs, stmt.results):
|
|
196
|
+
# have to "reroute" the input of these statements to directly plug in
|
|
197
|
+
# to subsequent statements, remove dependency on the current statement
|
|
198
|
+
output_wire.replace_by(input_wire)
|
|
199
|
+
|
|
200
|
+
|
|
166
201
|
def is_measure_result_used(
|
|
167
202
|
stmt: qubit.MeasureQubit | qubit.MeasureQubitList | wire.Measure,
|
|
168
203
|
) -> bool:
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
from kirin import ir
|
|
2
2
|
from kirin.rewrite.abc import RewriteRule, RewriteResult
|
|
3
3
|
|
|
4
|
-
from bloqade.squin import op, wire
|
|
4
|
+
from bloqade.squin import op, wire, noise
|
|
5
5
|
from bloqade.stim.rewrite.util import (
|
|
6
|
-
|
|
6
|
+
SQUIN_STIM_OP_MAPPING,
|
|
7
7
|
rewrite_Control,
|
|
8
|
+
rewrite_QubitLoss,
|
|
8
9
|
insert_qubit_idx_from_wire_ssa,
|
|
9
10
|
)
|
|
10
11
|
|
|
@@ -24,12 +25,16 @@ class SquinWireToStim(RewriteRule):
|
|
|
24
25
|
|
|
25
26
|
# this is an SSAValue, need it to be the actual operator
|
|
26
27
|
applied_op = stmt.operator.owner
|
|
28
|
+
|
|
29
|
+
if isinstance(applied_op, noise.stmts.QubitLoss):
|
|
30
|
+
return rewrite_QubitLoss(stmt)
|
|
31
|
+
|
|
27
32
|
assert isinstance(applied_op, op.stmts.Operator)
|
|
28
33
|
|
|
29
34
|
if isinstance(applied_op, op.stmts.Control):
|
|
30
35
|
return rewrite_Control(stmt)
|
|
31
36
|
|
|
32
|
-
stim_1q_op =
|
|
37
|
+
stim_1q_op = SQUIN_STIM_OP_MAPPING.get(type(applied_op))
|
|
33
38
|
if stim_1q_op is None:
|
|
34
39
|
return RewriteResult()
|
|
35
40
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bloqade-circuit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: The software development toolkit for neutral atom arrays.
|
|
5
5
|
Author-email: Roger-luo <rluo@quera.com>, kaihsin <khwu@quera.com>, weinbe58 <pweinberg@quera.com>, johnzl-777 <jlong@quera.com>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -16,6 +16,7 @@ Requires-Dist: scipy>=1.13.1
|
|
|
16
16
|
Provides-Extra: cirq
|
|
17
17
|
Requires-Dist: cirq-core>=1.4.1; extra == 'cirq'
|
|
18
18
|
Requires-Dist: cirq-core[contrib]>=1.4.1; extra == 'cirq'
|
|
19
|
+
Requires-Dist: qpsolvers[clarabel]>=4.7.0; extra == 'cirq'
|
|
19
20
|
Provides-Extra: pyqrack-cuda
|
|
20
21
|
Requires-Dist: pyqrack-cuda>=1.38.2; extra == 'pyqrack-cuda'
|
|
21
22
|
Provides-Extra: pyqrack-opencl
|
|
@@ -29,7 +30,8 @@ Requires-Dist: stim>=1.15.0; extra == 'stim'
|
|
|
29
30
|
Provides-Extra: vis
|
|
30
31
|
Requires-Dist: ffmpeg>=1.4; extra == 'vis'
|
|
31
32
|
Requires-Dist: matplotlib>=3.9.2; extra == 'vis'
|
|
32
|
-
Requires-Dist: pyqt5>=5.15.11; extra == 'vis'
|
|
33
|
+
Requires-Dist: pyqt5>=5.15.11; (sys_platform == 'darwin') and extra == 'vis'
|
|
34
|
+
Requires-Dist: pyqt5>=5.15.11; (sys_platform == 'linux') and extra == 'vis'
|
|
33
35
|
Requires-Dist: tqdm>=4.66.5; extra == 'vis'
|
|
34
36
|
Description-Content-Type: text/markdown
|
|
35
37
|
|
|
@@ -9,6 +9,9 @@ bloqade/analysis/address/impls.py,sha256=c3FMF2LLkV_fwWaolIRTV7ueXC9qwAR6PUW9kDQ
|
|
|
9
9
|
bloqade/analysis/address/lattice.py,sha256=dUq999feqPoBYkqEXe1hjHOn4TP_bkvKip8fyWQ-2-8,1755
|
|
10
10
|
bloqade/analysis/fidelity/__init__.py,sha256=iJkhoHvCMU9bKxQqgxIWKQWvpqNFRgNBI5DK8-4RAB8,59
|
|
11
11
|
bloqade/analysis/fidelity/analysis.py,sha256=G6JEYc8eeWJ9mwsbUAIzXuU2nrnTU4te41c04xE71gM,3218
|
|
12
|
+
bloqade/cirq_utils/__init__.py,sha256=RZTqtfAviI64lUrA6_XX6Bf83RC8VnKxrFaVx0lcxik,223
|
|
13
|
+
bloqade/cirq_utils/lineprog.py,sha256=JosrhfeOHI9FycUT_sYFj8TBzLpo97TL8zK-Ap2U4eQ,11021
|
|
14
|
+
bloqade/cirq_utils/parallelize.py,sha256=jnvZdA22UOkcIWVVulfhlN95Ha5q2ES-b1ZuQz--gOY,13770
|
|
12
15
|
bloqade/pyqrack/__init__.py,sha256=lonTS-luJkTVujCCtgdZRC12V7FQdoFcozAI-byXwN0,810
|
|
13
16
|
bloqade/pyqrack/base.py,sha256=9z61PaaAFqCBBwkgsDZSr-qr9IQ5OJ_JUvltmJ7Bgls,4407
|
|
14
17
|
bloqade/pyqrack/device.py,sha256=cOdyT1k0b73QbOsEIu5KqxHW2OAWP86fi_3XGPhaWGA,7134
|
|
@@ -23,9 +26,9 @@ bloqade/pyqrack/qasm2/glob.py,sha256=EGe7sh9SuvpRW4V4rFcX6Gf7ot8iyThYbsdPeEBKzYM
|
|
|
23
26
|
bloqade/pyqrack/qasm2/parallel.py,sha256=ITetuXOH2KUDpDOBuFnJoz2DhduvyBC72cOAOOixTaM,1606
|
|
24
27
|
bloqade/pyqrack/qasm2/uop.py,sha256=bLZONsEK15ymFGIQwy7muQv-TX0mvLrECuMp1Y3XTfA,8612
|
|
25
28
|
bloqade/pyqrack/squin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
|
-
bloqade/pyqrack/squin/op.py,sha256=
|
|
29
|
+
bloqade/pyqrack/squin/op.py,sha256=fHBPV6Q3sKj50K34KfnctacZoNQ8iFz4j5k3qTtRfnI,5123
|
|
27
30
|
bloqade/pyqrack/squin/qubit.py,sha256=svQMbsLxv3yjiFMSRc4C7QGllzjtmlSWOsMY1mjTI8Q,2223
|
|
28
|
-
bloqade/pyqrack/squin/runtime.py,sha256=
|
|
31
|
+
bloqade/pyqrack/squin/runtime.py,sha256=BM_xRoTpsRipL_Vt-N5UO-x2Nsgiafw3nwiqiuOeH68,15401
|
|
29
32
|
bloqade/pyqrack/squin/wire.py,sha256=rqlAeU-r_EHOwJMqHrEAxpZ_rKsvUpwGG7MP4BW75Nw,1658
|
|
30
33
|
bloqade/pyqrack/squin/noise/__init__.py,sha256=uXgRQPOrHNRp3k2ff2HD8mheUEaqxZPKEnwV-s4BiV4,31
|
|
31
34
|
bloqade/pyqrack/squin/noise/native.py,sha256=KF4VGzU5Ps92DeLcIDIMsxQQtQ97z_3KUHqBPPkZFaM,2286
|
|
@@ -53,7 +56,7 @@ bloqade/qasm2/dialects/expr/_dialect.py,sha256=yu46u8FX8tTWAlMHv_YIOXZYiAuWYzB7-
|
|
|
53
56
|
bloqade/qasm2/dialects/expr/_emit.py,sha256=GlT1ZuunltKh0wjfevNu5hig74jwxW8JFoI-oQ2GqWA,3270
|
|
54
57
|
bloqade/qasm2/dialects/expr/_from_python.py,sha256=4wB9J0gMRZq1HnMzAjn6sk6qVpS2gWTlIrTZKKGOMQ8,3432
|
|
55
58
|
bloqade/qasm2/dialects/expr/_interp.py,sha256=dQLDcWABpo107BtC6d18L5NmXYlRPPedGtGqlezRWJw,2395
|
|
56
|
-
bloqade/qasm2/dialects/expr/stmts.py,sha256=
|
|
59
|
+
bloqade/qasm2/dialects/expr/stmts.py,sha256=izU70b1mnnciEP8BrZO1ACyMBZy0CeN8sWescn1bQNg,8053
|
|
57
60
|
bloqade/qasm2/dialects/noise/__init__.py,sha256=4YSXTFjt7TiQd0jqMZy2k6pfKbLyTamQlQ--jPTziLQ,512
|
|
58
61
|
bloqade/qasm2/dialects/noise/_dialect.py,sha256=onK6l3wbM0IHwf3WMiWy7pDRQG0DyLTOzplBuj56psA,58
|
|
59
62
|
bloqade/qasm2/dialects/noise/fidelity.py,sha256=Ft-Benmg1mvWYTPE_DkjMZP5-JfmiotIU_WfAWq8sCw,1632
|
|
@@ -74,7 +77,7 @@ bloqade/qasm2/emit/impls/noise.py,sha256=-N9PmCbz8MwC6xtd55GOpjDoWMyJPJBMVDWT3G8
|
|
|
74
77
|
bloqade/qasm2/parse/__init__.py,sha256=01tlLfrR015nAAPWw3i_Cs9IXsShpXMnJMagcJ_Vuik,986
|
|
75
78
|
bloqade/qasm2/parse/ast.py,sha256=a48ssf0D_xaE-27PsyeBD5lBvwN2Dojj-RWIBhy7jJE,2904
|
|
76
79
|
bloqade/qasm2/parse/build.py,sha256=2CibD1ZRX3_aknmhb5XvFQcI2sBOn97DlQHomb9CMEw,10621
|
|
77
|
-
bloqade/qasm2/parse/lowering.py,sha256=
|
|
80
|
+
bloqade/qasm2/parse/lowering.py,sha256=aBIbvJWOdG5lauPiDhh1uNQ398814INtoWZrUZtpyEU,20879
|
|
78
81
|
bloqade/qasm2/parse/parser.py,sha256=fxqp65dv8NnXE-Ie7ryLESfSH3Xr0unx1EBQysctiHM,121
|
|
79
82
|
bloqade/qasm2/parse/print.py,sha256=PaigQ5RbcfhOteWvDdQHoKsTE3tcNefpVfh1sp5eZEI,8973
|
|
80
83
|
bloqade/qasm2/parse/qasm2.lark,sha256=IYrBydUoVLn1VCNDPP5uNN5BHDET3fQ2yG11cOy900k,2238
|
|
@@ -85,15 +88,16 @@ bloqade/qasm2/passes/fold.py,sha256=NMT9MVpc7eWtqmdCztcztrfVewk5SCz5OTDMjSNPGaE,
|
|
|
85
88
|
bloqade/qasm2/passes/glob.py,sha256=qGmUTJSvDPf6qatapg4U69bTRKOAwZEHcFdts3mRxjI,3563
|
|
86
89
|
bloqade/qasm2/passes/lift_qubits.py,sha256=VgIuqaZecozA3cwGAq8Nzqdv8IqQlzyQv2XlaqY4H4g,759
|
|
87
90
|
bloqade/qasm2/passes/noise.py,sha256=w7U91jOAabcCZZXm8uPxojsVRtcIkxtpZS2hwEDsDN0,2709
|
|
88
|
-
bloqade/qasm2/passes/parallel.py,sha256=
|
|
91
|
+
bloqade/qasm2/passes/parallel.py,sha256=hvdxnmVpWnBYWYXD1oHicPa5mVpqNN25J5BWRRASSXo,5725
|
|
89
92
|
bloqade/qasm2/passes/py2qasm.py,sha256=PmdIrViQ_4PEYBKE5XEk4oqFO2sLF2s_2Etz6R9CBoQ,2167
|
|
90
93
|
bloqade/qasm2/passes/qasm2py.py,sha256=beocXUoO2iM6sX85ML1eK8hp9_s5oupw8tqHWV1cDCo,2138
|
|
91
94
|
bloqade/qasm2/passes/unroll_if.py,sha256=NBqgOcOJ4bEo9Osb2K-UATZVb77ckSgcWFpKlSkAnxI,771
|
|
92
|
-
bloqade/qasm2/rewrite/__init__.py,sha256=
|
|
95
|
+
bloqade/qasm2/rewrite/__init__.py,sha256=bWOcz2uPQErF6xHFlgHBAFPCZBaSHmLDrjXllzgjHSU,765
|
|
93
96
|
bloqade/qasm2/rewrite/desugar.py,sha256=ABri2ubImrgYUWtuFj0EEh5FcICqjtKUSS2Ue4WlMdA,1007
|
|
94
97
|
bloqade/qasm2/rewrite/glob.py,sha256=JzGDIY8ME9ZhNQ0g4d0FTpJuJlPu6G19myzo4zb6f_M,3119
|
|
95
98
|
bloqade/qasm2/rewrite/insert_qubits.py,sha256=PpYNlJAl-TVtC1MJxIzOQWDetgW8OPXe6cLN1SMg2w0,1187
|
|
96
99
|
bloqade/qasm2/rewrite/native_gates.py,sha256=GVutT1jf_gv9qaR5fLqjcmxcqCfMZTiQyg4Fq-TlmFM,18684
|
|
100
|
+
bloqade/qasm2/rewrite/parallel_to_glob.py,sha256=TQ5EAYIx7pLpydSeeF2Ta0h5evaHHXaRtvtgz1X3Kfo,2750
|
|
97
101
|
bloqade/qasm2/rewrite/parallel_to_uop.py,sha256=_banEox20L_qU1GTvKjSSDBkFg49UlSE-POuTCKnrzY,2351
|
|
98
102
|
bloqade/qasm2/rewrite/register.py,sha256=sghKMBlsls9YLO6baXZ_m692aNpWgMdxZhinNznQDks,1541
|
|
99
103
|
bloqade/qasm2/rewrite/split_ifs.py,sha256=7MTDFREG0hSSNBzU8Gpc9S-D-vHlBHcE6Zw2Zr7auY0,2053
|
|
@@ -106,44 +110,48 @@ bloqade/qbraid/lowering.py,sha256=84RsPONWeQ_2beyOWBNoJbGFKuaMhsWtRiPivTCZ-Q0,11
|
|
|
106
110
|
bloqade/qbraid/schema.py,sha256=dTPexUFOiBNBnFv0GEbGh6jpIbMIFHk4hFXmXbeihxA,7854
|
|
107
111
|
bloqade/qbraid/simulation_result.py,sha256=zdCJcAdbQkEDzFFuC2q3gqOFTOLAXHk4wh8RRDB6cgc,3956
|
|
108
112
|
bloqade/qbraid/target.py,sha256=LcFHHyLe74yBmrHI9251xHgLN_nUz35lN8RPNwrT6mI,3149
|
|
109
|
-
bloqade/squin/__init__.py,sha256=
|
|
113
|
+
bloqade/squin/__init__.py,sha256=dFe6oAqR_4_utyMXj0NbKJ-3FRHhjYTvxcr1fqK7drE,428
|
|
114
|
+
bloqade/squin/_typeinfer.py,sha256=bilWfC6whTMwewFCqDgB6vDHZsgXPr3azNOYqqnvtB4,780
|
|
110
115
|
bloqade/squin/groups.py,sha256=RXGJnNZUSXF_f5ljjhZ9At8UhaijayoxFoWvxEsUOWc,1310
|
|
111
116
|
bloqade/squin/lowering.py,sha256=w-GyOKYZHHKCGA2slcgWNS97Q_znQU65PeYxEIkvChM,816
|
|
112
|
-
bloqade/squin/qubit.py,sha256=
|
|
113
|
-
bloqade/squin/
|
|
117
|
+
bloqade/squin/qubit.py,sha256=LgNJsm6qCyP7_O-lZg3YT8IiqzF5W5ff1VwQ79nXN4c,5148
|
|
118
|
+
bloqade/squin/types.py,sha256=T3lkqid4HEWuAK_wRns_p-K5DbLDwlldoyZtVay7A3o,119
|
|
119
|
+
bloqade/squin/wire.py,sha256=GZhF0EHCu7OU70zTV_N83yann-eQnYG_lM2u0QYFoAs,6596
|
|
114
120
|
bloqade/squin/analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
115
121
|
bloqade/squin/analysis/schedule.py,sha256=buuC4bFuLuaSDK2BZfkRkh8ZdNicz9HkEv3FAnsDViE,7880
|
|
116
122
|
bloqade/squin/analysis/nsites/__init__.py,sha256=RlQg7ivczXCXG5lMeL3ipYKj2oJKC4THu8orYf5PBYs,263
|
|
117
123
|
bloqade/squin/analysis/nsites/analysis.py,sha256=rIe1RU1MZRItcE2aB8DYahLrv73HfD3IHCX3E_EGQ1c,1773
|
|
118
|
-
bloqade/squin/analysis/nsites/impls.py,sha256=
|
|
124
|
+
bloqade/squin/analysis/nsites/impls.py,sha256=bVqO4E2hDzfYWwSG0pfj2j8oT1m0C3b42LdSHr4HQlo,2874
|
|
119
125
|
bloqade/squin/analysis/nsites/lattice.py,sha256=ruh0808SHtj3ecuT-C3AZTsLY2j3DRhtezGiTZvcuVs,942
|
|
120
|
-
bloqade/squin/cirq/__init__.py,sha256=
|
|
121
|
-
bloqade/squin/cirq/lowering.py,sha256=
|
|
126
|
+
bloqade/squin/cirq/__init__.py,sha256=fxvBvwX5VNfDmqkeM4GHguLQh53k-PJVsz89Eu0wRXw,8552
|
|
127
|
+
bloqade/squin/cirq/lowering.py,sha256=tVbDBL7jlwXbp0ZLEjQ4zWdV1TSkcpwWgHOGxF8T1Hg,15660
|
|
122
128
|
bloqade/squin/cirq/emit/emit_circuit.py,sha256=7puJ3eCFwE9VdPb9NAiSdyRNkoQPwo_uVykz9Yv7c14,3761
|
|
129
|
+
bloqade/squin/cirq/emit/noise.py,sha256=rESjGC_66s2Y4FwwYda4rY3mYHYjbqLlKE_vnqpZDYI,1534
|
|
123
130
|
bloqade/squin/cirq/emit/op.py,sha256=z54NP5KqMxffXeFGWamEzvunpTNrxmYuluurk4j2-ps,4000
|
|
124
131
|
bloqade/squin/cirq/emit/qubit.py,sha256=Z2HUsZmJ5F2uHCPGru81ux2usoX77KwtS97_cgeJRMI,1910
|
|
125
|
-
bloqade/squin/cirq/emit/runtime.py,sha256=
|
|
132
|
+
bloqade/squin/cirq/emit/runtime.py,sha256=dH7JSMt2mALPhVFjmZETQzvnTUQ3BFY5poe0YZpM5vQ,6819
|
|
126
133
|
bloqade/squin/noise/__init__.py,sha256=HQl3FE0SZAGEX3qdveapCaMX391lgLvWeWnoE6Z2pYw,332
|
|
127
134
|
bloqade/squin/noise/_dialect.py,sha256=2IR98J-lXm5Y3srP9g-FD4JC-qTq2seureM6mKKq1xg,63
|
|
128
|
-
bloqade/squin/noise/_wrapper.py,sha256=
|
|
129
|
-
bloqade/squin/noise/rewrite.py,sha256
|
|
135
|
+
bloqade/squin/noise/_wrapper.py,sha256=b2HymlFi1BTgAZRaXvRnujJsoXkowmxQFPRBgZso82g,750
|
|
136
|
+
bloqade/squin/noise/rewrite.py,sha256=-IqFfDGnhuaFI-9b6PXjhSuiXFM1C5Qu0ibL5GvZldI,3917
|
|
130
137
|
bloqade/squin/noise/stmts.py,sha256=rktxkIdjdPUYek0MYh9uh83otkl-7UoADCoWHWf57J8,1678
|
|
131
|
-
bloqade/squin/op/__init__.py,sha256=
|
|
138
|
+
bloqade/squin/op/__init__.py,sha256=6JOjPdzc6RKO4299ZFz4Jk-wtVyPlGTkakYewHBueXw,841
|
|
132
139
|
bloqade/squin/op/_dialect.py,sha256=66G1IYqmsqUEaCTyUqn2shSHmGYduiTU8GfDXcoMvw4,55
|
|
133
|
-
bloqade/squin/op/_wrapper.py,sha256=
|
|
140
|
+
bloqade/squin/op/_wrapper.py,sha256=bg6MLA6u-qkPpo-sKL3lib1VVtQWKCe6RMZb57w8PJQ,1929
|
|
134
141
|
bloqade/squin/op/number.py,sha256=yujWUqLrOAr8i8OBDsiS5M882wV7t08u345NgNA6TUc,95
|
|
135
142
|
bloqade/squin/op/rewrite.py,sha256=Itxz_hTAPNLyLYeLS0PCVk143J1Z558UR7N9-urbnoU,1327
|
|
136
143
|
bloqade/squin/op/stdlib.py,sha256=4UFK3wKImpums2v5a9OFKuVvz2TLYbYwidg3JYYEi2o,1073
|
|
137
|
-
bloqade/squin/op/stmts.py,sha256=
|
|
144
|
+
bloqade/squin/op/stmts.py,sha256=68dASDOK6IFqS4G02A5Wlnc4ThyyIrls4aurK09aqgE,5975
|
|
138
145
|
bloqade/squin/op/traits.py,sha256=jjsnzWtPtmQK7K3H_D2fvc8XiW1Y3EMBcgeyPax2sjc,1065
|
|
139
146
|
bloqade/squin/op/types.py,sha256=ozUT0Bv9NuUxPjB2vAeqJ9cpdvUaBfP9trB5mybYxgc,663
|
|
140
147
|
bloqade/squin/rewrite/U3_to_clifford.py,sha256=HpkFTqe-J0macb_aNs1QNs8wJDoUsmwf9Mtb0I3ZepI,5377
|
|
141
|
-
bloqade/squin/rewrite/__init__.py,sha256=
|
|
142
|
-
bloqade/squin/rewrite/
|
|
148
|
+
bloqade/squin/rewrite/__init__.py,sha256=cY1GbXQXKvDeXi0YE4PgjORm6iGBPk63xzMCpVjiCgw,349
|
|
149
|
+
bloqade/squin/rewrite/canonicalize.py,sha256=hcfsn4ntsvnJ_cVnoUgcE5Zk9EqvwgixGArLPx4OjP0,2100
|
|
150
|
+
bloqade/squin/rewrite/desugar.py,sha256=ZPZnhBvIpPYOZDCFsyja4-AL5KMGfH0h8kS-AGu6sHY,3526
|
|
143
151
|
bloqade/squin/rewrite/remove_dangling_qubits.py,sha256=iTuWV-03YW5wtYbSeKMlnnWjNzDj9SmflyqYPgoYGy8,469
|
|
144
152
|
bloqade/squin/rewrite/wrap_analysis.py,sha256=JUPS4OAYbDHOK0VIrdz1pprSizISUfN7osuoP_P-bIo,2256
|
|
145
|
-
bloqade/stim/__init__.py,sha256
|
|
146
|
-
bloqade/stim/_wrappers.py,sha256=
|
|
153
|
+
bloqade/stim/__init__.py,sha256=QPZnQRWiiC66pwZ4yRiX2m5doqgPQorQLqc3b7fav2A,935
|
|
154
|
+
bloqade/stim/_wrappers.py,sha256=Bx_cv-B5ifuFK9sJkURAFg3AzfDzS3oMObEEheX-Ieg,4045
|
|
147
155
|
bloqade/stim/groups.py,sha256=Fx8G698BGO7hR8OwpPXGUEYdW4uCCPwbMp_3fJAqa8M,585
|
|
148
156
|
bloqade/stim/dialects/__init__.py,sha256=A1Sq0jg8wi6MjRkzmuSBnHmO3EraD0pDFWz-dO6c6v8,89
|
|
149
157
|
bloqade/stim/dialects/auxiliary/__init__.py,sha256=6f57a8k2-QBtqaB0GN8FxxTBlG82oZQbVIOxxq975g4,692
|
|
@@ -173,21 +181,22 @@ bloqade/stim/dialects/gate/stmts/control_2q.py,sha256=gZRtkpgAkiUFqx5Led2t1YjYbl
|
|
|
173
181
|
bloqade/stim/dialects/gate/stmts/pp.py,sha256=yUNCrkYBM7wUCvtRqwP9_HYX0HsHVt6JZR4efM05838,487
|
|
174
182
|
bloqade/stim/dialects/noise/__init__.py,sha256=WoDdIZnxelk8REiIWDKcrEW79xwISdTZlqlTjURb71Q,138
|
|
175
183
|
bloqade/stim/dialects/noise/_dialect.py,sha256=SVUjAqBoGnxo13JlAlsxulIMo1QzfJb4SMSrFaCnfP4,57
|
|
176
|
-
bloqade/stim/dialects/noise/emit.py,sha256=
|
|
177
|
-
bloqade/stim/dialects/noise/stmts.py,sha256=
|
|
184
|
+
bloqade/stim/dialects/noise/emit.py,sha256=BCxaJPLTU_pKkFgw9rtOzTIqZKP4o4NgDM-x128NX9s,2936
|
|
185
|
+
bloqade/stim/dialects/noise/stmts.py,sha256=WJOlhLMfazP6u7jMMpKeCpX-gIL8_D1jv33mxclHrz4,3661
|
|
178
186
|
bloqade/stim/emit/__init__.py,sha256=N2dPQY7OyqPwHAStDeOgYg2yfxqxMOz-N7pD5Z4JwlI,73
|
|
179
187
|
bloqade/stim/emit/stim_str.py,sha256=JyEBoIhLQASogZcUWHI9tMD4JoXYrEqUr2qaZ30gZdc,1491
|
|
180
188
|
bloqade/stim/parse/__init__.py,sha256=l2DjReB2KkgrDjP_4nP6RnoziiOewoSeZfTno1sVYTw,59
|
|
181
189
|
bloqade/stim/parse/lowering.py,sha256=L-IcR_exlxsTVv4SQ0bhzIF4_L82P-GEdK6qRd6B86Y,23723
|
|
182
190
|
bloqade/stim/passes/__init__.py,sha256=KAWJPhZHf0cVDmr9o9LNRfZU8G9aS4adGC4EC7ci_E8,54
|
|
183
|
-
bloqade/stim/passes/squin_to_stim.py,sha256=
|
|
184
|
-
bloqade/stim/rewrite/__init__.py,sha256=
|
|
191
|
+
bloqade/stim/passes/squin_to_stim.py,sha256=ytPeYJiCRDBD1heB43I4V6AfORy9xs2V7n2fcv2kMyI,3239
|
|
192
|
+
bloqade/stim/rewrite/__init__.py,sha256=SHWryh7rZHXOlIz8BMNpj-w7-8VQCRMLt6PfzYFbBfw,434
|
|
185
193
|
bloqade/stim/rewrite/py_constant_to_stim.py,sha256=PV8bHvn759-d_0JW4akaGSORW_oxigrlUBhAC51PJAU,1354
|
|
186
|
-
bloqade/stim/rewrite/qubit_to_stim.py,sha256=
|
|
194
|
+
bloqade/stim/rewrite/qubit_to_stim.py,sha256=Yzh1P_wzLXWqpP_YN4lvDmCS7aLIyZci2JWlHPNO9Xg,2524
|
|
187
195
|
bloqade/stim/rewrite/squin_measure.py,sha256=1X3rcfGvVDSEXmvqlw4T0LQu2A8LFeNeqz1_zf_I8vA,2466
|
|
188
|
-
bloqade/stim/rewrite/
|
|
196
|
+
bloqade/stim/rewrite/squin_noise.py,sha256=dNt3C2fHebPEYYqlY2eonqiQr7V6GwIl69mI9E5U61g,4265
|
|
197
|
+
bloqade/stim/rewrite/util.py,sha256=tAEi1aDirZ-H5vfxs5u_WWBwHRkBCU3zs_XRSUmWMEQ,6866
|
|
189
198
|
bloqade/stim/rewrite/wire_identity_elimination.py,sha256=Cscu8yaSslPuW04HvbXx4HJ3JzdUZNUMyFqcvuc4sxY,795
|
|
190
|
-
bloqade/stim/rewrite/wire_to_stim.py,sha256=
|
|
199
|
+
bloqade/stim/rewrite/wire_to_stim.py,sha256=rZY4Ya4I2b4C3tk84LvJvEi--jyUgza8WmtDtTxCajI,1814
|
|
191
200
|
bloqade/visual/__init__.py,sha256=Y7d0YgovKhUFzjMeDvt0wGRUZ3re3SY6iO3e8xHXrr4,37
|
|
192
201
|
bloqade/visual/animation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
193
202
|
bloqade/visual/animation/animate.py,sha256=NSKs3YDWgTZH2-Tpx3cP1bBcIEWTEPqK5UFkY_IF_3k,8927
|
|
@@ -199,7 +208,7 @@ bloqade/visual/animation/runtime/atoms.py,sha256=EmjxhujLiHHPS_HtH_B-7TiqeHgvW5u
|
|
|
199
208
|
bloqade/visual/animation/runtime/ppoly.py,sha256=JB9IP53N1w6adBJEue6J5Nmj818Id9JvrlgrmiQTU1I,1385
|
|
200
209
|
bloqade/visual/animation/runtime/qpustate.py,sha256=rlmxQeJSvaohXrTpXQL5y-NJcpvfW33xPaYM1slv7cc,4270
|
|
201
210
|
bloqade/visual/animation/runtime/utils.py,sha256=ju9IzOWX-vKwfpqUjlUKu3Ssr_UFPFFq-tzH_Nqyo_c,1212
|
|
202
|
-
bloqade_circuit-0.
|
|
203
|
-
bloqade_circuit-0.
|
|
204
|
-
bloqade_circuit-0.
|
|
205
|
-
bloqade_circuit-0.
|
|
211
|
+
bloqade_circuit-0.5.0.dist-info/METADATA,sha256=WQewYSavs5inq14laYhjQrHPOh289qP0sC-DXq8c5QM,3849
|
|
212
|
+
bloqade_circuit-0.5.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
213
|
+
bloqade_circuit-0.5.0.dist-info/licenses/LICENSE,sha256=S5GIJwR6QCixPA9wryYb44ZEek0Nz4rt_zLUqP05UbU,13160
|
|
214
|
+
bloqade_circuit-0.5.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|