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

Download history 11093/week @ 2024-04-21 12186/week @ 2024-04-28 13639/week @ 2024-05-05 11349/week @ 2024-05-12 10362/week @ 2024-05-19 9573/week @ 2024-05-26 10965/week @ 2024-06-02 10209/week @ 2024-06-09 12456/week @ 2024-06-16 13671/week @ 2024-06-23 10105/week @ 2024-06-30 10114/week @ 2024-07-07 12466/week @ 2024-07-14 13733/week @ 2024-07-21 14601/week @ 2024-07-28 12357/week @ 2024-08-04

每月下载量53,729
用于112 Crates (34个直接使用)

MIT/Apache

470KB
11K SLoC

sprs, Rust的稀疏矩阵

Build status crates.io

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许可证定义的,您有意提交用于包含在作品中的任何贡献,将以上双许可,不附加任何额外条款或条件。

请参阅贡献指南以获取有关贡献的更多信息。

依赖项

~2.5MB
~50K SLoC