core API
作用
arithmetic 在 luna-generic 的基础上补充了解析能力。它负责描述 平方根、对数、三角函数等能力 traits,以及 checked/contextual 的算术边界。
Unchecked 能力 traits
Sqrt、Cbrt、RadicalExponentialLogarithmicPowerTrigonometric、InverseTrigonometricHyperbolic、InverseHyperbolicConstants
这些定义在 src/elementary.mbt 中。
Checked / contextual 表面
共享类型
FpClassRoundingModeArithmeticContextArithmeticErrorKindArithmeticError
Checked traits
SqrtCheckedDivCheckedCompareCheckedPowNatCheckedPowIntCheckedParseChecked
Enclosure 关系
ContainsOverlapsDefinitelyLtDefinitelyLeMaybeEq
这些定义在 src/checked.mbt 中。
内置实例
Float与Double通过Kaida-Amethyst/math实现完整的 elementary 表面。Float与Double也实现sqrt_checked、div_checked、compare_checked、pow_nat_checked、pow_int_checked等 checked traits。BigInt与整数族只实现保持闭合的精确子集,最典型的是整数Power。
语义说明
- unchecked traits 把定义域和 branch 语义交给具体实例决定。
- 在有符号整数和
BigInt上,Power要求指数非负;负指数会在运行时 abort。 ArithmeticContext::new会把 precision 下限钳到1。PowNatChecked把x^0视为乘法单位元,包括0^0。- enclosure traits 只是关系,不伪装成标量总序。