PyQIR解析、生成和评估量子中间表示。
项目描述
PyQIR
pyqir
包提供生成QIR以及解析和分析QIR的简便方法。
QIR生成旨在用于自动化代码翻译过程,使代码能够通过Python将某些格式的数据转换为QIR;即,这是一个低级API,旨在作为到现有Python框架的桥梁,以便生成QIR,而不是直接由最终用户消费。它不旨在用作算法和应用程序开发的框架。
安装
该软件包已发布在PyPI上,可以通过pip进行安装
pip install pyqir
示例
PyQIR示例可以在本存储库的示例文件夹中找到。
生成
以下代码在测量每个量子比特之前创建Bell对的QIR,并返回结果。执行时,未优化的QIR将在终端中显示。
from pyqir import BasicQisBuilder, SimpleModule
module = SimpleModule("Bell", num_qubits=2, num_results=2)
qis = BasicQisBuilder(module.builder)
qis.h(module.qubits[0])
qis.cx(module.qubits[0], module.qubits[1])
qis.mz(module.qubits[0], module.results[0])
qis.mz(module.qubits[1], module.results[1])
print(module.ir())
QIR输出将类似于
; ModuleID = 'Bell'
source_filename = "Bell"
%Qubit = type opaque
%Result = type opaque
define void @main() #0 {
entry:
call void @__quantum__qis__h__body(%Qubit* null)
call void @__quantum__qis__cnot__body(%Qubit* null, %Qubit* inttoptr (i64 1 to %Qubit*))
call void @__quantum__qis__mz__body(%Qubit* null, %Result* null)
call void @__quantum__qis__mz__body(%Qubit* inttoptr (i64 1 to %Qubit*), %Result* inttoptr (i64 1 to %Result*))
ret void
}
declare void @__quantum__qis__h__body(%Qubit*)
declare void @__quantum__qis__cnot__body(%Qubit*, %Qubit*)
declare void @__quantum__qis__mz__body(%Qubit*, %Result* writeonly) #1
attributes #0 = { "entry_point" "output_labeling_schema" "qir_profiles"="custom" "required_num_qubits"="2" "required_num_results"="2" }
attributes #1 = { "irreversible" }
!llvm.module.flags = !{!0, !1, !2, !3}
!0 = !{i32 1, !"qir_major_version", i32 1}
!1 = !{i32 7, !"qir_minor_version", i32 0}
!2 = !{i32 1, !"dynamic_qubit_management", i1 false}
!3 = !{i32 1, !"dynamic_result_management", i1 false}
贡献
您可以通过多种方式为PyQIR做出贡献,无论是通过贡献功能还是参与讨论;我们重视所有形式的贡献!请参阅此文档以获取如何参与的指南和想法。
向此存储库提交拉取请求需要同意贡献者许可协议(CLA),声明您有权并且实际上确实授予我们使用您的贡献的权利。CLA机器人将自动确定您是否需要提供CLA,并相应地装饰PR。只需遵循机器人提供的说明即可。您只需这样做一次。
项目详情
关闭
pyqir-0.10.5-cp38-abi3-win_amd64.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | c2d4f116a45096cfa40f9976e9f36405b30ac736e03fe268fcf132e3bd37986e |
|
MD5 | 0bc9d5694d6a51e6f5d8fb5fb9313231 |
|
BLAKE2b-256 | c1a92ea24b7698c62d9e568851096b4f54a382117e7fa2eeca9426032ec44641 |
关闭
pyqir-0.10.5-cp38-abi3-manylinux_2_31_x86_64.whl的哈希值
算法 | 散列摘要 | |
---|---|---|
SHA256 | f035e8af16c6ed8c0348b5bd87f96c3a924250460a78b320d8a510029549bd82 |
|
MD5 | 1f78ba48b58dc6fa4bdfb6dee8cc0d84 |
|
BLAKE2b-256 | f03cb4fc454c544334f55950310019079e65258c085cf4dea682c7ca098982a6 |
关闭
pyqir-0.10.5-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl的哈希值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 20253285e76c94887a9b85674f61b36392045dc63ce2b91aa9b632f4ec1b9f30 |
|
MD5 | 4496aaafc50dfd737dcad636f96b5007 |
|
BLAKE2b-256 | 2104decb8fe41565b65a6043c190f1d2cf954070f7a479965d47d60f20fe1603 |