面向 MoonBit 的科学计算

协同工作的代数 trait、数值类型与数值方法。算法只写一次,就能在整数、浮点数、十进制数、复数或矩阵上运行。

打开文档阅读愿景

数值语义

同一组方程,两种数系。

同一个 Runge–Kutta 积分器,从同一点出发把 Lorenz 系统各算一遍:一次用 Float,一次用 Double。仅仅是舍入,就让两条轨迹分道扬镳。Luna Flow 让数系成为一个显式的选择。

一个算法

一次编写,在每个世界中求值

Horner 法则只需要一个半环。同一个函数可以在机器整数、浮点数、大整数、复数和矩阵上对 1+x21 + x^2 求值。它在整数中没有根,在复数中有根 ii,在矩阵中则以一个旋转作为根。

/// 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)
// => 50
R[x]S[x]RSh[x]hevaevh(a)

保持结构的映射

结构随映射而行

只需证明一次的同态,无需新的证明即可提升到多项式、矩阵和积上。两条必须一致的路径确实一致:先求值再映射,或先映射再求值。

ev⁡h(a)∘h[x]  =  h∘ev⁡a\operatorname{ev}_{h(a)} \circ h[x] \;=\; h \circ \operatorname{ev}_a

原则

  1. 先抽象,后实现

    从结构与定律出发。实现细节只留在需要它们的那一层。

  2. 语义显式化

    浮点数、任意精度值和十进制值都能做加法,但它们的含义并不相同。Luna Flow 让这种差异始终清晰可见。

  3. 互操作优先于孤岛

    独立的库通过小型 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%