数值语义
同一组方程,两种数系。
同一个 Runge–Kutta 积分器,从同一点出发把 Lorenz 系统各算一遍:一次用 Float,一次用 Double。仅仅是舍入,就让两条轨迹分道扬镳。Luna Flow 让数系成为一个显式的选择。
一个算法
一次编写,在每个世界中求值
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]]保持结构的映射
结构随映射而行
只需证明一次的同态,无需新的证明即可提升到多项式、矩阵和积上。两条必须一致的路径确实一致:先求值再映射,或先映射再求值。
原则
先抽象,后实现
从结构与定律出发。实现细节只留在需要它们的那一层。
语义显式化
浮点数、任意精度值和十进制值都能做加法,但它们的含义并不相同。Luna Flow 让这种差异始终清晰可见。
互操作优先于孤岛
独立的库通过小型 trait 和轻量适配器接入,再组合成同一个计算世界。
数学只写一次,数系随后再选。
代数 trait 描述算法需要什么,数值类型决定它意味着什么。Luna Flow 让两者各司其职,选择权始终在你手里。
文档库
打开文档
每个仓库都以相同的结构,用英文、中文和日文记录其 API、设计和教程。
基础抽象
连接整个生态的共享 trait、泛型结构与基础工具。
- arithmetic
为 Luna Flow 数值类型提供的分析能力 trait:初等函数、带显式精度与诊断的检查运算和上下文运算,以及包络关系。
100% - luna-generic
代数 trait 与默认数值实例,构成 LunaFlow 数学包的泛型基础。
100% - luna-utils
面向 Luna-Flow 项目的泛型数组与比较辅助函数,以 luna-generic 的 trait 作为约束。
100%
数值与表示
面向数值计算的具体表示与泛型表示。
- floating
面向 MoonBit 的任意精度二进制、十进制与球(区间)算术,提供 checked 运算和显式的数值语义。
100% - luna-complex
LunaFlow 的泛型复数运算库,并为双精度复数提供解析函数与超越函数。
100% - quaternion
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%