# 架构与数值约定

## 状态与所有权

`ParityCheck` 保存按校验行组织的变量索引、按变量组织的校验索引以及共享边编号。构造函数复制并排序输入；行、列和导出的 dense 数据不暴露内部可变数组。编码器持有同一只读图及受限 RREF，返回的码字独立分配。`Permutation` 也拥有自己的索引副本。

`Encoder` 表示齐次空间 Hx=0；`CosetEncoder` 先求 Hx=s 的一个特解，再与齐次码字异或。它们不保证最小重量，也不对错误进行猜测。对偶码的校验矩阵来自原码生成基，整体偶校验扩展在末尾追加一个坐标。

## 接收与译码

LLR 定义为 log(P0/P1)。BPSK 实数观测映射使用 2y/variance；逐样本 variance 可表达异方差观测，不生成随机噪声。概率转换采用对称 logistic，避免 exp(大正数)；输入和输出 clipping 在各 API 注释中说明。

迭代译码器使用边消息。Sum-Product 的校验更新使用稳定 box-plus；Flooding Min-Sum 同步更新；Layered Min-Sum 在每行后更新变量后验。内部后验不提前裁剪，避免减去旧消息时丢失外信息。迭代数为零只做初始硬判决；converged 仅表示综合为零。

`decode_exact` 枚举小码的所有等概率码字，用 log-sum-exp 求比特边缘；序列 ML 结果和比特 MAP 后验是不同对象。相等权重的 ML 序列选最小信息掩码，并报告 ties。`nearest_word` 则对最近距离并列返回 None。两者仅作为小码诊断/对照，不替代大规模 LDPC 的迭代算法。

## 擦除与诊断

`peel` 是队列驱动的单未知校验传播；停止后不猜 stopping set。`stopping_set_report` 指出只有一个所选变量的边界校验，空集按数学定义真。`recover_erasures` 的稠密消元报告唯一解、多解和矛盾，特解不等于唯一解。

`RatePlan` 独立 LLR 重复观测相加、最后裁剪；BEC 重复观测必须一致，punctured 坐标保持未知，shortened 坐标恢复为精确 BEC 值。LLR 的 shortening 是有限先验，译码后仍应调用 accepts。

## 边界与协议

所有矩阵规模、边数、稠密分配、迭代工作量和精确枚举都有独立预算。新精确译码上限为长度 256、维度 16，且 n*(k+1)*2^k 不超过 20,000,000；这些是本库资源保护，不是通信标准参数。

JSON 入口先拒绝过深结构和重复键，再进行严格字段和数值校验。错误返回 ok:false；CLI 的进程成功不代表请求成功，宿主必须检查 ok。库不执行网络或文件操作。服务方还需要请求超时、并发上限和进程隔离。

## 验证分层

1. 公开行为：穷举 Hamming 编码/综合、擦除组合、单错误、双对偶和置换等价。
2. 算法对照：Python 独立迭代/GF(2)/边缘 fixture；另用独立概率乘积枚举核对 log-domain 精确边缘。
3. 输入防护：形状、非二值、NaN/Infinity、资源预算和协议字段负例。
4. 集成：四个真实示例以及 Python smoke 驱动真实 CLI 的成功/失败请求。
5. 平台：三个便携目标本地实测；native 本地只 check，构建/运行证据须来自真实云端 CI。

提交审计由工程切片 ledger 和脚本共同完成。脚本校验 SHA 可达、非空、非 merge、账号一致和说明齐全；是否有工程意义仍是明确的人工作业判断，不能用 raw count 自动证明。
