OriginIR 官方规范¶
什么是官方 OriginIR¶
官方 OriginIR 是本源量子云服务(OriginQ)接受的量子线路描述语言。它是 OriginIR-ext 的子集——不包含扩展门、error channels 和 inline dagger/controlled_by 语法。
你通常不需要直接使用此规范。 UnifiedQuantum 默认使用 OriginIR-ext 作为本地语言,在提交到 OriginQ 云时会自动将扩展门分解为官方门、将 inline 语法转换为块语法。本文档仅供需要了解 OriginQ 云服务确切接受哪些特性的用户参考。
完整的关系说明见 OriginIR、OriginIR-ext 与 OpenQASM 2.0 的关系。
官方门集¶
单量子比特门(无参数)¶
门 |
描述 |
|---|---|
|
Hadamard 门 |
|
Pauli-X (NOT) 门 |
|
Pauli-Y 门 |
|
Pauli-Z 门 |
|
S(相位)门 |
|
√X 门 |
|
T(π/8)门 |
|
恒等门 |
单量子比特参数门¶
门 |
参数 |
描述 |
|---|---|---|
|
1 |
绕 X 轴旋转 |
|
1 |
绕 Y 轴旋转 |
|
1 |
绕 Z 轴旋转 |
|
1 |
相位旋转 |
|
2 |
通用单比特门(2参数) |
|
3 |
通用单比特门(3参数) |
双量子比特门¶
门 |
参数 |
描述 |
|---|---|---|
|
0 |
受控 NOT 门 |
|
0 |
受控 Z 门 |
|
0 |
交换门 |
三量子比特门¶
门 |
参数 |
描述 |
|---|---|---|
|
0 |
Toffoli (CCNOT) 门 |
|
0 |
Fredkin (受控 SWAP) 门 |
特殊操作¶
操作 |
描述 |
|---|---|
|
屏障(阻止编译器跨越优化) |
官方语法¶
程序结构¶
QINIT <qubit_count>
CREG <classical_bit_count>
<gate_operations>
MEASURE q[i], c[j]
控制块语法¶
官方 OriginIR 使用块级控制和伴随语法:
CONTROL q[0]
H q[1]
ENDCONTROL
DAGGER
RX q[0], (1.57)
ENDDAGGER
注意:OriginIR-ext 支持 inline 语法(
H q[1] dagger controlled_by(q[0])),但官方 OriginIR 不支持。提交到 OriginQ 云时,inline 语法会自动转换为块语法。
测量¶
MEASURE q[0], c[0]
MEASURE q[1], c[1]
与 OriginIR-ext 的区别¶
特性 |
官方 OriginIR |
OriginIR-ext |
|---|---|---|
基础门(H, X, CNOT 等) |
Y |
Y |
ECR, ISWAP, XX, YY, ZZ, XY |
- |
Y |
PHASE2Q, UU15 |
- |
Y |
RPhi, RPhi90, RPhi180 |
- |
Y |
DEF/ENDDEF 子程序 |
- |
Y |
Error Channels |
- |
Y |
inline |
- |
Y |
inline |
- |
Y |
CONTROL/ENDCONTROL 块 |
Y |
Y |
DAGGER/ENDDAGGER 块 |
Y |
Y |
当 OriginIR-ext 代码提交到 OriginQ 云时,扩展门会通过 decompose_for_originir() 自动分解为官方门,inline 语法会通过 opcode_to_line_originir_official() 转换为块语法。