Luna-Generic
これは Luna-Flow/luna-generic の想定 v0.3.3 リリース向け日本語ドキュメントです。
概要
luna-generic は Luna プロジェクト向けに、一般的な代数 trait と標準数値型の既定インスタンスを提供します。
このリリース候補の中心は次の 3 点です。
BigIntが既定で公開される数値型に追加されました。- 整数から対象型への埋め込みは、明示的な準同型 trait として整理されました。
Integral::normalizeにより、すべての整数ソース型に対して正規化済みのBigInt入口が追加されました。
公開 Trait
AddMonoid,MulMonoidAddGroup,MulGroupSemiring,Ring,FieldIntegral,NatNatHomomorphism,IntegralHomomorphismNum
公開演算と既定型
- 演算 trait:
One,Zero,Inverse,Conjugate - 既定数値型:
Int,Int16,Int64,UInt,UInt16,UInt64,BigInt,Float,Double
整数モデル
NatはUInt、UInt16、UInt64を対象としますIntegralは符号付き整数、符号なし整数、およびBigIntを対象とします- 符号なし整数インスタンスは
Semiringまでです Integral::normalizeは任意の整数値をBigIntへ正規化しますNatはIntegral::normalizeを通じてBigIntへの正確な埋め込みを共有します
埋め込み API
NatHomomorphism::from_natは任意のNatソース型からの多相的な対象側埋め込みを提供しますIntegralHomomorphism::from_integralは任意のIntegralソース型からの多相的な対象側埋め込みを提供します- 既定の実装経路は
Integral::normalizeの後に対象型ごとのBigInt変換を呼ぶ形です BigIntへの埋め込みは正確ですFloatとDoubleへの埋め込みは近似であり、大きな値は丸められる可能性があります
検証
推奨するリリース前チェック:
bash
moon check
moon test