1 个不稳定版本

0.1.0 2022 年 1 月 2 日

#44 in #sse

MIT/Apache

7KB
138

低级数学库 (LLML)

Crate API

实现具有高级前端和低级后端的基本数学数据类型

支持的目标

LLML 目前支持 x86/x86_64ARM/aarch64,计划在未来支持 WASM,并提供适用于所有目标的 naive 实现。

指令集支持

截至今天,LLML 支持 x86/x86_64 的 SSE3 和 ARM/aarch64 的 Neon。预计将在不久的将来支持 AVXAVX2 作为可选功能。

已实现的功能

针对 f32f64 的复杂数

  • 基本算术(加法减法取反乘法除法
  • 复杂数算术(乘法除法
  • 倒数共轭
  • 半径角度极坐标
  • 平方根指数自然对数
  • 正弦余弦正切
  • 整数小数复数 的幂
  • 虚数的指数(expi
  • 实数的复数平方根(sqrtc
  • 复数幂(powc)和虚数幂(powci

针对 f32f64 的 2、3 和 4 维欧几里得向量

  • 基本算术(加法减法取反乘法除法
  • 求和sum)、范数单位向量
  • 点积dot)和 叉积cross
  • 平方根sqrt)和 快速平方根sqrt_fast,仅在某些平台上比 f32 x86/x86_64 快)
  • 绝对值

针对 f32f64 的 2x2 和 3x3 矩阵

  • 标量运算(加法减法取反乘法除法
  • 矩阵运算(矩阵-矩阵和矩阵-向量 乘法
  • tr)和 行列式det
  • 安全(inv)和不安全(inv_unsafe)的
  • 转置transp
  • 旋转矩阵

当前功能

llml_rand

实现了所有数据类型的 随机 生成,使用 rand

llml_serde

实现了所有数据类型的 序列化反序列化,使用 serde

依赖项

~2MB
~44K SLoC