core API
役割
luna-generic は LunaFlow の代数 trait 基盤レイヤです。数値アルゴリズム やコンテナを直接提供するのではなく、上位パッケージが共有する能力境界を 定義します。
構造 traits
AddMonoid、MulMonoidAddGroup、MulGroupSemiring、Ring、FieldIntegralNatNatHomomorphismIntegralHomomorphismNum
これらは src/structure.mbt にあります。
操作 traits
ZeroOneInverseConjugate
これらは src/operation.mbt にあります。
同梱インスタンス
- 符号付き整数:
Int、Int16、Int64 - 符号なし整数:
UInt、UInt16、UInt64 - 正確な大整数:
BigInt - 浮動小数点:
Float、Double
意味論メモ
Integral::normalize(Self) -> BigIntは任意の整数値をBigIntへ正規化する 標準入口です。Natも trait 継承により同じnormalize(Self) -> BigInt経路を使います。NatHomomorphism::from_natとIntegralHomomorphism::from_integralは、 幅ごとの専用コンストラクタではなく、ソース trait に対する多相的な埋め込み入口です。- 既定の埋め込み経路は
Integral::normalizeの後に対象型ごとのBigInt変換を呼ぶ形です。 - 符号なし整数は
Semiringまでで止まり、加法逆元を持つ構造のふりをしません。 FloatとDoubleの埋め込みは近似であり、大きな整数は丸められ得ます。
ソース入口
src/structure.mbt:trait 定義src/operation.mbt:基礎操作 traitssrc/impl_signed.mbt、src/impl_unsigned.mbt、src/impl_bigint.mbt、src/impl_float.mbt、src/impl_dbl.mbt:既定インスタンス