#simd #neon #sse #low-level #high-level #instrinsics

nightly llml

使用高级前端和低级后端实现基本数学数据类型

6个版本

0.2.3 2022年1月26日
0.2.2 2022年1月23日
0.1.1 2022年1月2日

#647 in 数学

MIT/Apache

155KB
4.5K SLoC

低级数学库(LLML)

Crate API

使用高级前端和低级后端实现基本数学数据类型

支持的目标

LLML目前支持,计划支持WASM,并提供适用于所有目标的原始实现。

指令集支持

截至今天,LLML支持x86/x86_64的<强>SSE3,以及ARM/aarch64的<强>Neon。预计不久将支持<强>AVX和<强>AVX2,作为可选功能。

当前已实现

支持f32f64的复数

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

支持f32f64的2、3和4值欧几里得向量

  • 基本算术(<强>加法、<强>减法、<强>负号、<强>乘法 & <强>除法
  • <强>求和sum)、<强>范数和<强>单位向量
  • <强>点积dot)和<强>叉积cross
  • <强>平方根sqrt)和快速平方根(sqrt_fast,仅在f32 x86/and x86_64)
  • <强>绝对值

2x2 和 3x3 的 f32f64 矩阵

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

当前功能

llml_rand

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

llml_serde

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

依赖项

~0.3–1MB
~21K SLoC