111个版本
| 0.33.0 | 2024年6月23日 |
|---|---|
| 0.32.5 | 2024年3月28日 |
| 0.32.3 | 2023年7月9日 |
| 0.32.2 | 2023年3月7日 |
| 0.1.0 | 2014年11月22日 |
#4 in 数学
704,088 每月下载量
用于 2,360 个crates(892个直接使用)
2MB
36K SLoC
线性代数库 适用于Rust编程语言。
lib.rs:
nalgebra
nalgebra 是一个为Rust编写的线性代数库,针对
- 通用线性代数(仍缺少许多功能…)
- 实时计算机图形学。
- 实时计算机物理学。
使用 nalgebra
您需要最新稳定的 rust编译器 和官方包管理器:cargo。
只需将以下内容添加到您的 Cargo.toml 文件中
[dependencies]
// TODO: replace the * by the latest version.
nalgebra = "*"
nalgebra 的大多数有用功能都分组在根模块 nalgebra:: 中。
然而,推荐使用 nalgebra 的方法是显式导入类型和特性,并使用 na:: 前缀调用免费函数
#[macro_use]
extern crate approx; // For the macro assert_relative_eq!
extern crate nalgebra as na;
use na::{Vector3, Rotation3};
fn main() {
let axis = Vector3::x_axis();
let angle = 1.57;
let b = Rotation3::from_axis_angle(&axis, angle);
assert_relative_eq!(b.axis().unwrap(), axis);
assert_relative_eq!(b.angle(), angle);
}
功能
nalgebra 旨在成为一个通用、低维度的线性代数库,具有针对计算机图形学和物理学的优化工具集。这些功能包括
- 一个可参数化的类型
Matrix,用于向量、(正方形或矩形)矩阵和已知尺寸的切片,尺寸在编译时(使用类型级别整数)或运行时已知。 - 编译时尺寸的矩阵和向量是静态分配的,而动态的则在堆上分配。
- 低维矩阵和向量的便捷别名:从
Vector1到Vector6,以及从Matrix1x1到Matrix6x6,包括矩形矩阵如Matrix2x5。 - 编译时已知的点大小和便捷别名:
Point1到Point6。 - 平移(视为通过乘法组合的转换):
Translation2、Translation3。 - 旋转矩阵:
Rotation2、Rotation3。 - 四元数:
Quaternion、UnitQuaternion(用于3D旋转)。 - 单位复数可用于2D旋转:
UnitComplex。 - 范数等于一的代数实体:
Unit<T>,例如:Unit<Vector3<f32>>。 - 等距性(平移 × 旋转):
Isometry2、Isometry3 - 相似变换(平移 × 旋转 × 均匀缩放):
Similarity2、Similarity3 - 存储为齐次矩阵的仿射变换:
Affine2、Affine3 - 存储为齐次矩阵的投影(即可逆)变换:
Projective2、Projective3 - 存储为齐次矩阵的通用变换,不一定可逆:
Transform2、Transform3 - 计算机图形学的3D投影:
Perspective3、Orthographic3 - 矩阵分解:
Cholesky、QR、LU、FullPivLU、SVD、Schur、Hessenberg、SymmetricEigen - 矩阵的行和列的插入和删除。
依赖关系
~0.8–4MB
~94K SLoC