FAQ

Q: Can RIVET handle arbitrary bifiltrations?

A: The current release of RIVET handles arbitrary 1-critical simplicial bifiltrations, i.e., bifiltered simplicial complexes where each simplex has a unique bigrade of appearance. Support for multicritical simplicial bifiltrations and free chain modules has been implemented in Roy Zhao's fork of RIVET, and is seemingly ready to use, but is still under review and is not yet in the main repository.

Q: How large a bifiltration can RIVET handle, and how does the performance of RIVET compare to that of 1-D persistence code?

A: In RIVET, the computation time is controlled by coarsening the bifiltration, so that the bigrades of appearance of simplices in the bifiltration live on a $k_x$ x $k_y$ grid for some small values of $k_x$ and $k_y$. Choosing relatively small values of $k_x$ and $k_y$ (say $k_x=k_y\sim 15$), we have been able to comfortably compute the 1st persistent homology of bifiltrations coming from real data with $>$ 15 million simplices, using the current code. Compared to what is being done today in in ordinary one-parmeter persistence computation, 15 million simplices is fairly small: State of the art persistence codes now handle some 1-D filtrations with billions of simplices.  Still, the current code is powerful enough to allow us to apply RIVET to modestly sized real-world data sets. We expect RIVET to be able to do significantly larger computations soon: The code does not yet take advantage of some critical optimizations to how we compute the main data structure underlying RIVET; we now are in the process of implementing these optimizations. When they are complete, we expect that RIVET will be reasonably competitive with general algorithms for computing 1-D persistent homology in terms scalability. Visualizing 0th persistent homology modules in RIVET is typically much less expensive than for higher degree homology modules, and 0-th persistent homology is often more interesting in the two-parameter setting than in the ordinary one-parameter setting. So if your data set is large, you might try RIVET first with a 0th homology persistence computation.

Q: I'm interested in working on the development of RIVET or, more generally on the computational aspects of multi-D persistent homology.  Is there room for me to get involved?

A: There is a huge amount to do, both on the development side and on the more mathematical side. We'd be happy to talk to you about this.