源码结构¶
English · 简体中文
源码分为基础设施、算法库和领域应用。目录名对应代码的职责,算法实现按类别放在独立文件中。
src/oracq/
├── infrastructure/ RIR、Builder、验证、序列化、执行和后端
│ ├── backends/ OriginIR-ext、严格门集和 PySparQ 适配
│ └── mathfunc/ 纯数学函数前端、MIR 与可逆 lowering
├── algorithms/ 量子算法、oracle 接口和组合工具
│ ├── fourier.py Fourier 变换与 Fourier 加法
│ ├── search.py Grover 和振幅放大
│ ├── estimation.py QPE、振幅估计、Hadamard/Swap test
│ ├── hamiltonian.py Hamiltonian 演化与可替换实现
│ ├── qlss.py 线性系统契约、Costa 和 CKS
│ ├── lchs.py LCHS
│ ├── schrodingerization.py
│ ├── carleman.py Carleman 线性化
│ └── ...
└── applications/ QFVM、Roe 数据、QHAM 数学支持和案例目录
基础设施¶
infrastructure 负责描述的结构与执行机制,不根据算法名字选择线路。数学函数前端可以调用算法库的算术生成器;Operation 的便捷视图方法也会在需要时调用算法适配器。这些调用发生在 Python 生成阶段,不增加 RIR 指令种类。
可选后端在执行入口导入(见导出与执行后端)。生成与序列化 RIR 不要求安装 PySparQ 或 UnifiedQuantum。
算法库¶
algorithms 中每个类别有自己的文件和输入约定。共享的 interfaces.py 提供常见 Python 结构协议;contracts.py 提供检查报告。应用仍可定义自己的协议。
operators.py 保存 BE 包装类与基本缩放操作,block_encoding.py 提供 LCU、张量和小矩阵构造。它们是算法的组合工具。ode.py 提供可替换线性求解接口;LCHS、Schrödingerization、CBMD 和 Carleman 各自维护实现。
领域应用¶
QFVM 的物理参数、Roe 公式和经典数据更新放在 applications。QHAM 的量子组装入口是 algorithms/qham.py;PDE 表达式、同伦推导和空间离散化支持放在 applications/qham/。这样可以阅读量子生成步骤,而不必同时展开全部数学推导代码。
早期演示实现集中在 applications/legacy.py 和 algorithms/legacy.py。它们用于兼容旧案例,当前文档不会将其作为新应用的默认入口。
兼容与迁移¶
旧导入路径由根目录的 _compat.py 集中转发。兼容层引用同一个函数或类,不保留另一份实现。仓内源码、测试与教程使用规范路径;外部代码可逐步迁移,见导入路径迁移。