Skip to content

算法契约

在 BitCal vNext 中,算法是行为中心。因此本页解释的是语义、操作数与边界,而不是把实现技巧当成成就展示。

算法表面

关注点读者问题文档要求
输入接受哪些 owner 或 view 形式?先把可接受公共角色写清楚。
结果返回什么、修改什么?在谈速度之前先说明可观察效果。
边界条件哪些位宽、aliasing 或 shift 边界值得注意?把语义边界写明,而不是留给读者猜。
证据衔接性能细节该去哪看?把读者交给 Performance,而不是在 Reference 里夹带 unsupported benchmark claim。

契约规则与非目标

Reference 对算法的表述应遵守这些规则:

  1. 先定义 可观察行为
  2. 只要语义允许,就把 owner 与 view 都视为正当输入;
  3. 除非页面明确声明,否则不要把 kernel 选择写成契约;
  4. 需要 benchmark 解释时转到 Performance,需要外部比较时转到 Research

本页的非目标包括:

  • 枚举每一个内部优化技巧;
  • 用 benchmark 胜利替代 API 文档;
  • 因为历史熟悉感而保留过时命名。

如何与站内其他部分配合阅读

如果你的问题是“这个操作应该产生什么结果?”,就留在 Reference;如果你的问题是“为什么算法要这样组织?”,请回到 白皮书;如果你的问题是“今天到底快多少、在什么方法下测出来?”,请转到 Performance

Whitepaper-first technical documentation for BitCal vNext.