Skip to content

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.
The finite model keeps both spaces and maps, with an assignment from the original parameters. In the square example, following q recovers its one-dimensional space ℚ. The square lesson works out how to recover maps as well.

Start 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.