6个版本
0.2.3 | 2022年1月26日 |
---|---|
0.2.2 | 2022年1月23日 |
0.1.1 | 2022年1月2日 |
#647 in 数学
155KB
4.5K SLoC
低级数学库(LLML)
使用高级前端和低级后端实现基本数学数据类型
支持的目标
LLML目前支持
指令集支持
截至今天,LLML支持x86/x86_64的<强>SSE3强>,以及ARM/aarch64的<强>Neon强>。预计不久将支持<强>AVX强>和<强>AVX2强>,作为可选功能。
当前已实现
支持f32
和f64
的复数
- 基本算术(<强>加法强>、<强>减法强>、<强>负号强>、<强>乘法强>、<强>除法强>)
- 复数算术(<强>乘法强>和<强>除法强>)
- <强>倒数强>和<强>共轭强>
- <强>半径强>、<强>角度强> & <强>极坐标强>
- <强>平方根强>、<强>指数强>和<强>自然对数强>
- <强>正弦强>、<强>余弦强>和<强>正切强>
- <强>整数强>、<强>小数强> & <强>复数强>的幂
- 虚数指数(
expi
) - 实数的复数平方根(
sqrtc
) - 复数幂(
powc
)和虚数幂(powci
)
支持f32
和f64
的2、3和4值欧几里得向量
- 基本算术(<强>加法强>、<强>减法强>、<强>负号强>、<强>乘法强> & <强>除法强>)
- <强>求和强>(
sum
)、<强>范数强>和<强>单位向量强> - <强>点积强>(
dot
)和<强>叉积强>(cross
) - <强>平方根强>(
sqrt
)和快速平方根(sqrt_fast
,仅在f32
x86/and x86_64) - <强>绝对值强>
2x2 和 3x3 的 f32
和 f64
矩阵
- 标量算术(加法,减法,取反,乘法,除法)
- 矩阵算术(矩阵-矩阵和矩阵-向量 乘法)
- 迹(
tr
)和 行列式(det
) - 安全(
inv
)和危险(inv_unsafe
)的 逆 - 转置(
transp
) - 旋转矩阵
当前功能
llml_rand
实现所有数据类型的 随机 生成,使用 rand
llml_serde
实现所有数据类型的 序列化 和 反序列化,使用 serde
依赖项
~0.3–1MB
~21K SLoC