luna-complex

Luna-Flow/luna-complex 为 Luna Flow 提供复数。根包定义了泛型类型 Complex[T],即任意标量 T 上的环 T[i]/(i2+1)T[i]/(i^2 + 1),以及其算术运算和 luna-generic 结构实例。float_backend 包添加了 Complex[Double] 的解析函数(开方、对数、幂、三角函数与双曲函数及其反函数),采用数值稳定的公式,并提供浮点标量的能力 trait。

本手册记录的是 MoonBit 0.10 上 0.2.0 版本(即 moon.mod 中的版本)的代码。

包

包导入路径作用页面
coreLuna-Flow/luna-complex泛型 Complex[T]:构造、修改、算术、共轭、结构实例API · 教程 · 设计
float_backendLuna-Flow/luna-complex/float_backendComplex[Double] 的解析函数;FloatingAnalyticScalar、FloatingSpecialValues、FloatingBackendScalarAPI · 教程 · 设计

根包以 core 为名进行记录。float_backend 取代了原先的 double_ext 包。

阅读路线

入门。 先阅读核心教程了解算术运算,再阅读 float_backend 教程了解 sqrt、log、sin 及其他函数。

使用本库。 随手查阅核心 API 和 float_backend API;后者说明了每个函数的分支、特殊值与中止行为,包括负实轴上的已知偏差。

参与贡献。 阅读核心设计了解代数结构及实例的合法性,阅读 float_backend 设计了解稳定公式和分支切割线的推导,并阅读贡献指南。

安装

moon add Luna-Flow/luna-complex@0.2.0
import {
  "Luna-Flow/luna-complex" @complex,
  "Luna-Flow/luna-complex/float_backend" @fb,
}

工具链

MoonBit moonc 0.10 或更高版本,使用 moon.mod / moon.pkg 清单。测试在 wasm-gc、wasm、js 和 native 上运行。

验证

moon check --target all
moon test
moon info