core 设计
设计目标
arithmetic 让 LunaFlow 从“代数结构”继续扩展到“解析能力”,同时保留 后端差异和语义边界,不伪造一个统一的“实数接口”。
核心设计决策
- 解析能力拆成很多小 trait,而不是一个巨大的单体接口。
- unchecked 与 checked 两条表面并存,让调用方自己选择直接后端语义还是 显式上下文验证。
- checked 层通过
ArithmeticContext与ArithmeticError提供统一错误模型。 - enclosure 风格关系与标量比较分离,避免语义造假。
- 整数族实现刻意保持狭窄,只暴露在该类型上仍然闭合的能力。
边界
- 本包不定义向量、矩阵、复数或符号对象。
- 它不会把 branch cut 或特殊值语义压平到一个模糊抽象里。