Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Choosing a representation

Start with the defaults: each package picks the one that won its benchmarks. If you are writing your own oracle:

flowchart TD
    Q1{"can the matrix give<br/>row ranks?"}
    Q1 -- yes --> P["PivotColumns + store_r,<br/>cache off if columns come sorted"]
    Q1 -- no --> Q2{"are columns of D<br/>expensive to compute?"}
    Q2 -- yes --> M["MergedColumns, cached"]
    Q2 -- no --> Q3{"short columns, few<br/>added per column?"}
    Q3 -- yes --> H["HeapColumns, uncached<br/>(least memory)"]
    Q3 -- no --> MU["MergedColumns, uncached"]
MatrixBestPackage default
Vietoris–Rips cohomologyheap or merged, uncachedphlite_rips: heap, uncached
GrPPH cohomologymerged, cachedphlite_grpph: merged, cached
explicit cubical / dense / cell complexespivot, store R, uncachedphlite: pivot, store R, uncached
homology of small simplicial complexessorted

All combinations are compared in the benchmarks, and every combination is checked to give the same barcode by the tests.