# 算法与许可边界

MoonSpectralPrep 是原创纯 MoonBit 实现，没有逐行移植、打包或复制上游源码/fixtures。数学公式属于实现依据，兼容范围以下表为准。

| 参考 | 来源与测试许可 | 本项目采用的行为 | 差异与未覆盖 |
| --- | --- | --- | --- |
| pybaselines 1.2.1 | https://github.com/derb12/pybaselines ，BSD-3-Clause | 二阶 Whittaker、AsLS、arPLS、SNIP 的算法说明和外部数值参考 | arPLS 权重有下限；SNIP 边缘不补点；不覆盖其他 baseline 家族或自动调参 |
| SciPy 1.16.3 | https://github.com/scipy/scipy ，BSD-3-Clause | `savgol_filter(mode="interp")` 均匀轴行为，用独立实现核对一阶导 | 本库使用每点实际局部拟合，可处理非均匀轴；不提供 scipy 的所有 mode/滤波器 |
| NumPy 2.3.5 | https://github.com/numpy/numpy ，BSD-3-Clause | 密集线性求解、多项式拟合、回归和统计仅用于验证 | 不复制其源码、数据或二进制文件到发行包 |
| moonbitlang/core | https://github.com/moonbitlang/core ，Apache-2.0 | 数学函数、JSON、数组与基础运行时 | 工具链提供，未 vendoring |

MSC 采用 `sample = intercept + slope * reference` 的普通最小二乘定义；训练均值只在 fit_scatter 中形成，transform 不修改模型。SNV 定义为减均值除以样本标准差。带积分是原始或去弦线后分段线性插值的精确积分，正片段在零交点处分开。

文档中提及成熟工具不表示与维护者关联、背书、完全兼容或真实实验效果已获验证。数值对照使用项目自建的确定性合成数据，误差结论仅覆盖记录中的测试。
