# 源码结构 English · **简体中文** 源码分为基础设施、算法库和领域应用。目录名对应代码的职责,算法实现按类别放在独立文件中。 ```text 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` 负责描述的结构与执行机制,不根据算法名字选择线路。数学函数前端可以调用算法库的算术生成器;{obj}`Operation ` 的便捷视图方法也会在需要时调用算法适配器。这些调用发生在 Python 生成阶段,不增加 RIR 指令种类。 可选后端在执行入口导入(见[导出与执行后端](backends.md))。生成与序列化 RIR 不要求安装 PySparQ 或 UnifiedQuantum。 ## 算法库 `algorithms` 中每个类别有自己的文件和输入约定。共享的 [`interfaces.py`](../api/algorithms/input_model/interfaces.rst) 提供常见 Python 结构协议;[`contracts.py`](../api/algorithms/input_model/contracts.rst) 提供检查报告。应用仍可定义自己的协议。 [`operators.py`](../api/algorithms/input_model/operators.rst) 保存 BE 包装类与基本缩放操作,[`block_encoding.py`](../api/algorithms/input_model/block_encoding.rst) 提供 LCU、张量和小矩阵构造。它们是算法的组合工具。[`ode.py`](../api/algorithms/qode/ode.rst) 提供可替换线性求解接口;LCHS、Schrödingerization、CBMD 和 Carleman 各自维护实现。 ## 领域应用 [QFVM](qfvm.md) 的物理参数、Roe 公式和经典数据更新放在 `applications`。[QHAM](qham.md) 的量子组装入口是 [`algorithms/qham.py`](../api/algorithms/input_model/qham.rst);PDE 表达式、同伦推导和空间离散化支持放在 `applications/qham/`。这样可以阅读量子生成步骤,而不必同时展开全部数学推导代码。 早期演示实现集中在 `applications/legacy.py` 和 `algorithms/legacy.py`。它们用于兼容旧案例,当前文档不会将其作为新应用的默认入口。 ## 兼容与迁移 旧导入路径由根目录的 `_compat.py` 集中转发。兼容层引用同一个函数或类,不保留另一份实现。仓内源码、测试与教程使用规范路径;外部代码可逐步迁移,见[导入路径迁移](compatibility.md)。