Multiparameter persistence in Julia
Keep the module, make its description finite
How do persistent features relate as parameters change? Start with a filtration of points, images, graphs, or cells—or describe a module using geometric regions, a presentation, or a finite poset.
The central idea is a finite encoding: a finite model of a persistence module's spaces and maps, linked to the original parameters. Keep that structure available, and more questions become computable.
Ready to compute? Go from an input to a module and its maps
The finite-encoding workflow
Many inputs. A shared mathematical object. Many questions.Begin with
Build from filtered data Points, images, graphs, or cells with grades Define a module directly Sloped polyhedral regions, presentations, or finite posetsStart from a filtration
Turn filtered data into a persistence module, compute ranks and slices, and inspect how classes continue between parameters. The retained finite module also supports further algebra: with a module morphism, examine its kernel or image; with a chosen finite base, build a resolution. These operations are available for filtration-derived modules too.
For an ordinary one-parameter barcode, the direct persistence routines also provide a path from a filtered complex straight to intervals.
Describe a module directly
Work with a module specified by regions and linear maps, or over a finite poset. For example, a module supported on the diagonal strip $0 \leq x+y \leq 1$ has a small exact region encoding, including its sloped boundaries. This description keeps the entire strip, rather than only sampled parameter values.
The encoding lets you recover spaces and maps at original parameters and use the same finite-module operations. You can therefore investigate modules whose starting description is geometric or algebraic, as well as those built from data.
Try both routes in From inputs to computed objects. The finite-encoding explanation develops the connection to Ezra Miller's theory of modules over posets.
Performance you can examine
The benchmark reports compare matched mathematical requests, with independently checked answers, timings, memory measurements, and downloadable results.
The QPA comparison shows a substantial advantage in the matched finite-module algebra tasks. The PHAT comparison finds a smaller aggregate advantage for complete ordinary F₂ barcodes, with individual cases favoring each tool. Each report states its inputs, versions, timing conditions, and limits, so you can judge what the evidence means for your work.
For the algorithms behind the results, read the implementation accounts.
From theory to application
The documentation moves from understanding the mathematics, through exploring the library, to completing a particular task. These are independent entrances: start with the kind of answer you need.
Find a route through the ideas in the learning map, browse a subject in the topic map, or look up an operation in API reference.