The paper Persistent Laplacians: properties, algorithms and implications suggests an algorithm to compute the persistent Laplacian of a filtration in Theorem 5.1. This repository implements the suggested algorithm in Rust and exposes Python bindings. Sparse matrix computations are used in the implementation of the algorithm.
To evaluate correctness, the nullity of the computed persistent laplacians is computed using SVD on dense matrices. This is the rank of the persistent homology, so it can be cross checked with available implementations (tests use gudhi). This computation is very slow (and dominates the benchmark timing for the larger datasets). The goal is to replace it with Lanczos algorithm for sparse matrices to approximate the smallest eigenvalues.
Run maturin develop --release to build in release mode. You can run cargo bench to see benchmarks for an example set of points using the Alpha complex from gudhi. For now you'll need to do that in a pip env named venv due to hardcoded config. Run pytest -v python/tests/persistent_homology.py; cargo test to run tests.