OriginIR 转换
用于在量子程序(QProg)和 OriginIR 中间表示格式之间进行转换的 API 参考。
convert_originir_string_to_qprog
解析 OriginIR 指令集字符串并返回对应的量子程序。
签名
python
convert_originir_string_to_qprog(
originir_str: str,
) -> QProg参数
| 参数 | 类型 | 描述 |
|---|---|---|
| originir_str | str | 要转换的 OriginIR 指令集字符串。 |
返回值
转换后的 QProg 量子程序。
异常
| 异常类型 | 描述 |
|---|---|
RuntimeError | 如果 OriginIR 字符串包含语法错误或引用了未定义的量子门或量子比特。 |
示例
python
from pyqpanda3.intermediate_compiler import convert_originir_string_to_qprog
ir_str = """
QINIT 2
CREG 2
H q[0]
CNOT q[0],q[1]
MEASURE q[0],c[0]
MEASURE q[1],c[1]
"""
prog = convert_originir_string_to_qprog(ir_str)convert_originir_file_to_qprog
读取 OriginIR 文件并返回对应的量子程序。
签名
python
convert_originir_file_to_qprog(
ir_filepath: str,
) -> QProg参数
| 参数 | 类型 | 描述 |
|---|---|---|
| ir_filepath | str | 包含 OriginIR 指令集文本的文件路径。 |
返回值
转换后的 QProg 量子程序。
异常
| 异常类型 | 描述 |
|---|---|
RuntimeError | 如果文件无法读取或包含语法错误。 |
FileNotFoundError | 如果指定的文件路径不存在。 |
示例
python
import tempfile
from pyqpanda3.intermediate_compiler import convert_originir_file_to_qprog
ir_content = "QINIT 2\nCREG 2\nH q[0]\nCNOT q[0],q[1]\n"
with tempfile.NamedTemporaryFile(mode="w", suffix=".originir", delete=False) as f:
f.write(ir_content)
tmp_path = f.name
prog = convert_originir_file_to_qprog(tmp_path)
import os
os.unlink(tmp_path)convert_qprog_to_originir
将量子程序转换为其 OriginIR 字符串表示。
签名
python
convert_qprog_to_originir(
prog: QProg,
precision: int = 8,
) -> str参数
| 参数 | 类型 | 描述 |
|---|---|---|
| prog | QProg | 要转换的量子程序。 |
| precision | int | 浮点门参数的小数位数。必须是非负整数。默认为 8。 |
返回值
表示量子程序的 OriginIR 指令集字符串。
示例
python
from pyqpanda3.intermediate_compiler import convert_qprog_to_originir
from pyqpanda3.core import QProg, H, CNOT
prog = QProg() << H(0) << CNOT(0, 1)
ir_str = convert_qprog_to_originir(prog, precision=6)
print(ir_str)运行结果:
QINIT 2
CREG 1
H q[0]
CNOT q[0],q[1]另见
- QASM 转换 -- 与 OpenQASM 2.0 格式的相互转换