Skip to content

アーキテクチャ

境界モデル

luna-generic は代数構造を担当します。arithmetic は解析、checked、contextual、 enclosure capability を加えますが、一体化した scalar abstraction は導入しません。 algorithm は要件を表す最小の trait 集合を合成します。

境界戻り値意味
Unchecked traitSelf具体 backend の直接的な挙動
Checked traitResult[T, ArithmeticError]拒否された操作を明示
Contextual traitResult[ArithmeticOutcome[T], ArithmeticError]明示的 context と成功 diagnostics
Enclosure relationBool包含、確定関係、可能関係

Errors、Diagnostics、Certification

error は受理できる結果を返せない操作を表します。diagnostics は注目すべき条件を伴う成功結果を 表し、logical OR で合成します。両者は分けます。flag が error を隠したり、flag を運ぶために error を作ったりしてはいけません。

CertificationFailure は error 内でのより精密な区別です。proof-backed implementation が candidate result が target を満たすと確立できない場合に使います。detail は失敗した stage (RangeReductionSeriesEvaluationEnclosurePropagationTargetRounding)と reason を分けます。この package は retry policy を定めません。caller と concrete backend が resource や precision を増やすかを決めます。

Context と State

ArithmeticContextArithmeticDiagnosticsArithmeticOutcomeCertificationFailureDetail はすべて不変な通常の値です。context は引数で渡し、diagnostics は 明示的に合成し、certification evidence は返された error に保持します。global rounding mode、 hidden status register、mutable proof state は必要ありません。

同梱 Adapter の制約

FloatDouble は、未対応の意味論を作らずに提供できる contextual capability だけを 実装します。native scalar semantics を保ち、検出可能な Int 変換損失を報告し、固定 IEEE 形式で隣接値を扱います。contextual 定数と双曲線関数は意図的に実装しません。concrete certified backend はこれらの traits を実装し、構造化された certification failure を返せます。