命令行

English · 简体中文

命令行处理已经保存的 RIR,也提供数学函数编译入口。RIR 输入自动识别 YAML 与 JSON 两种文本(约定扩展名为 .rir.yaml);写出 RIR 文本时以 --format yaml|json 选择,默认 yaml。

oracq validate program.rir.yaml
oracq inspect program.rir.yaml
oracq requirements program.rir.yaml
oracq emit program.rir.yaml -o program.originir
oracq emit program.rir.yaml --basis toffoli-u3-cz -o basis.originir

validate 检查结构并报告开放状态。inspect 输出入口的寄存器、资源和能力描述。requirements 列出入口可达的未实现 oracle 及调用路径。

绑定实现

oracq bind open.rir.yaml --bindings bindings.json --report binding-report.json -o closed.rir.yaml

绑定清单是 JSON 文件,将槽名映射到实现的 RIR 文件与资源名称:

{
  "Function": {
    "program": "lookup.rir.yaml",
    "resources": {"table": "values"}
  }
}

program 相对于绑定清单所在目录解析,指向的 RIR 文件可为 YAML 或 JSON 文本。实现的布局和 alpha 必须与槽位一致。--format 作用于 bind、canonicalize 与 compile-function 写出的 RIR 文本;两种格式解析得到的程序逐字段一致。绑定语义与可运行示例见教程:替换 oracle。

开放与闭合资源分析

oracq estimate open.rir.yaml --allow-open -o open-cost.json
oracq estimate closed.rir.yaml -o closed-cost.json

开放报告保留 oracle 调用数与未知工作区;已知成本不能当作最终总成本。 计数口径与已知差距见资源估计。 绑定失败时仍会写出 --report 指定的诊断,并以非零状态退出。

执行

oracq run closed.rir.yaml --memory memory.qram.yaml
oracq run closed.rir.yaml --memory memory.qram.yaml --backend pysparq
oracq run closed.rir.yaml --memory memory.qram.yaml --backend originir

默认使用参考执行器。内存文件为 qram YAML(格式见规范参考的 QRAM 内存定义),按入口资源名列出段,缺省单元为零。执行失败会返回非零退出码,不会静默省略未完成模块。

数学函数与 QHAM

oracq compile-function examples/math_functions.py --function pressure \
  --width 12 --fraction 6 --mir-output out/pressure.mir.json -o out/pressure.rir.yaml

python -m oracq.applications.qham --example burgers --order 2 --eta=-0.4

QHAM 的旧入口 python -m oracq.qham 保留兼容。它和新入口调用同一实现,完整用法见一般 QHAM 自动生成。