YAML 定义 QEC-Compiler examples¶
入口文件¶
QEC examples 的 YAML 定义在:
pyqres/dsl/schemas/composites/qec_examples.yml
编译后生成 pyqres/generated/QECExample*.py。运行:
cd Quantum-Resource-Estimator
.venv/bin/pyqres compile
.venv/bin/pyqres check
核心机制:QEC IR primitives¶
这些 YAML examples 直接调用 QEC-Compiler 认识的 primitive,而不是 import Python builder 或通过任意 gate adapter 注入 payload。
可用的 QEC-facing primitives 包括:
H, X, Y, Z, CNOT, SWAP, CPHASE, RX, RY, RZ, CCX
ADD, MOD_ADD, MOD_MUL, CMUL_MOD_N, MCX, PLUS_ONE, REFLECT
示例:GHZ¶
- name: QECExampleGHZ
qregs:
- {name: q, type: General}
params:
- {name: n, type: int}
impl:
- op: H
qregs: [q]
params: [0]
- for_each:
var: i
items: {type: expr, value: "range(n - 1)"}
body:
- op: CNOT
qregs: [q, q]
params: [$i, {type: expr, value: "i + 1"}]
使用:
from pyqres.core.metadata import RegisterMetadata
from pyqres.core.lowering import to_abstract_circuit
from pyqres.generated import QECExampleGHZ
RegisterMetadata.get_register_metadata().declare_register("q", 4, "General")
op = QECExampleGHZ(["q"], [4])
circuit = to_abstract_circuit(op)
assert [gate.name for gate in circuit.gates] == ["H", "CNOT", "CNOT", "CNOT"]
示例:QFT¶
- name: QECExampleQFT
qregs:
- {name: q, type: General}
params:
- {name: n, type: int}
impl:
- for_each:
var: i
items: n
body:
- op: H
qregs: [q]
params: [$i]
- for_each:
var: j
items: {type: expr, value: "range(i + 1, n)"}
body:
- op: CPHASE
qregs: [q]
params: [$i, $j, {type: expr, value: "math.pi / (1 << (j - i))"}]
验证命令¶
PYTHONPATH=../QEC-compiler/src:. .venv/bin/pytest \
tests/test_qec_examples_yaml.py -q
该测试覆盖:
GHZ, W, BV, DJ, Grover, QFT, QPE, QAOA, VQE, Ising, SWAP-test, small Shor