#线性代数 #向量 #矩阵-向量 #线性 #矩阵 #代数 #矩阵运算

nightly aljabar

一个超级通用、超级实验性的线性代数库

19个版本 (3个稳定版)

1.0.2 2020年10月27日
1.0.1 2020年7月19日
1.0.0 2020年5月29日
0.5.0 2020年4月26日
0.3.1 2019年7月30日

#1644 in 数学

Download history 1/week @ 2024-05-31 2/week @ 2024-06-07

每月85次下载

MIT/Apache

135KB
3.5K SLoC

aljabar

Build Status Documentation Version Downloads

一个实验性的n维线性代数和数学库,用于计算机图形学,设计上大致兼容cgmath

该库提供

  • 向量:Vector2Vector3Vector4Vector<T, const N: usize>
  • 点:Point2Point3Point4Point<T, const N: usize>
  • 矩阵:Matrix2Matrix3Matrix4Matrix<T, const N: usize, const M: usize>
  • 四元数类型:Quaternion
  • 正交归一(旋转)矩阵:Orthonormal

aljabar支持任意大小的向量和矩阵,并将提供由其标量支持的任何数学运算的实现。此外,aljabar可以利用Rust的类型系统来确保仅对正确大小的值应用操作。aljabar可以在保持无标准兼容性的同时执行此操作。

aljabar严重依赖于不稳定的Rust功能,如const泛型,因此需要nightly才能构建。

有关更多信息以及入门指南,请参阅文档

Cargo功能

  • 默认关闭的mint功能将向mintcrate添加依赖关系,并提供在aljabar类型和mint类型之间进行转换的支持。
  • 默认关闭的 serde 功能为添加从 serde crate 的序列化/反序列化支持。
  • 默认关闭的 rand 功能允许您通过从随机数源采样来创建随机点、向量和矩阵。
  • 默认关闭的 swizzle 功能为向量启用 swizzle 函数。

贡献

欢迎各种类型的拉取请求,特别是关于性能改进的请求。尽管 aljabar 在维度上是通用的,但针对特定维度的算法添加简单,并打算在未来替换掉最常见的代码路径中的通用算法。

支持

请联系作者 map@maplant.com 或在 github 上 提交问题。

依赖项

约 125–530KB
~10K SLoC