Skip to content

Releases: DavidLapous/multipers

v2.0.5

30 Jul 17:58
Compare
Choose a tag to compare

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 and grids 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

08 Jul 13:20
Compare
Choose a tag to compare

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

04 Jul 08:08
Compare
Choose a tag to compare

[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 using mpfree.
  • Fixed a bug in multipers.signed_measure which, in some conditions, made it ignore the mass_default argument.
  • It is now not possible anymore to give a grid resolution to exact strategies.
  • added missing dependencies tqdm and matplotlib

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

24 Jun 16:40
Compare
Choose a tag to compare

[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

17 Jun 14:00
Compare
Choose a tag to compare

[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

13 May 18:16
Compare
Choose a tag to compare

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 as simplex_filtration)

v1.2.2

21 Feb 18:12
f89152e
Compare
Choose a tag to compare

[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

07 Feb 23:02
Compare
Choose a tag to compare

[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

07 Feb 01:29
df53093
Compare
Choose a tag to compare

[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

05 Jan 13:08
Compare
Choose a tag to compare
Merge branch 'main' of github.com:DavidLapous/multipers