#linear-algebra #matrix-operations #machine-learning #convenience #sparse-matrix #dimensionality #reduction

single_algebra

A linear algebra convenience library for the single-rust library. Can be used externally as well.

20 releases

new 0.2.0-alpha.0 Feb 15, 2025
0.1.2-alpha.7 Feb 5, 2025
0.1.2-alpha.4 Jan 30, 2025
0.1.1-alpha.5 Dec 23, 2024
0.1.0-alpha.3 Sep 10, 2024

#121 in Science

Download history 190/week @ 2024-11-05 27/week @ 2024-11-12 9/week @ 2024-11-19 2/week @ 2024-12-03 18/week @ 2024-12-10 376/week @ 2024-12-17 142/week @ 2024-12-24 3/week @ 2024-12-31 3/week @ 2025-01-07 1/week @ 2025-01-14 350/week @ 2025-01-21 465/week @ 2025-01-28 319/week @ 2025-02-04 240/week @ 2025-02-11

1,374 downloads per month
Used in single_rust

Custom license

150KB
3.5K SLoC

single-algebra 🧮

The companion algebra library for single-rust, providing powerful matrix operations and machine learning utilities.

Features 🚀

  • Efficient operations on sparse and dense matrices
  • Dimensionality reduction techniques
  • Clustering algorithms including Louvain community detection
  • More features planned!

Matrix Operations 📊

  • SVD decomposition with parallel and LAPACK implementations
  • Matrix convenience functions for statistical operations
  • Support for both CSR and CSC sparse matrix formats

Clustering 🔍

  • Louvain community detection
  • Similarity network construction
  • K-nearest neighbors graph building
  • Local moving algorithm for community refinement

Dimensionality Reduction ⬇️

  • Incremental PCA implementation
  • Support for sparse matrices in dimensionality reduction

Acknowledgments 🙏

The Louvain clustering implementation was adapted from louvain-rs written by Juan Morales (crispamares@gmail.com). The original implementation has been modified to better suit the needs of single-algebra.

Installation

Add this to your Cargo.toml:

[dependencies]
single-algebra = "0.2.0-alpha.0"

Dependencies

~11–50MB
~686K SLoC