Releases: DavidLapous/multipers
Releases · DavidLapous/multipers
v2.0.5
TL;DR Mostly bugfixes. And some optimizations to (non-vine) rank signed measure computations.
[Features]
- Slicer dimension pruning (similar to simplextree)
- Some documentation improvements, and type hints for slicer
__repr__
for slicer (to show the various options)
[Fixes]
- Invariant was sometimes not properly infered from other arguments
- Simplextree's copy was not complete
- Module Formatter doesn't default anymore to degrees 0,1 when degree is not given
- Consistence between simplextree and slicer methods
- Plot argument are now taken into account for rank signed measures
data
andgrids
modules are imported by default (small + frequently used)
[Optimizations]
- Persistence computations with the non-vine pipeline now ignore infinite simplices
- Automatic dimension pruning when computing low homological degrees
- Point cloud generation in higher dimensions
[Workflows]
- Faster workflow, available for external contribution (without exposing secrets)
- For windows builds : still needs some investigation
v2.0.4
TL;DR. This is mostly a bugfix release, with some QOL warnings.
[Features]
mass_default
should be available for any invariant / conditions- Persistence Matrix update (fixing several bugs with non-simplicial filtrations, and some optimizations)
- more natural choices in signed measures
- Slicer checks to prevent unnecessary computations (and mpfree segfaults)
- Slicer that come from minimal presentation now store their original dimension (under
slicer.minpres_degree
) - Some external libraries, e.g., mpfree can break due to a boost update; added a check to remove a cryptic error message
[Bug Fixes]
- Rank invariant wasn't properly recovered in some conditions
- slicers could not be pushed on exact grids
- several other issues related to signed measures computations
[Tests]
- signed measure matrix of tests, and checking different backends (vanilla gudhi, persistence matrices with different options, mpfree)
- checks results with mpfree reductions, when available
v2.0.3
[Features]
- Compatibility with numpy>=2, gudhi>=3.10
- Added some missing functions in the doc
- test representative cycles
[Bug fixes]
- Fixed some bug which prevented
multipers.signed_measure
to properly recover the autodiff from the input, depending on the simplextree/slicer type or if usingmpfree
. - Fixed a bug in
multipers.signed_measure
which, in some conditions, made it ignore themass_default
argument. - It is now not possible anymore to give a grid resolution to exact strategies.
- added missing dependencies
tqdm
andmatplotlib
Note
Some refactoring has been made to the multipers.signed_measure
engine, and this requires some more testing.
Feel free to open an issue if you find one.
v2.0.2
[Features]
- Representative cycles are given by simplices instead of their keys, i.e., better interface
- Updated some documentation: added point cloud experiment from ICML 2024 paper
[Fixes]
- Differentiation of rips-density like: better errors
v2.0.1
[Features]
- More template activated (more columns, more numpy types) for slicers, simplextrees, mma modules
- weaken a simplextree to a flag complex
- weakened delaunay bifiltration auto-differentiation
[Fixes]
- mma modules from multiple slicers were not properly splitted
- some files generated by external libraries were not properly cleaned
v2.0.0
TL;DR: Differentiability, more k-critical support, and bunch of refactorizations.
Note. Due to the large amount of code moved, this release may contain some bugs.
[Features]
- templated simplextrees (float/int/kcritical)
- templated slicers (float/int/kcritical/vineyard/backend matrix column)
- templated module approximations
- more support for kcritical filtrations
- hilbert, rank invariant for multicritical filtrations
- differentiable signed measures
- rank invariant using vineyard, or any slicer
- non-inplace squeeze of slicer/st
- differentiable helpers (e.g. grids computations, convolutions)
- matrix backend updates (Thanks Hannah Schreiber)
- improved external libraries handling
- doc website, with notebook updates inside (Thanks Inés García-Redondo). Required dependencies: sphinx + myst-nb + sphinx_rtd_theme
- MMA module now can now be constructed from any orientations, and allows for custom paths
- more test coverage
[Fixes]
- removed some unsafe hacks in cpp
- plot fixes, and more consistent between invariants.
- Some pipelines were broken, due to some renamings.
[Optimizations]
- less copies between cpp and python, and some variable are view-able from python
- (Slightly) faster io with scc files
- backend optimizations
- simplextree python simplifications :
__iter__
(same as get_simplices),__contains__
(same as find,),__getitem__
(same assimplex_filtration
)
v1.2.2
[Features]
- clean measures (useful for euler characteristic)
- slicer to simplextree
- new grid module (multipers.grids)
- slicers can now be coarsenned
- Added proper build dependencies
[optimizations]
- grids optimizations
- backend optimizations
[Fixes]
- installations from venv
v1.2.1 bugfixes
[Features]
- Updated introduction notebook with function delaunay for second example
[Bugfixes]
- Homological degree could be missmatched in some conditions when computing signed measures from slicer
- Signed Measure weights could be wrong when computed from slicer
- In some situation, convolutions with pykeops was a bit picky.
More interfaces with external libraries
[Features]
- better overall interface for libraries with scc formats, e.g., mpfree, rivet, function delaunay, 2pac.
- it is now easier to jump from simplextrees to module presentation to module resolutions and vice versa
- it is now easier to compute persistence invariant (signed measure, MMA) from minimal resolutions
- More c++ backends available in python to encode module presentations.
[Bufixes]
- A lot of it.
[Still missing]
- Rank invariant from minimal resolution is not available yet.
- test all of this new stuff
Note
Interface with 2pac is still experimental. And this new code may be unstable, as it's not properly tested yet. Expect some tinkering.
v1.1.3: bugfixes
Merge branch 'main' of github.com:DavidLapous/multipers