bloqade-circuit 0.6.0__tar.gz → 0.6.1__tar.gz
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_circuit-0.6.0 → bloqade_circuit-0.6.1}/PKG-INFO +1 -1
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/pyproject.toml +1 -1
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/_qasm_loading.py +4 -1
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/parse/lowering.py +11 -3
- bloqade_circuit-0.6.1/src/bloqade/squin/lowering.py +54 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/squin/test_sugar.py +12 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/uv.lock +1 -1
- bloqade_circuit-0.6.0/src/bloqade/squin/lowering.py +0 -27
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/.github/dependabot.yml +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/.github/workflows/ci.yml +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/.github/workflows/isort.yml +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/.github/workflows/lint.yml +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/.github/workflows/release.yml +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/.gitignore +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/.pre-commit-config.yaml +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/LICENSE +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/README.md +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/_typos.toml +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/justfile +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/analysis/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/analysis/address/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/analysis/address/analysis.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/analysis/address/impls.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/analysis/address/lattice.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/analysis/fidelity/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/analysis/fidelity/analysis.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/analysis/measure_id/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/analysis/measure_id/analysis.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/analysis/measure_id/impls.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/analysis/measure_id/lattice.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/cirq_utils/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/cirq_utils/lineprog.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/cirq_utils/parallelize.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/device.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/base.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/device.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/noise/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/noise/native.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/qasm2/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/qasm2/core.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/qasm2/glob.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/qasm2/parallel.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/qasm2/uop.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/reg.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/squin/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/squin/noise/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/squin/noise/native.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/squin/op.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/squin/qubit.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/squin/runtime.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/squin/wire.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/target.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/pyqrack/task.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/_wrappers.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/core/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/core/_dialect.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/core/_emit.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/core/_typeinfer.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/core/address.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/core/stmts.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/expr/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/expr/_dialect.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/expr/_emit.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/expr/_from_python.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/expr/_interp.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/expr/stmts.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/glob.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/indexing.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/inline.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/noise/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/noise/_dialect.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/noise/fidelity.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/noise/model.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/noise/stmts.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/parallel.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/uop/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/uop/_dialect.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/uop/_emit.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/uop/schedule.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/uop/stmts.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/emit/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/emit/base.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/emit/gate.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/emit/impls/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/emit/impls/noise.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/emit/main.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/emit/target.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/glob.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/groups.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/noise.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/parallel.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/parse/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/parse/ast.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/parse/build.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/parse/parser.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/parse/print.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/parse/qasm2.lark +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/parse/visitor.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/parse/visitor.pyi +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/passes/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/passes/fold.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/passes/glob.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/passes/lift_qubits.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/passes/noise.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/passes/parallel.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/passes/py2qasm.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/passes/qasm2py.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/passes/unroll_if.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/desugar.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/glob.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/insert_qubits.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/native_gates.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/noise/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/noise/heuristic_noise.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/noise/remove_noise.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/parallel_to_glob.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/parallel_to_uop.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/register.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/uop_to_parallel.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/types.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qbraid/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qbraid/lowering.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qbraid/schema.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qbraid/simulation_result.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qbraid/target.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/rewrite/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/rewrite/passes/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/rewrite/passes/canonicalize_ilist.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/rewrite/rules/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/rewrite/rules/flatten_ilist.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/rewrite/rules/inline_getitem_ilist.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/rewrite/rules/split_ifs.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/_typeinfer.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/analysis/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/analysis/address_impl.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/analysis/nsites/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/analysis/nsites/analysis.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/analysis/nsites/impls.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/analysis/nsites/lattice.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/analysis/schedule.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/cirq/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/cirq/emit/emit_circuit.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/cirq/emit/noise.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/cirq/emit/op.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/cirq/emit/qubit.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/cirq/emit/runtime.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/cirq/lowering.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/groups.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/noise/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/noise/_dialect.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/noise/_wrapper.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/noise/rewrite.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/noise/stmts.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/op/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/op/_dialect.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/op/_wrapper.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/op/number.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/op/rewrite.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/op/stdlib.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/op/stmts.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/op/traits.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/op/types.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/qubit.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/rewrite/U3_to_clifford.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/rewrite/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/rewrite/canonicalize.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/rewrite/desugar.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/rewrite/remove_dangling_qubits.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/rewrite/wrap_analysis.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/types.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/wire.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/_wrappers.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/auxiliary/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/auxiliary/_dialect.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/auxiliary/emit.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/auxiliary/interp.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/auxiliary/lowering.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/auxiliary/stmts/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/auxiliary/stmts/annotate.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/auxiliary/stmts/const.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/auxiliary/types.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/collapse/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/collapse/_dialect.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/collapse/emit_str.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/collapse/stmts/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/collapse/stmts/measure.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/collapse/stmts/pp_measure.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/collapse/stmts/reset.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/gate/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/gate/_dialect.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/gate/emit.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/gate/stmts/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/gate/stmts/base.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/gate/stmts/clifford_1q.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/gate/stmts/clifford_2q.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/gate/stmts/control_2q.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/gate/stmts/pp.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/noise/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/noise/_dialect.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/noise/emit.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/dialects/noise/stmts.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/emit/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/emit/stim_str.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/groups.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/parse/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/parse/lowering.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/passes/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/passes/simplify_ifs.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/passes/squin_to_stim.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/rewrite/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/rewrite/ifs_to_stim.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/rewrite/py_constant_to_stim.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/rewrite/qubit_to_stim.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/rewrite/squin_measure.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/rewrite/squin_noise.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/rewrite/util.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/rewrite/wire_identity_elimination.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/rewrite/wire_to_stim.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/upstream/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/stim/upstream/from_squin.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/task.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/test_utils.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/types.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/visual/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/visual/animation/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/visual/animation/animate.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/visual/animation/base.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/visual/animation/gate_event.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/visual/animation/runtime/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/visual/animation/runtime/aod.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/visual/animation/runtime/atoms.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/visual/animation/runtime/ppoly.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/visual/animation/runtime/qpustate.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/visual/animation/runtime/utils.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/analysis/address/test_qubit_analysis.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/analysis/address/test_wire_analysis.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/analysis/address/util.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/analysis/fidelity/test_fidelity.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/analysis/measure_id/test_measure_id.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/cirq_utils/test_lpsolvers.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/cirq_utils/test_parallelize.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/pyqrack/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/pyqrack/runtime/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/pyqrack/runtime/noise/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/pyqrack/runtime/noise/qasm2/test_loss.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/pyqrack/runtime/noise/qasm2/test_pauli.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/pyqrack/runtime/test_dyn_memory.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/pyqrack/runtime/test_qrack.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/pyqrack/squin/test_kernel.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/pyqrack/squin/test_noise.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/pyqrack/test_target.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/analysis/test_dag.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/emit/test_extended.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/emit/test_extended_noise.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/emit/test_qasm2.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/emit/test_qasm2_emit.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/invalid_programs/invalid_if.qasm +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/programs/README.md +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/programs/global.qasm +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/programs/iqft1.qasm +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/programs/main.qasm +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/programs/noise.qasm +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/programs/para.qasm +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/programs/process_tomo.qasm +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/programs/qelib1.inc +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/programs/qft.qasm +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/programs/qft2.qasm +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/programs/rb.qasm +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/programs/rep_code.qasm +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/programs/ripple_carry_adder.qasm +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/programs/tele.qasm +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/programs/valid_if.qasm +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/test_ast.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/parse/test_roundtrip.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/passes/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/passes/test_global_to_parallel.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/passes/test_global_to_uop.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/passes/test_heuristic_noise.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/passes/test_parallel_to_global.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/passes/test_parallel_to_uop.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/passes/test_qasm2py.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/passes/test_unroll_if.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/passes/test_uop_to_parallel.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/test_count.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/test_inline.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/test_lowering.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/test_native.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qasm2/test_two2one.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qbraid/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qbraid/test_clean_circuit.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qbraid/test_lowering.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/qbraid/test_target.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/sample/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/sample/test_noise_model.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/squin/analysis/test_nsites_analysis.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/squin/cirq/test_cirq_to_squin.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/squin/cirq/test_squin_noise_to_cirq.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/squin/cirq/test_squin_to_cirq.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/squin/op/test_reset.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/squin/rewrite/test_U3_to_clifford.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/squin/rewrite/test_canonicalize.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/squin/rewrite/test_desugar.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/squin/rewrite/test_mult_rewrite.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/squin/test_constprop.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/squin/test_typeinfer.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/squin/wire/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/squin/wire/test_check.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/dialects/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/dialects/stim/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/dialects/stim/emit/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/dialects/stim/emit/base.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/dialects/stim/emit/test_stim_1q.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/dialects/stim/emit/test_stim_ctrl.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/dialects/stim/emit/test_stim_detector.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/dialects/stim/emit/test_stim_meas.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/dialects/stim/emit/test_stim_noise.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/dialects/stim/emit/test_stim_obs_inc.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/dialects/stim/emit/test_stim_ppmeas.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/dialects/stim/emit/test_stim_qubit_coords.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/dialects/stim/emit/test_stim_spp.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/dialects/stim/test_stim_circuits.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/dialects/stim/test_stim_const.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/parse/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/parse/base.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/parse/test_parse.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/parse/test_parse_clifford.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/parse/test_parse_control.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/parse/test_parse_custom.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/parse/test_parse_noise.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/parse/test_parse_spp.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/noise/apply_depolarize1.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/noise/apply_pauli_channel_1.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/noise/broadcast_depolarize1.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/noise/broadcast_depolarize2.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/noise/broadcast_iid_bit_flip_channel.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/noise/broadcast_iid_phase_flip_channel.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/noise/broadcast_iid_y_flip_channel.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/noise/broadcast_pauli_channel_1.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/noise/broadcast_pauli_channel_1_many_qubits.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/noise/broadcast_pauli_channel_1_reuse.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/noise/broadcast_pauli_channel_2.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/noise/broadcast_pauli_channel_2_reuse_on_4_qubits.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/pure_squin_rewrite.txt +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/qubit/for_loop.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/qubit/qubit.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/qubit/qubit_broadcast.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/qubit/qubit_loss.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/qubit/qubit_reset.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/qubit/u3_to_clifford.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/simple_if_rewrite.txt +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/wire/wire.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/wire/wire_apply.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/wire/wire_apply_control.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/wire/wire_broadcast.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/wire/wire_broadcast_control.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/wire/wire_measure.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/wire/wire_multiple_apply.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/wire/wire_qubit_loss.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/stim_reference_programs/wire/wire_reset.stim +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/test_squin_meas_to_stim.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/test_squin_noise_to_stim.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/test_squin_qubit_to_stim.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/test_squin_to_stim_cases.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/passes/test_squin_wire_to_stim.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/test_measure_id_analysis.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/wrapper/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/stim/wrapper/test_wrapper.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/test_serialization.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/test_zone_model.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/visual/__init__.py +0 -0
- {bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/test/visual/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bloqade-circuit
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.1
|
|
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
|
|
@@ -82,7 +82,7 @@ def loads(
|
|
|
82
82
|
body=body,
|
|
83
83
|
)
|
|
84
84
|
|
|
85
|
-
|
|
85
|
+
mt = ir.Method(
|
|
86
86
|
mod=None,
|
|
87
87
|
py_func=None,
|
|
88
88
|
sym_name=kernel_name,
|
|
@@ -91,6 +91,9 @@ def loads(
|
|
|
91
91
|
code=code,
|
|
92
92
|
)
|
|
93
93
|
|
|
94
|
+
mt.verify()
|
|
95
|
+
return mt
|
|
96
|
+
|
|
94
97
|
|
|
95
98
|
def loadfile(
|
|
96
99
|
qasm_file: str | pathlib.Path,
|
|
@@ -202,7 +202,13 @@ class QASM2(lowering.LoweringABC[ast.Node]):
|
|
|
202
202
|
|
|
203
203
|
then_body = if_frame.curr_region
|
|
204
204
|
|
|
205
|
-
|
|
205
|
+
# NOTE: create empty else body
|
|
206
|
+
else_body = ir.Block(stmts=[scf.Yield()])
|
|
207
|
+
else_body.args.append_from(types.Bool)
|
|
208
|
+
|
|
209
|
+
state.current_frame.push(
|
|
210
|
+
scf.IfElse(cond, then_body=then_body, else_body=else_body)
|
|
211
|
+
)
|
|
206
212
|
|
|
207
213
|
def branch_next_if_not_terminated(self, frame: lowering.Frame):
|
|
208
214
|
"""Branch to the next block if the current block is not terminated.
|
|
@@ -381,6 +387,8 @@ class QASM2(lowering.LoweringABC[ast.Node]):
|
|
|
381
387
|
QubitType for _ in node.qparams
|
|
382
388
|
]
|
|
383
389
|
|
|
390
|
+
self_name = node.name + "_self"
|
|
391
|
+
|
|
384
392
|
with state.frame(
|
|
385
393
|
stmts=node.body,
|
|
386
394
|
finalize_next=False,
|
|
@@ -390,7 +398,7 @@ class QASM2(lowering.LoweringABC[ast.Node]):
|
|
|
390
398
|
types.Generic(
|
|
391
399
|
ir.Method, types.Tuple.where(tuple(arg_types)), types.NoneType
|
|
392
400
|
),
|
|
393
|
-
name=
|
|
401
|
+
name=self_name,
|
|
394
402
|
)
|
|
395
403
|
|
|
396
404
|
for arg_type, arg_name in zip(arg_types, arg_names):
|
|
@@ -422,7 +430,7 @@ class QASM2(lowering.LoweringABC[ast.Node]):
|
|
|
422
430
|
py_func=None,
|
|
423
431
|
sym_name=node.name,
|
|
424
432
|
dialects=self.dialects,
|
|
425
|
-
arg_names=[*node.cparams, *node.qparams],
|
|
433
|
+
arg_names=[self_name, *node.cparams, *node.qparams],
|
|
426
434
|
code=gate_func,
|
|
427
435
|
)
|
|
428
436
|
state.current_frame.globals[node.name] = mt
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import ast
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from kirin import lowering
|
|
5
|
+
|
|
6
|
+
from . import qubit
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass(frozen=True)
|
|
10
|
+
class ApplyAnyCallLowering(lowering.FromPythonCall["qubit.ApplyAny"]):
|
|
11
|
+
"""
|
|
12
|
+
Custom lowering for ApplyAny that collects vararg qubits into a single tuple argument
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
def lower(
|
|
16
|
+
self, stmt: type["qubit.ApplyAny"], state: lowering.State, node: ast.Call
|
|
17
|
+
):
|
|
18
|
+
if len(node.args) + len(node.keywords) < 2:
|
|
19
|
+
raise lowering.BuildError(
|
|
20
|
+
"Apply requires at least one operator and one qubit as arguments!"
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
op, qubits = self.unpack_arguments(node)
|
|
24
|
+
|
|
25
|
+
op_ssa = state.lower(op).expect_one()
|
|
26
|
+
qubits_lowered = [state.lower(qbit).expect_one() for qbit in qubits]
|
|
27
|
+
|
|
28
|
+
s = stmt(op_ssa, tuple(qubits_lowered))
|
|
29
|
+
return state.current_frame.push(s)
|
|
30
|
+
|
|
31
|
+
def unpack_arguments(self, node: ast.Call) -> tuple[ast.expr, list[ast.expr]]:
|
|
32
|
+
if len(node.keywords) == 0:
|
|
33
|
+
op, *qubits = node.args
|
|
34
|
+
return op, qubits
|
|
35
|
+
|
|
36
|
+
kwargs = {kw.arg: kw.value for kw in node.keywords}
|
|
37
|
+
if len(kwargs) > 2 or "qubits" not in kwargs:
|
|
38
|
+
raise lowering.BuildError(f"Got unsupported keyword argument {kwargs}")
|
|
39
|
+
|
|
40
|
+
qubits = kwargs["qubits"]
|
|
41
|
+
if len(kwargs) == 1:
|
|
42
|
+
if len(node.args) != 1:
|
|
43
|
+
raise lowering.BuildError("Missing operator argument")
|
|
44
|
+
op = node.args[0]
|
|
45
|
+
else:
|
|
46
|
+
try:
|
|
47
|
+
op = kwargs["operator"]
|
|
48
|
+
except KeyError:
|
|
49
|
+
raise lowering.BuildError(f"Got unsupported keyword argument {kwargs}")
|
|
50
|
+
|
|
51
|
+
if isinstance(qubits, ast.List):
|
|
52
|
+
return op, qubits.elts
|
|
53
|
+
|
|
54
|
+
return op, [qubits]
|
|
@@ -104,3 +104,15 @@ def test_apply_in_for_loop_index_multiple_index():
|
|
|
104
104
|
sim = StackMemorySimulator(min_qubits=3)
|
|
105
105
|
ket = sim.state_vector(main)
|
|
106
106
|
assert math.isclose(abs(ket[0]) ** 2, 0.5, abs_tol=1e-5)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
def test_apply_with_named_args():
|
|
110
|
+
@squin.kernel
|
|
111
|
+
def main():
|
|
112
|
+
q = squin.qubit.new(2)
|
|
113
|
+
h = squin.op.h()
|
|
114
|
+
squin.qubit.apply(h, qubits=[q[0]])
|
|
115
|
+
cx = squin.op.cx()
|
|
116
|
+
squin.qubit.apply(qubits=q, operator=cx)
|
|
117
|
+
|
|
118
|
+
main.print()
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import ast
|
|
2
|
-
from dataclasses import dataclass
|
|
3
|
-
|
|
4
|
-
from kirin import lowering
|
|
5
|
-
|
|
6
|
-
from . import qubit
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
@dataclass(frozen=True)
|
|
10
|
-
class ApplyAnyCallLowering(lowering.FromPythonCall["qubit.ApplyAny"]):
|
|
11
|
-
"""
|
|
12
|
-
Custom lowering for ApplyAny that collects vararg qubits into a single tuple argument
|
|
13
|
-
"""
|
|
14
|
-
|
|
15
|
-
def lower(
|
|
16
|
-
self, stmt: type["qubit.ApplyAny"], state: lowering.State, node: ast.Call
|
|
17
|
-
):
|
|
18
|
-
if len(node.args) < 2:
|
|
19
|
-
raise lowering.BuildError(
|
|
20
|
-
"Apply requires at least one operator and one qubit as arguments!"
|
|
21
|
-
)
|
|
22
|
-
op, *qubits = node.args
|
|
23
|
-
op_ssa = state.lower(op).expect_one()
|
|
24
|
-
qubits_lowered = [state.lower(qbit).expect_one() for qbit in qubits]
|
|
25
|
-
|
|
26
|
-
s = stmt(op_ssa, tuple(qubits_lowered))
|
|
27
|
-
return state.current_frame.push(s)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/core/_typeinfer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/expr/_from_python.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/noise/__init__.py
RENAMED
|
File without changes
|
{bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/noise/_dialect.py
RENAMED
|
File without changes
|
{bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/dialects/noise/fidelity.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/noise/heuristic_noise.py
RENAMED
|
File without changes
|
{bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/noise/remove_noise.py
RENAMED
|
File without changes
|
{bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/parallel_to_glob.py
RENAMED
|
File without changes
|
{bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/parallel_to_uop.py
RENAMED
|
File without changes
|
|
File without changes
|
{bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/qasm2/rewrite/uop_to_parallel.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/rewrite/passes/canonicalize_ilist.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/rewrite/rules/inline_getitem_ilist.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/analysis/nsites/__init__.py
RENAMED
|
File without changes
|
{bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/analysis/nsites/analysis.py
RENAMED
|
File without changes
|
|
File without changes
|
{bloqade_circuit-0.6.0 → bloqade_circuit-0.6.1}/src/bloqade/squin/analysis/nsites/lattice.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|