#vector #simd-vector #simd #3d #avx

mafs

专为小型项目提供快速数学计算。支持SIMD,但仅适用于x86

1个不稳定版本

0.1.0 2023年8月29日

#1406 in 数学

MIT许可协议

56KB
1K SLoC

一个微型的SIMD向量库 🏹

🚩 仅支持具有AVX2和FMA扩展的x86_64 CPU架构!

可以通过将这些行放入.cargo/config.toml来启用它们,该文件位于您的项目根目录或cargo的安装目录中

[build]
rustflags = ["-Ctarget-feature=+avx2,+fma"]

亮点

  • 创建此库的动机是为小型计算机图形项目提供快速向量。
  • 简单实现,没有宏技巧。探索源代码,了解一切是如何完成的!

数据类型

  • 双精度
    • Dvec2 - 2D向量
    • Dvec4 - 4D向量
    • Dmat4 - 4x4矩阵
  • 单精度
    • Fvec2 - 2D向量(此向量不是SIMD)
    • Fvec4 - 4D向量
    • Fmat4 - 4x4矩阵

支持的运算

  • 算术运算(+-*/
    • 逐分量相加、减去、乘以或除以两个向量,或者一个向量与一个标量。
    • 相加或减去两个矩阵。
    • 相乘两个矩阵。
    • 将矩阵与向量相乘。
  • 方法
    • 对一个向量进行的操作:逐分量取整
    • 对两个向量进行的操作:点积、叉积、逐分量最小值和最大值。
    • 将单个向量缩减:跨所有分量的最小值和最大值。
    • 求SE(3)矩阵的逆,即变换矩阵。
    • 转置矩阵。

库功能

  • 启用库功能bytemuck以将所有向量标记为纯旧数据

依赖关系

~94–300KB