# 验证记录

本记录日期为 2026-11-11。固定 SDK：moonc 0.10.15+943464bfa，moon 0.1.20261012。测试、示例和参考检查均可从仓库重放；平台状态以 Actions 对应提交为准。

## 本地检查

29 个测试覆盖带状方程残差、三点解析逆、物理坐标导数、冻结参考与数组所有权、失败索引、退化输入及预算边界。wasm-gc、wasm、js 执行 check/test/build。Windows 本机缺少系统 C 编译器，native 的本地 check 可通过，执行验收交由配有编译器的 Linux CI；此限制不伪装成本机 native 运行成功。

三个完整工作流的实际输出：Raman 两段面积 832.8447940928197 / 602.0913274153061、比值 1.3832532643645707、基线收敛；NIR 的 MSC 斜率 1.7、截距 0.1200000000000001、残差 RMS 2.180434735126115e-16，冻结参考不变；仪器对齐生成 11 点公共轴，裁剪后 9 点并输出确定性的导数管线 JSON。

## 独立数值参考

Python 3.12、NumPy 2.3.5、SciPy 1.16.3、pybaselines 1.2.1。固定 81 点合成曲线的十项比较在 wasm-gc、wasm、js 上通过，三个目标本机最大误差一致。表中是最大绝对误差；判断还使用相对容差 1e-9。

| 项目 | 最大绝对误差 | 绝对容差 |
| --- | ---: | ---: |
| whittaker | 1.9895e-13 | 1e-10 |
| asls | 1.3197e-10 | 2e-08 |
| arpls | 7.5948e-08 | 2e-07 |
| snip | 0 | 1e-12 |
| sg_derivative | 3.6415e-14 | 2e-11 |
| polynomial | 8.8818e-15 | 2e-11 |
| snv | 8.8818e-16 | 1e-12 |
| msc | 8.8818e-16 | 1e-12 |
| msc_intercept | 5.5511e-16 | 1e-12 |
| msc_slope | 8.8818e-16 | 1e-12 |

Whittaker 对照独立构造的 NumPy 密集线性系统；AsLS/arPLS 对照 pybaselines；SNIP 仅比较不受边缘 padding 影响的内部区间；局部一阶导数对照 SciPy savgol_filter(mode="interp", delta=0.25)；多项式、SNV 和 MSC 对照 NumPy。

arPLS 使用 1e-8 权重下限，与参考的尾部权重处理不同，故绝对容差为 2e-7。SNIP 缺少对称邻居时保留旧值，边缘不与采用 padding 的实现等价。该记录只支持上述合成样例、参数及容差，不证明所有输入精度，不包含真实实验数据、临床效能或运行时间基准。

## 重放

运行 README 中的 check/test/build 和三个 examples 命令；独立对照使用 `python scripts/verify_numerics.py --target wasm-gc`，将目标改为 wasm、js、native 可分别执行。依赖版本在 scripts/requirements-oracle.txt 固定。CI 同时运行四个目标。

`python scripts/check_project.py` 按根目录生产 .mbt 物理行计数，排除空行、注释、测试、示例与生成接口。提交数按 Git 历史审阅实际功能切片，不将格式调整当成新增功能。发布前检查生成接口、格式、文档链接和隐私；公开 CI 与 Release 仅以实际记录为证。
