Skip to content

OriginIR 转换 ​

用于在量子程序(QProg)和 OriginIR 中间表示格式之间进行转换的 API 参考。

convert_originir_string_to_qprog ​

解析 OriginIR 指令集字符串并返回对应的量子程序。

签名 ​

python
convert_originir_string_to_qprog(
    originir_str: str,
) -> QProg

参数 ​

参数类型描述
originir_strstr要转换的 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_filepathstr包含 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

参数 ​

参数类型描述
progQProg要转换的量子程序。
precisionint浮点门参数的小数位数。必须是非负整数。默认为 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]

另见 ​

Released under the MIT License.