36个版本
0.11.1 | 2023年5月27日 |
---|---|
0.11.0 | 2021年7月22日 |
0.10.0 | 2021年3月18日 |
0.9.4 | 2021年4月16日 |
0.1.0 | 2015年7月3日 |
在数学类别中排名#9
每月下载量53,729
用于112个 Crates (34个直接使用)
470KB
11K SLoC
sprs, Rust的稀疏矩阵
sprs在纯Rust中实现了某些稀疏矩阵数据结构和线性代数算法。
API仍在开发中,对其粗糙边缘的反馈将非常感激 :)
特性
结构
- CSR/CSC矩阵
- 三元矩阵
- 稀疏向量
操作
- 稀疏矩阵/稀疏向量乘积
- 稀疏矩阵/稀疏矩阵乘积
- 稀疏矩阵/稀疏矩阵加法、减法
- 稀疏向量/稀疏向量加法、减法、点积
- 稀疏/稠密矩阵运算
算法
- 压缩稀疏矩阵的外迭代器
- 稀疏向量迭代
- 稀疏向量联合非零迭代
- 简单的稀疏Cholesky分解(需要选择LGPL许可)
- 稀疏三角求解(右侧为稠密矩阵)
示例
矩阵构建
use sprs::{CsMat, CsMatOwned, CsVec};
let eye : CsMatOwned<f64> = CsMat::eye(3);
let a = CsMat::new_csc((3, 3),
vec![0, 2, 4, 5],
vec![0, 1, 0, 2, 2],
vec![1., 2., 3., 4., 5.]);
矩阵向量乘法
use sprs::{CsMat, CsVec};
let eye = CsMat::eye(5);
let x = CsVec::new(5, vec![0, 2, 4], vec![1., 2., 3.]);
let y = &eye * &x;
assert_eq!(x, y);
矩阵矩阵乘法,加法
use sprs::{CsMat, CsVec};
let eye = CsMat::eye(3);
let a = CsMat::new_csc((3, 3),
vec![0, 2, 4, 5],
vec![0, 1, 0, 2, 2],
vec![1., 2., 3., 4., 5.]);
let b = &eye * &a;
assert_eq!(a, b.to_csr());
要查看更完整的示例,请务必查看热扩散示例。
文档
文档可在docs.rs找到。
变更日志
请参阅变更日志。
最低支持的Rust版本
目前最低支持的Rust版本是1.64。在1.0版本之前,提高MSRV不会被视为破坏性更改,但将尽最大努力避免破坏。
许可证
许可协议为以下之一
- Apache许可证2.0版,(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT或https://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交用于包含在作品中的任何贡献,将以上双许可,不附加任何额外条款或条件。
请参阅贡献指南以获取有关贡献的更多信息。
依赖项
~2.5MB
~50K SLoC