数値の意味論
同じ方程式、二つの数の体系。
同じ Runge–Kutta 積分器で、同じ点から Lorenz 系を二度解きます。一度は Float、一度は Double で。丸めだけで二つの軌道は離れていきます。Luna Flow では、数の体系は明示的な選択です。
1 つのアルゴリズム
一度書けば、どの世界でも評価できる
Horner 法に必要なのは半環だけです。同じ関数が、機械整数、浮動小数点数、多倍長整数、複素数、行列の上で を評価します。この多項式は整数の中には根を持たず、複素数では を根に持ち、行列では回転を根に持ちます。
/// Horner's rule, written once for every semiring.
fn[R : Semiring] horner(coefficients : Array[R], x : R) -> R {
let mut acc : R = Zero::zero()
for i = coefficients.length() - 1; i >= 0; i = i - 1 {
acc = acc * x + coefficients[i]
}
acc
}horner([1, 0, 1], 7)
// => 50horner([1.0, 0.0, 1.0], 0.5)
// => 1.25horner([1N, 0N, 1N], 10000000000N)
// => 100000000000000000001horner([one, zero, one], i)
// => 0 + 0ihorner([id, zero, id], quarter_turn)
// => [[0, 0], [0, 0]]構造を保つ写像
構造は写像とともに運ばれる
一度証明した準同型は、新たな証明なしに多項式、行列、直積へ持ち上がります。一致すべき 2 つの経路は、実際に一致します。評価してから写すか、写してから評価するかです。
原則
実装より先に抽象
構造と法則から始めます。実装の詳細は、それを必要とする層の中にとどめます。
明示された意味論
浮動小数点、任意精度、十進の値はどれも足し算ができますが、意味は同じではありません。Luna Flow はその違いを見えるままにします。
孤立より相互運用
独立したライブラリが小さな trait と軽量アダプタを通じて参加し、1 つの計算世界へと組み合わさります。
数学は一度だけ書く。数の体系はあとで選ぶ。
代数 trait はアルゴリズムに必要なものを記述し、数値型はその意味を決めます。Luna Flow は両者を分けておくので、選択はいつでもあなたの手にあります。
ライブラリ
ドキュメントを開く
どのリポジトリも、API・設計・チュートリアルを同じ構成で、英語・中国語・日本語でドキュメント化しています。
基礎抽象
エコシステムを結ぶ共有 trait、汎用構造、基盤ユーティリティ。
- arithmetic
Luna Flow の数値型のための解析的能力トレイト。初等関数、明示的な精度と診断を伴う検査付き・コンテキスト付き演算、包含区間の関係を提供する。
100% - luna-generic
LunaFlow の数学パッケージの汎用的な基盤となる代数 trait と既定の数値インスタンス。
100% - luna-utils
luna-generic の trait を制約に用いる、Luna-Flow プロジェクト向けの汎用的な配列・比較ヘルパー。
100%
数値と表現
数値計算のための具体的・汎用的な表現。
- floating
MoonBit 向けの任意精度の二進・十進・ボール(区間)演算ライブラリで、checked 演算と明示的な数値意味論を備えます。
100% - luna-complex
LunaFlow のための汎用複素数演算ライブラリ。倍精度複素数向けの解析関数・超越関数も備えます。
100% - quaternion
算術演算、正規化、3D 回転、補間、オイラー角変換を備えた MoonBit 向けの汎用四元数ライブラリ。
100% - luna-poly
MoonBit 向けの正規形を持つ密・疎・名前付き変数の多項式を、イミュータブルな値とミュータブルなコンテナとして提供します。
100%
解析と最適化
高水準の数学計算を支える線形・数値・記号ツール。
- linear-algebra
MoonBit 向けの稠密行列とベクトルを不変形式とインプレース形式の両方で提供し、検査付きの数値ルーチンと汎用線形代数のための能力 trait を備えます。
100% - linear-program
線形計画問題を定義し、二段階単体法で解くための MoonBit ライブラリ。
100% - calculus-numerical
MoonBit 向けの実関数の数値微分と Gauss–Kronrod 数値積分のライブラリ。Luna-Flow の一部です。
100% - autodiff
Luna Flow の代数構造と算術構造の上での前進モード自動微分。
100%
システムと研究
実験的システム、証明ツール、エコシステム規模のプロジェクト。
- luna_thread
MoonBit のための並列プランとワークフローグラフ。MoonBit で検証し、FFI を通じてネイティブ C ランタイムで実行します。
100% - QED
MoonBit で書かれたカーネル優先の定理証明器で、形式仕様に準拠する。
100% - stella
MoonBit で書かれた開発中の証明支援系で、Martin-Löf 型理論の型検査器を中核とする。
100% - mooncake_impact_factor
依存、リリース、ダウンロードのシグナルを組み合わせた、MoonBit パッケージ向けのローカルなランキング・検索ツールキット。
100% - type_theory
Luna Flow の記号処理パッケージが共有する名前、束縛、捕獲回避代入、書き換え、λ計算の正規化器。
100% - geometry3d
Luna-Flow/linear-algebra 上に構築された MoonBit 向けの小さな 3D レンダリングパイプライン。ターミナル、Canvas、GSAP SVG のバックエンドを備えます。
100% - mare_mark
MoonBit のペイロードを対象とした、再現可能なベンチマーク、統計的比較、チューニング、自己完結型レポート。
100% - diff_bench
Luna-Flow の MoonBit パッケージ向けの差分正確性・性能ベンチマーク。
100%