算法契约
在 BitCal vNext 中,算法是行为中心。因此本页解释的是语义、操作数与边界,而不是把实现技巧当成成就展示。
算法表面
| 关注点 | 读者问题 | 文档要求 |
|---|---|---|
| 输入 | 接受哪些 owner 或 view 形式? | 先把可接受公共角色写清楚。 |
| 结果 | 返回什么、修改什么? | 在谈速度之前先说明可观察效果。 |
| 边界条件 | 哪些位宽、aliasing 或 shift 边界值得注意? | 把语义边界写明,而不是留给读者猜。 |
| 证据衔接 | 性能细节该去哪看? | 把读者交给 Performance,而不是在 Reference 里夹带 unsupported benchmark claim。 |
契约规则与非目标
Reference 对算法的表述应遵守这些规则:
- 先定义 可观察行为;
- 只要语义允许,就把 owner 与 view 都视为正当输入;
- 除非页面明确声明,否则不要把 kernel 选择写成契约;
- 需要 benchmark 解释时转到 Performance,需要外部比较时转到 Research。
本页的非目标包括:
- 枚举每一个内部优化技巧;
- 用 benchmark 胜利替代 API 文档;
- 因为历史熟悉感而保留过时命名。
如何与站内其他部分配合阅读
如果你的问题是“这个操作应该产生什么结果?”,就留在 Reference;如果你的问题是“为什么算法要这样组织?”,请回到 白皮书;如果你的问题是“今天到底快多少、在什么方法下测出来?”,请转到 Performance。