Skip to content

core API

作用

arithmeticluna-generic 的基础上补充了解析能力。它负责描述 平方根、对数、三角函数等能力 traits,以及 checked/contextual 的算术边界。

Unchecked 能力 traits

  • SqrtCbrtRadical
  • Exponential
  • Logarithmic
  • Power
  • TrigonometricInverseTrigonometric
  • HyperbolicInverseHyperbolic
  • Constants

这些定义在 src/elementary.mbt 中。

Checked / contextual 表面

共享类型

  • FpClass
  • RoundingMode
  • ArithmeticContext
  • ArithmeticErrorKind
  • ArithmeticError

Checked traits

  • SqrtChecked
  • DivChecked
  • CompareChecked
  • PowNatChecked
  • PowIntChecked
  • ParseChecked

Enclosure 关系

  • Contains
  • Overlaps
  • DefinitelyLt
  • DefinitelyLe
  • MaybeEq

这些定义在 src/checked.mbt 中。

内置实例

  • FloatDouble 通过 Kaida-Amethyst/math 实现完整的 elementary 表面。
  • FloatDouble 也实现 sqrt_checkeddiv_checkedcompare_checkedpow_nat_checkedpow_int_checked 等 checked traits。
  • BigInt 与整数族只实现保持闭合的精确子集,最典型的是整数 Power

语义说明

  • unchecked traits 把定义域和 branch 语义交给具体实例决定。
  • 在有符号整数和 BigInt 上,Power 要求指数非负;负指数会在运行时 abort。
  • ArithmeticContext::new 会把 precision 下限钳到 1
  • PowNatCheckedx^0 视为乘法单位元,包括 0^0
  • enclosure traits 只是关系,不伪装成标量总序。