multipers 2.7.0b3__tar.gz → 2.7.0b4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {multipers-2.7.0b3 → multipers-2.7.0b4}/PKG-INFO +1 -1
- {multipers-2.7.0b3 → multipers-2.7.0b4}/cmake/MultipersBuild.cmake +4 -0
- multipers-2.7.0b4/multipers/_mcbif_nanobind.cpp +398 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/array_api/__init__.py +2 -2
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/array_api/jax.py +12 -4
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/array_api/numpy.py +11 -3
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/array_api/torch.py +10 -3
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/multi_critical_interface.hpp +37 -11
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/filtrations/__init__.py +2 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/filtrations/filtrations.py +123 -3
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/grids.py +17 -4
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/multi_parameter_rank_invariant/hilbert_function.h +73 -77
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/multi_parameter_rank_invariant/rank_invariant.h +73 -91
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ops.py +2 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/point_measure.py +10 -8
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/slicer.py +6 -4
- {multipers-2.7.0b3 → multipers-2.7.0b4}/pyproject.toml +1 -1
- {multipers-2.7.0b3 → multipers-2.7.0b4}/CITATION.cff +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/CMakeLists.txt +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/LICENSE +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/THIRD_PARTY_NOTICES.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/cmake/ApplyExtPatchOverlay.cmake +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/cmake/MultipersCodegen.cmake +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/cmake/MultipersDependencies.cmake +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/cmake/MultipersInstall.cmake +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/ArrayColumn.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/ArrayColumn.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/Cone.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/Cone.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/HeapColumn.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/HeapColumn.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/bireductions.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/bireductions.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/block_column_matrix.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/block_column_matrix.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/chunk.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/chunk.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/complexes.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/complexes.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/computation.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/computation.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/factor.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/factor.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/grade.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/indirect.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/lw.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/lw.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/matrices.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/matrices.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/minimize.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/minimize.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/priority_queue.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/reductions.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/reductions.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/relative_cohomology.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/relative_cohomology.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/skip_vector.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/time_measurement.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/time_measurement.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/typedefs.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/2pac/utils.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/CITATION.cff +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/LICENSE +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/Persistence-Algebra/CITATION.cff +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/Persistence-Algebra/LICENSE +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/Persistence-Algebra/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/include/CLI11.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/include/aida_interface.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/include/config.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/include/option_parser.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/include/types.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/src/aida_decompose.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/src/aida_decompose.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/src/aida_functions.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/src/aida_functions.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/src/aida_helpers.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/src/aida_helpers.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/src/aida_interface.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/src/block.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/src/block.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/src/config.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/AIDA/src/option_parser.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/CITATION.cff +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/LICENSE +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/bitset_algebra.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/column_types.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/dense_matrix.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/general.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/graded_linalg.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/graded_matrix.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/grid_scheduler.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/homomorphisms.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/matrix_base.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/orders_and_graphs.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/r2graded_matrix.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/r3graded_matrix.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/sparse_matrix.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/to_quiver.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/deg_rips/COPYING +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/deg_rips/COPYING.LESSER +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/deg_rips/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/deg_rips/include/deg_rips/Complex.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/deg_rips/include/deg_rips/Edge_domination_checker.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/deg_rips/include/deg_rips/Grade.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/deg_rips/include/deg_rips/Vertex_domination_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/deg_rips/include/deg_rips/basic.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/deg_rips/include/deg_rips/boost_timers.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/deg_rips/include/deg_rips/build_complex.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/COPYING +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/Delaunay_triangulation_accessors.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/Grade_map.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/Meb_accessors.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/Miniball.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/Point_with_densities.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/boost_timers.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/compute_meb_radii_of_simplex_tree.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/count_size_of_delaunay_triangulation.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/function_delaunay_with_meb.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/get_simplices_from_triangulation.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/mem_info.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/mpfree_mod/include/mpfree/Graded_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/mpfree_mod/include/mpfree/Grid_scheduler.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/mpfree_mod/include/mpfree/boost_timers.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/mpfree_mod/include/mpfree/global.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/mpfree_mod/include/mpfree/mpfree.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/mpfree_mod/include/mpfree/mpfree_subroutines.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/Coordinate_traits_with_map.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/Graded_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/Graded_matrix_handle.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/Pre_column_struct.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/basic.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_pre_column_struct.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_scc2020.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_simplex_tree.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/create_matrix_from_firep.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/sorting_utility.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/multi_chunk_mod/include/multi_chunk/Graded_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/multi_chunk_mod/include/multi_chunk/basic.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/multi_chunk_mod/include/multi_chunk/boost_timers.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/multi_chunk_mod/include/multi_chunk/multi_chunk.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/COPYING +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/COPYING.LESSER +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/algorithms/chunk_reduction.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/algorithms/row_reduction.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/algorithms/spectral_sequence_reduction.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/algorithms/standard_reduction.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/algorithms/twist_reduction.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/boundary_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/compute_persistence_pairs.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/helpers/dualize.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/helpers/misc.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/helpers/thread_local_storage.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/persistence_pairs.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/Container_traits.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/Pivot_representation.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/Uniform_representation.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/Unordered_map_container_traits.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/bit_tree_pivot_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/default_representations.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/full_pivot_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/heap_column_rep.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/heap_pivot_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/list_column_rep.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/set_column_rep.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/sparse_pivot_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/vector_column_rep.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/scc_mod/include/scc/Column_data.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/scc_mod/include/scc/Scc.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/function_delaunay/scc_mod/include/scc/basic.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/LICENSE +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Alpha_complex/include/gudhi/Alpha_complex/Alpha_kernel_d.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Alpha_complex/include/gudhi/Alpha_complex.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex_base.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex_periodic_boundary_conditions_base.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Collapse/include/gudhi/Flag_complex_edge_collapser.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_filtration/include/gudhi/Degree_rips_bifiltration.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_filtration/include/gudhi/Dynamic_multi_parameter_filtration.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_filtration/include/gudhi/Multi_filtration/Multi_parameter_generator.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_filtration/include/gudhi/Multi_filtration/multi_filtration_conversions.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_filtration/include/gudhi/Multi_filtration/multi_filtration_products.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_filtration/include/gudhi/Multi_filtration/multi_filtration_utils.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_filtration/include/gudhi/Multi_parameter_filtration.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_parameter_filtered_complex.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Box.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Line.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Module.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Multi_parameter_filtered_complex_pcoh_interface.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Persistence_interface_cohomology.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Persistence_interface_homology.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Persistence_interface_vineyard.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Point.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Summand.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/module_helpers.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/summand_helpers.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Projective_cover_kernel.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Slicer.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Thread_safe_slicer.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/multi_simplex_tree_helpers.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/slicer_helpers.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Fields/Z2_field_operators.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Fields/Zp_field_operators.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/Base_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/Base_matrix_with_column_compression.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/Boundary_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/Chain_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/Id_to_index_overlay.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/Position_to_index_overlay.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/RU_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/allocators/entry_constructors.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/base_pairing.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/base_swap.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/chain_pairing.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/chain_rep_cycles.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/chain_vine_swap.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/chain_column_extra_properties.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/column_dimension_holder.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/column_utilities.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/entry_types.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/heap_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/intrusive_list_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/intrusive_set_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/list_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/naive_vector_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/row_access.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/set_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/unordered_set_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/vector_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/index_mapper.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/matrix_dimension_holders.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/matrix_row_access.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/ru_pairing.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/ru_rep_cycles.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/ru_vine_swap.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/persistence_interval.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/persistence_matrix_options.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistent_cohomology/include/gudhi/Persistent_cohomology/Field_Zp.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistent_cohomology/include/gudhi/Persistent_cohomology/Persistent_cohomology_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/Simplex_tree_iterators.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/Simplex_tree_node_explicit_storage.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/Simplex_tree_siblings.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/Simplex_tree_star_simplex_iterators.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/filtration_value_utils.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/hooks_simplex_base.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/indexing_tag.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/serialization_utils.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/simplex_tree_options.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/Vineyard/include/gudhi/vineyard_base.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/common/include/gudhi/Debug_utils.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/common/include/gudhi/Off_reader.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/common/include/gudhi/Points_off_io.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/common/include/gudhi/Simple_object_pool.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/common/include/gudhi/distance_functions.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/common/include/gudhi/graph_simplicial_complex.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/common/include/gudhi/reader_utils.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/common/include/gudhi/simple_mdspan.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/gudhi-devel/src/python/include/python_interfaces/numpy_utils.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/extern/Catch2/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/extern/phat/algorithms/standard_reduction.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/extern/phat/algorithms/twist_reduction.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/extern/phat/boundary_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/extern/phat/compute_persistence_pairs.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/extern/phat/helpers/dualize.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/extern/phat/helpers/misc.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/extern/phat/helpers/thread_local_storage.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/extern/phat/persistence_pairs.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/extern/phat/representations/abstract_pivot_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/extern/phat/representations/bit_tree_pivot_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/extern/phat/representations/vector_vector.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/bottleneck/basic_defs_bt.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/bottleneck/bottleneck_detail.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/bottleneck/bottleneck_detail.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/bottleneck/bound_match.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/bottleneck/bound_match.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/bottleneck/def_debug_bt.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/bottleneck/neighb_oracle.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/bottleneck.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/common/diagram_point.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/common/diagram_reader.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/common/diagram_traits.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/common/hash_combine.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/common/infinity.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/common/point.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/common.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/dnn/geometry/euclidean-dynamic.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/dnn/geometry/euclidean-fixed.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/dnn/local/kd-tree.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/dnn/local/kd-tree.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/dnn/local/search-functors.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/dnn/parallel/tbb.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/dnn/utils.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/bifiltration.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/bifiltration.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/box.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/box.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/cell_with_value.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/cell_with_value.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/common_defs.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/common_util.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/common_util.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/dual_box.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/dual_box.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/dual_point.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/dual_point.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/matching_distance.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/persistence_module.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/persistence_module.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/simplex.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching/simplex.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/matching_distance.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_oracle.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_oracle_base.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_oracle_base.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_oracle_kdtree_restricted.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_oracle_kdtree_restricted.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_params.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_result.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_runner_gs.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_runner_gs.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_runner_jac.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_runner_jac.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/basic_defs_ws.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/basic_defs_ws.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/def_debug_ws.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/diagonal_heap.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/COPYING +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/COPYING.LESSER +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/include/mpfree/Graded_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/include/mpfree/Grid_scheduler.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/include/mpfree/boost_timers.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/include/mpfree/global.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/include/mpfree/mpfree.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/include/mpfree/mpfree_subroutines.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/Coordinate_traits_with_map.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/Graded_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/Graded_matrix_handle.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/Pre_column_struct.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/basic.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_pre_column_struct.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_scc2020.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_simplex_tree.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/create_matrix_from_firep.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/sorting_utility.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/COPYING +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/COPYING.LESSER +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/boundary_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/helpers/misc.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/helpers/thread_local_storage.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/Container_traits.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/Pivot_representation.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/Uniform_representation.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/Unordered_map_container_traits.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/bit_tree_pivot_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/default_representations.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/full_pivot_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/heap_column_rep.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/heap_pivot_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/list_column_rep.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/set_column_rep.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/sparse_pivot_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/vector_column_rep.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/scc_mod/include/scc/Column_data.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/scc_mod/include/scc/Scc.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/mpfree/scc_mod/include/scc/basic.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/COPYING +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/COPYING.LESSER +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/include/multi_critical/Grade.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/include/multi_critical/basic.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/include/multi_critical/boost_timers.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/include/multi_critical/firep.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/include/multi_critical/free_resolution.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/mpfree_mod/include/mpfree/Graded_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/mpfree_mod/include/mpfree/Grid_scheduler.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/mpfree_mod/include/mpfree/boost_timers.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/mpfree_mod/include/mpfree/global.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/mpfree_mod/include/mpfree/mpfree.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/mpfree_mod/include/mpfree/mpfree_subroutines.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/Coordinate_traits_with_map.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/Graded_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/Graded_matrix_handle.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/Pre_column_struct.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/basic.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_pre_column_struct.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_scc2020.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_simplex_tree.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/create_matrix_from_firep.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/sorting_utility.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/multi_chunk_mod/include/multi_chunk/Graded_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/multi_chunk_mod/include/multi_chunk/basic.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/multi_chunk_mod/include/multi_chunk/boost_timers.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/multi_chunk_mod/include/multi_chunk/multi_chunk.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/COPYING +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/COPYING.LESSER +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/algorithms/chunk_reduction.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/algorithms/row_reduction.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/algorithms/spectral_sequence_reduction.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/algorithms/standard_reduction.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/algorithms/twist_reduction.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/boundary_matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/compute_persistence_pairs.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/helpers/dualize.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/helpers/misc.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/helpers/thread_local_storage.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/persistence_pairs.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/Container_traits.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/Pivot_representation.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/Uniform_representation.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/Unordered_map_container_traits.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/bit_tree_pivot_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/default_representations.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/full_pivot_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/heap_column_rep.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/heap_pivot_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/list_column_rep.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/set_column_rep.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/sparse_pivot_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/vector_column_rep.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/scc_mod/include/scc/Column_data.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/scc_mod/include/scc/Scc.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/multi_critical/scc_mod/include/scc/basic.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/muphasa/LICENSE +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/muphasa/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/muphasa/mph/IO.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/muphasa/mph/column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/muphasa/mph/examples.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/muphasa/mph/grade.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/muphasa/mph/landscapes.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/muphasa/mph/main.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/muphasa/mph/main.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/muphasa/mph/matrix.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/muphasa/mph/signatureColumn.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/muphasa/mph/utils.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/patches/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/patches/deg_rips_edge_copy_reducer.patch +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/patches/function_delaunay_runtime_logs.patch +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/patches/generate_ext_patches.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/patches/mpfree_runtime_logs.patch +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/patches/multi_critical_features.patch +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/patches/multi_critical_runtime_logs.patch +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/patches/muphasa_runtime_logs.patch +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/phat/COPYING +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/phat/COPYING.LESSER +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/phat/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/phat/include/phat/representations/bit_tree_pivot_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/README.md +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/bifiltration_cell.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/cell_with_radius.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/dimensional_traits_2.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/dimensional_traits_3.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/rhomboid.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/rhomboid.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/rhomboid_tiling.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/rhomboid_tiling_impl.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/rhomboid_with_radius.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/types.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/utils.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/utils.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/licenses/LGPL-3.0-or-later.txt +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_2pac_interface.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/__init__.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_aida_interface.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_core_delaunay_nanobind.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_deg_rips_interface.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_function_delaunay_interface.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_function_rips_nanobind.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_grid_helper_nanobind.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_hera_interface.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_mma_nanobind.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_mpfree_interface.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_multi_critical_interface.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_muphasa_interface.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_rhomboid_tiling_interface.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_signed_measure_meta.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_simplex_tree_multi_nanobind.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_simplextree_algorithms.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_slicer_algorithms.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_slicer_meta.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/_slicer_nanobind.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/data/MOL2.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/data/UCR.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/data/__init__.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/data/graphs.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/data/immuno_regions.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/data/minimal_presentation_to_st_bf.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/data/pytorch2simplextree.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/data/shape3d.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/data/synthetic.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/distances.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/2pac_interface.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/aida_interface.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/backend_log_flag.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/backend_log_policy.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/contiguous_slicer_bridge.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/deg_rips_interface.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/function_delaunay_interface.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/hera_interface.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/mpfree_interface.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/muphasa_interface.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/nanobind_generator_basis.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/nanobind_registry_helpers.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/nanobind_registry_runtime.cpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/nanobind_registry_runtime.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/nanobind_wrapper_types.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/packed_multi_critical_bridge.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/rhomboid_tiling_interface.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/filtrations/density.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/function_rips.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/gudhi/Persistence_slices_interface.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/gudhi/Simplex_tree_interface.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/gudhi/Simplex_tree_multi_interface.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/phat_bit_tree_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/phat_column_interface.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/phat_vector_column.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/gudhi/simplextree_conversion_core.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/gudhi/slicer_conversion_core.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/gudhi/tmp_h0_pers/mma_interface_h0.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/gudhi/tmp_h0_pers/naive_merge_tree.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/hera_monte_carlo_core.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/invariants/__init__.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/invariants/_utils.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/invariants/birth_curves.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/invariants/projected_barcode.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/logs.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ml/__init__.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ml/accuracies.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ml/filtered_complex.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ml/invariants_with_persistable.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ml/kernels.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ml/mma.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ml/one.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ml/point_clouds.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ml/signed_measures.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ml/sliced_wasserstein.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ml/tools.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/mma_structures.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/multi_parameter_rank_invariant/diff_helpers.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/multi_parameter_rank_invariant/euler_characteristic.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/multi_parameter_rank_invariant/function_rips.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/multi_parameter_rank_invariant/mobius_inversion.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/multi_parameter_rank_invariant/persistence_slices.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/multiparameter_edge_collapse.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/multiparameter_module_approximation/approximation.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/multiparameter_module_approximation/debug.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/multiparameter_module_approximation/utilities.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/multiparameter_module_approximation.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/nanobind_array_utils.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/nanobind_dense_array_utils.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/nanobind_mma_registry_helpers.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/nanobind_object_utils.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/nanobind_simplextree_utils.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/nanobind_slicer_serialization.hpp +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/pickle.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/plots.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/simplex_tree_multi.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/tensor/tensor.h +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/tests/__init__.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/options.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/tools/codegen/__init__.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/tools/codegen/_registry.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/tools/core/backend_log_policy_core.cc +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/tools/core/filtrations_core.cc +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/tools/core/hera_monte_carlo_core.cc +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/tools/core/simplextree_core.cc +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/tools/core/slicer_core.cc +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/tools/repair_macos_libomp_wheel.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/tools/tempita_grid_gen.py +0 -0
- {multipers-2.7.0b3 → multipers-2.7.0b4}/tools/update_sdist_ext_whitelist.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: multipers
|
|
3
|
-
Version: 2.7.
|
|
3
|
+
Version: 2.7.0b4
|
|
4
4
|
Summary: Multiparameter Topological Persistence for Machine Learning
|
|
5
5
|
Keywords: TDA,Persistence,Multiparameter,sklearn,autodiff
|
|
6
6
|
Author-Email: David Loiseaux <david.lapous@proton.me>, Hannah Schreiber <hannah.schreiber@inria.fr>
|
|
@@ -770,6 +770,9 @@ function(multipers_configure_module module_name target_name)
|
|
|
770
770
|
elseif(module_name STREQUAL "_function_rips_nanobind")
|
|
771
771
|
multipers_link_tbb(${target_name})
|
|
772
772
|
|
|
773
|
+
elseif(module_name STREQUAL "_mcbif_nanobind")
|
|
774
|
+
multipers_link_tbb(${target_name})
|
|
775
|
+
|
|
773
776
|
elseif(module_name STREQUAL "_core_delaunay_nanobind")
|
|
774
777
|
multipers_link_tbb(${target_name})
|
|
775
778
|
multipers_link_cgal(${target_name})
|
|
@@ -963,6 +966,7 @@ set(MULTIPERS_NANOBIND_MODULES
|
|
|
963
966
|
_mma_nanobind
|
|
964
967
|
_simplex_tree_multi_nanobind
|
|
965
968
|
_function_rips_nanobind
|
|
969
|
+
_mcbif_nanobind
|
|
966
970
|
_core_delaunay_nanobind
|
|
967
971
|
_grid_helper_nanobind
|
|
968
972
|
_mpfree_interface
|
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
#include <nanobind/nanobind.h>
|
|
2
|
+
#include <nanobind/ndarray.h>
|
|
3
|
+
#include <nanobind/stl/string.h>
|
|
4
|
+
|
|
5
|
+
#include <oneapi/tbb/parallel_for.h>
|
|
6
|
+
#include <tbb/parallel_sort.h>
|
|
7
|
+
|
|
8
|
+
#include <algorithm>
|
|
9
|
+
#include <cmath>
|
|
10
|
+
#include <cstddef>
|
|
11
|
+
#include <cstdint>
|
|
12
|
+
#include <iterator>
|
|
13
|
+
#include <limits>
|
|
14
|
+
#include <map>
|
|
15
|
+
#include <stdexcept>
|
|
16
|
+
#include <string>
|
|
17
|
+
#include <type_traits>
|
|
18
|
+
#include <utility>
|
|
19
|
+
#include <vector>
|
|
20
|
+
|
|
21
|
+
#include "Simplex_tree_multi_interface.h"
|
|
22
|
+
#include "ext_interface/nanobind_registry_helpers.hpp"
|
|
23
|
+
|
|
24
|
+
namespace nb = nanobind;
|
|
25
|
+
using namespace nb::literals;
|
|
26
|
+
|
|
27
|
+
namespace mpmcbif {
|
|
28
|
+
|
|
29
|
+
using multipers::nanobind_helpers::is_simplextree_object;
|
|
30
|
+
using multipers::nanobind_helpers::visit_simplextree_wrapper;
|
|
31
|
+
|
|
32
|
+
using Simplex = std::vector<int>;
|
|
33
|
+
using Cluster = std::vector<int>;
|
|
34
|
+
|
|
35
|
+
struct SimplexData {
|
|
36
|
+
Simplex simplex;
|
|
37
|
+
std::vector<size_t> occurrence_indices;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
struct NerveSimplexInfo {
|
|
41
|
+
Simplex simplex;
|
|
42
|
+
Cluster intersection;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
inline Cluster intersect_sorted(const Cluster& left, const Cluster& right) {
|
|
46
|
+
Cluster out;
|
|
47
|
+
out.reserve(std::min(left.size(), right.size()));
|
|
48
|
+
std::set_intersection(left.begin(), left.end(), right.begin(), right.end(), std::back_inserter(out));
|
|
49
|
+
return out;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
inline std::vector<Cluster> clusters_for_partition(const int64_t* row, size_t num_points) {
|
|
53
|
+
std::map<int64_t, Cluster> by_label;
|
|
54
|
+
for (size_t vertex = 0; vertex < num_points; ++vertex) {
|
|
55
|
+
by_label[row[vertex]].push_back(static_cast<int>(vertex));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
std::vector<Cluster> clusters;
|
|
59
|
+
clusters.reserve(by_label.size());
|
|
60
|
+
for (auto& [label, cluster] : by_label) {
|
|
61
|
+
(void)label;
|
|
62
|
+
clusters.push_back(std::move(cluster));
|
|
63
|
+
}
|
|
64
|
+
return clusters;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
inline SimplexData build_nerve_simplex_data(const Simplex& simplex,
|
|
68
|
+
const std::vector<std::vector<size_t>>& cluster_occurrences,
|
|
69
|
+
size_t num_partitions) {
|
|
70
|
+
std::vector<size_t> rows;
|
|
71
|
+
rows.reserve(num_partitions);
|
|
72
|
+
for (size_t start_index = 0; start_index < num_partitions; ++start_index) {
|
|
73
|
+
bool found = true;
|
|
74
|
+
size_t end_index = 0;
|
|
75
|
+
for (int cluster_id : simplex) {
|
|
76
|
+
const auto& occurrences = cluster_occurrences[static_cast<size_t>(cluster_id)];
|
|
77
|
+
auto occurrence_it = std::lower_bound(occurrences.begin(), occurrences.end(), start_index);
|
|
78
|
+
if (occurrence_it == occurrences.end()) {
|
|
79
|
+
found = false;
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
end_index = std::max(end_index, *occurrence_it);
|
|
83
|
+
}
|
|
84
|
+
if (!found) {
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
rows.push_back(end_index);
|
|
88
|
+
}
|
|
89
|
+
return {simplex, std::move(rows)};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
inline void append_occurrence(std::vector<size_t>& occurrences, size_t partition_index) {
|
|
93
|
+
if (occurrences.empty() || occurrences.back() != partition_index) {
|
|
94
|
+
occurrences.push_back(partition_index);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
inline void append_standard_combinations(std::map<Simplex, std::vector<size_t>>& simplex_occurrences,
|
|
99
|
+
const Cluster& cluster,
|
|
100
|
+
size_t partition_index,
|
|
101
|
+
size_t target_size,
|
|
102
|
+
size_t start,
|
|
103
|
+
Simplex& simplex) {
|
|
104
|
+
if (simplex.size() == target_size) {
|
|
105
|
+
append_occurrence(simplex_occurrences[simplex], partition_index);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const size_t remaining = target_size - simplex.size();
|
|
110
|
+
for (size_t i = start; i + remaining <= cluster.size(); ++i) {
|
|
111
|
+
simplex.push_back(cluster[i]);
|
|
112
|
+
append_standard_combinations(simplex_occurrences, cluster, partition_index, target_size, i + 1, simplex);
|
|
113
|
+
simplex.pop_back();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
inline void append_standard_cluster_simplices(std::map<Simplex, std::vector<size_t>>& simplex_occurrences,
|
|
118
|
+
const Cluster& cluster,
|
|
119
|
+
size_t partition_index,
|
|
120
|
+
int max_dim) {
|
|
121
|
+
Simplex simplex;
|
|
122
|
+
const size_t max_size = std::min(cluster.size(), static_cast<size_t>(max_dim) + 1);
|
|
123
|
+
for (size_t target_size = 1; target_size <= max_size; ++target_size) {
|
|
124
|
+
append_standard_combinations(simplex_occurrences, cluster, partition_index, target_size, 0, simplex);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
inline std::vector<SimplexData> build_standard_simplices(const int64_t* partitions,
|
|
129
|
+
size_t num_partitions,
|
|
130
|
+
size_t num_points,
|
|
131
|
+
int max_dim) {
|
|
132
|
+
std::map<Simplex, std::vector<size_t>> simplex_occurrences;
|
|
133
|
+
for (size_t partition_index = 0; partition_index < num_partitions; ++partition_index) {
|
|
134
|
+
const int64_t* row = partitions + partition_index * num_points;
|
|
135
|
+
auto clusters = clusters_for_partition(row, num_points);
|
|
136
|
+
for (const auto& cluster : clusters) {
|
|
137
|
+
append_standard_cluster_simplices(simplex_occurrences, cluster, partition_index, max_dim);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
std::vector<SimplexData> out;
|
|
142
|
+
out.reserve(simplex_occurrences.size());
|
|
143
|
+
for (auto& [simplex, occurrences] : simplex_occurrences) {
|
|
144
|
+
out.push_back({std::move(simplex), std::move(occurrences)});
|
|
145
|
+
}
|
|
146
|
+
return out;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
inline void add_nerve_simplex(std::map<Simplex, std::vector<size_t>>& nerve_simplices, Simplex simplex) {
|
|
150
|
+
std::sort(simplex.begin(), simplex.end());
|
|
151
|
+
nerve_simplices.try_emplace(std::move(simplex), std::vector<size_t>{});
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
inline std::vector<SimplexData> build_nerve_simplices(const int64_t* partitions,
|
|
155
|
+
size_t num_partitions,
|
|
156
|
+
size_t num_points,
|
|
157
|
+
int max_dim) {
|
|
158
|
+
std::map<Cluster, int> cluster_id_by_vertices;
|
|
159
|
+
std::vector<Cluster> cluster_vertices;
|
|
160
|
+
std::vector<std::vector<size_t>> cluster_occurrences;
|
|
161
|
+
std::vector<std::vector<int>> new_cluster_ids_by_partition;
|
|
162
|
+
new_cluster_ids_by_partition.reserve(num_partitions);
|
|
163
|
+
|
|
164
|
+
for (size_t partition_index = 0; partition_index < num_partitions; ++partition_index) {
|
|
165
|
+
const int64_t* row = partitions + partition_index * num_points;
|
|
166
|
+
auto clusters = clusters_for_partition(row, num_points);
|
|
167
|
+
std::vector<int> new_cluster_ids;
|
|
168
|
+
for (auto& cluster : clusters) {
|
|
169
|
+
auto [it, inserted] = cluster_id_by_vertices.emplace(cluster, static_cast<int>(cluster_vertices.size()));
|
|
170
|
+
const int cluster_id = it->second;
|
|
171
|
+
if (inserted) {
|
|
172
|
+
cluster_vertices.push_back(std::move(cluster));
|
|
173
|
+
cluster_occurrences.emplace_back();
|
|
174
|
+
new_cluster_ids.push_back(cluster_id);
|
|
175
|
+
}
|
|
176
|
+
append_occurrence(cluster_occurrences[static_cast<size_t>(cluster_id)], partition_index);
|
|
177
|
+
}
|
|
178
|
+
new_cluster_ids_by_partition.push_back(std::move(new_cluster_ids));
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
std::map<Simplex, std::vector<size_t>> nerve_simplices;
|
|
182
|
+
const size_t requested_max_simplex_size = static_cast<size_t>(max_dim) + 1;
|
|
183
|
+
const size_t max_simplex_size =
|
|
184
|
+
std::min(std::min(requested_max_simplex_size, cluster_vertices.size()), num_partitions);
|
|
185
|
+
std::vector<std::vector<NerveSimplexInfo>> simplices_by_size(max_simplex_size + 1);
|
|
186
|
+
|
|
187
|
+
for (const auto& new_cluster_ids : new_cluster_ids_by_partition) {
|
|
188
|
+
for (int cluster_id : new_cluster_ids) {
|
|
189
|
+
const Cluster& cluster = cluster_vertices[static_cast<size_t>(cluster_id)];
|
|
190
|
+
|
|
191
|
+
for (size_t size = max_simplex_size - 1; size >= 1; --size) {
|
|
192
|
+
const size_t simplex_count = simplices_by_size[size].size();
|
|
193
|
+
for (size_t simplex_index = 0; simplex_index < simplex_count; ++simplex_index) {
|
|
194
|
+
const auto& previous = simplices_by_size[size][simplex_index];
|
|
195
|
+
auto intersection = intersect_sorted(cluster, previous.intersection);
|
|
196
|
+
if (!intersection.empty()) {
|
|
197
|
+
Simplex simplex = previous.simplex;
|
|
198
|
+
simplex.push_back(cluster_id);
|
|
199
|
+
add_nerve_simplex(nerve_simplices, simplex);
|
|
200
|
+
simplices_by_size[size + 1].push_back({std::move(simplex), std::move(intersection)});
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
if (size == 1) {
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
Simplex vertex = {cluster_id};
|
|
209
|
+
add_nerve_simplex(nerve_simplices, vertex);
|
|
210
|
+
simplices_by_size[1].push_back({std::move(vertex), cluster});
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
std::vector<Simplex> simplices;
|
|
215
|
+
simplices.reserve(nerve_simplices.size());
|
|
216
|
+
for (const auto& [simplex, ignored] : nerve_simplices) {
|
|
217
|
+
(void)ignored;
|
|
218
|
+
simplices.push_back(simplex);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
std::vector<SimplexData> out(simplices.size());
|
|
222
|
+
const auto build_one = [&](size_t simplex_index) {
|
|
223
|
+
out[simplex_index] = build_nerve_simplex_data(simplices[simplex_index], cluster_occurrences, num_partitions);
|
|
224
|
+
};
|
|
225
|
+
if (simplices.size() < 1024) {
|
|
226
|
+
for (size_t simplex_index = 0; simplex_index < simplices.size(); ++simplex_index) {
|
|
227
|
+
build_one(simplex_index);
|
|
228
|
+
}
|
|
229
|
+
} else {
|
|
230
|
+
tbb::parallel_for(size_t{0}, simplices.size(), build_one);
|
|
231
|
+
}
|
|
232
|
+
return out;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
inline std::vector<double> rows_from_standard_occurrences(const std::vector<size_t>& occurrences,
|
|
236
|
+
const double* filtration_indices) {
|
|
237
|
+
std::vector<double> flat_rows;
|
|
238
|
+
if (occurrences.empty()) {
|
|
239
|
+
return flat_rows;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
flat_rows.reserve(occurrences.size() * 2);
|
|
243
|
+
for (auto occurrence_it = occurrences.rbegin(); occurrence_it != occurrences.rend(); ++occurrence_it) {
|
|
244
|
+
const size_t occurrence = *occurrence_it;
|
|
245
|
+
flat_rows.push_back(-filtration_indices[occurrence]);
|
|
246
|
+
flat_rows.push_back(filtration_indices[occurrence]);
|
|
247
|
+
}
|
|
248
|
+
return flat_rows;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
inline std::vector<double> rows_from_nerve_end_indices(const std::vector<size_t>& end_indices,
|
|
252
|
+
const double* filtration_indices) {
|
|
253
|
+
std::vector<double> flat_rows;
|
|
254
|
+
flat_rows.reserve(end_indices.size() * 2);
|
|
255
|
+
size_t best_end_index = std::numeric_limits<size_t>::max();
|
|
256
|
+
for (size_t offset = end_indices.size(); offset > 0; --offset) {
|
|
257
|
+
const size_t start_index = offset - 1;
|
|
258
|
+
const size_t end_index = end_indices[start_index];
|
|
259
|
+
if (end_index >= best_end_index) {
|
|
260
|
+
continue;
|
|
261
|
+
}
|
|
262
|
+
flat_rows.push_back(-filtration_indices[start_index]);
|
|
263
|
+
flat_rows.push_back(filtration_indices[end_index]);
|
|
264
|
+
best_end_index = end_index;
|
|
265
|
+
}
|
|
266
|
+
return flat_rows;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
template <typename Tree, typename Filtration>
|
|
270
|
+
bool insert_kcritical_simplex(Tree& tree, const Simplex& simplex, const Filtration& filtration) {
|
|
271
|
+
using BaseTree = typename Tree::Base_tree;
|
|
272
|
+
auto& base_tree = static_cast<BaseTree&>(tree);
|
|
273
|
+
auto result =
|
|
274
|
+
base_tree.insert_simplex_and_subfaces(BaseTree::Filtration_maintenance::LOWER_EXISTING, simplex, filtration);
|
|
275
|
+
return result.first != tree.null_simplex();
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
template <typename Wrapper>
|
|
279
|
+
void fill_mcbif_simplextree(Wrapper& wrapper,
|
|
280
|
+
const int64_t* partitions,
|
|
281
|
+
size_t num_partitions,
|
|
282
|
+
size_t num_points,
|
|
283
|
+
const double* filtration_indices,
|
|
284
|
+
int max_dim,
|
|
285
|
+
const std::string& method) {
|
|
286
|
+
using Tree = std::remove_reference_t<decltype(wrapper.tree)>;
|
|
287
|
+
using Filtration = typename Tree::Filtration_value;
|
|
288
|
+
|
|
289
|
+
std::vector<SimplexData> simplex_data;
|
|
290
|
+
if (method == "standard") {
|
|
291
|
+
simplex_data = build_standard_simplices(partitions, num_partitions, num_points, max_dim);
|
|
292
|
+
} else if (method == "nerve") {
|
|
293
|
+
simplex_data = build_nerve_simplices(partitions, num_partitions, num_points, max_dim);
|
|
294
|
+
} else {
|
|
295
|
+
throw nb::value_error("method must be 'standard' or 'nerve'.");
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
tbb::parallel_sort(simplex_data.begin(), simplex_data.end(), [](const SimplexData& left, const SimplexData& right) {
|
|
299
|
+
if (left.simplex.size() != right.simplex.size()) {
|
|
300
|
+
return left.simplex.size() < right.simplex.size();
|
|
301
|
+
}
|
|
302
|
+
return left.simplex < right.simplex;
|
|
303
|
+
});
|
|
304
|
+
|
|
305
|
+
wrapper.tree.clear();
|
|
306
|
+
wrapper.tree.set_num_parameters(2);
|
|
307
|
+
|
|
308
|
+
bool inserted = false;
|
|
309
|
+
for (const auto& data : simplex_data) {
|
|
310
|
+
std::vector<double> flat_rows;
|
|
311
|
+
if (method == "standard") {
|
|
312
|
+
flat_rows = rows_from_standard_occurrences(data.occurrence_indices, filtration_indices);
|
|
313
|
+
} else if (method == "nerve") {
|
|
314
|
+
flat_rows = rows_from_nerve_end_indices(data.occurrence_indices, filtration_indices);
|
|
315
|
+
} else {
|
|
316
|
+
throw nb::value_error("method must be 'standard' or 'nerve'.");
|
|
317
|
+
}
|
|
318
|
+
if (flat_rows.empty()) {
|
|
319
|
+
continue;
|
|
320
|
+
}
|
|
321
|
+
Filtration filtration(flat_rows.begin(), flat_rows.end(), 2);
|
|
322
|
+
inserted |= insert_kcritical_simplex(wrapper.tree, data.simplex, filtration);
|
|
323
|
+
}
|
|
324
|
+
if (inserted) {
|
|
325
|
+
wrapper.tree.clear_filtration();
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
inline void validate_filtration_indices(const double* filtration_indices, size_t num_partitions) {
|
|
330
|
+
for (size_t i = 0; i < num_partitions; ++i) {
|
|
331
|
+
if (!std::isfinite(filtration_indices[i])) {
|
|
332
|
+
throw nb::value_error("filtration_indices must be finite.");
|
|
333
|
+
}
|
|
334
|
+
if (i > 0 && !(filtration_indices[i - 1] < filtration_indices[i])) {
|
|
335
|
+
throw nb::value_error("filtration_indices must be strictly increasing.");
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
inline void build_mcbif_dispatch(
|
|
341
|
+
nb::object& out,
|
|
342
|
+
const nb::ndarray<nb::numpy, const int64_t, nb::ndim<2>, nb::c_contig>& partitions,
|
|
343
|
+
const nb::ndarray<nb::numpy, const double, nb::ndim<1>, nb::c_contig>& filtration_indices,
|
|
344
|
+
int max_dim,
|
|
345
|
+
const std::string& method) {
|
|
346
|
+
const size_t num_partitions = partitions.shape(0);
|
|
347
|
+
const size_t num_points = partitions.shape(1);
|
|
348
|
+
visit_simplextree_wrapper(out, [&]<typename Desc>(auto& wrapper) {
|
|
349
|
+
if constexpr (Desc::is_kcritical && std::is_same_v<typename Desc::value_type, double>) {
|
|
350
|
+
nb::gil_scoped_release release;
|
|
351
|
+
fill_mcbif_simplextree(
|
|
352
|
+
wrapper, partitions.data(), num_partitions, num_points, filtration_indices.data(), max_dim, method);
|
|
353
|
+
} else {
|
|
354
|
+
throw nb::type_error("build_mcbif_simplextree expects a float64 k-critical SimplexTreeMulti target.");
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
} // namespace mpmcbif
|
|
360
|
+
|
|
361
|
+
NB_MODULE(_mcbif_nanobind, m) {
|
|
362
|
+
m.def(
|
|
363
|
+
"build_mcbif_simplextree",
|
|
364
|
+
[](nb::object target,
|
|
365
|
+
nb::ndarray<nb::numpy, const int64_t, nb::ndim<2>, nb::c_contig> partitions,
|
|
366
|
+
nb::ndarray<nb::numpy, const double, nb::ndim<1>, nb::c_contig> filtration_indices,
|
|
367
|
+
int max_dim,
|
|
368
|
+
std::string method) -> nb::object {
|
|
369
|
+
if (!mpmcbif::is_simplextree_object(target)) {
|
|
370
|
+
throw nb::type_error("build_mcbif_simplextree expects a SimplexTreeMulti target.");
|
|
371
|
+
}
|
|
372
|
+
if (partitions.shape(0) == 0) {
|
|
373
|
+
throw nb::value_error("partitions must contain at least one partition.");
|
|
374
|
+
}
|
|
375
|
+
if (partitions.shape(1) == 0) {
|
|
376
|
+
throw nb::value_error("partitions must contain at least one point.");
|
|
377
|
+
}
|
|
378
|
+
if (filtration_indices.shape(0) != partitions.shape(0)) {
|
|
379
|
+
throw nb::value_error("filtration_indices length must match the number of partitions.");
|
|
380
|
+
}
|
|
381
|
+
if (max_dim < 0) {
|
|
382
|
+
throw nb::value_error("max_dim must be nonnegative.");
|
|
383
|
+
}
|
|
384
|
+
if (method != "standard" && method != "nerve") {
|
|
385
|
+
throw nb::value_error("method must be 'standard' or 'nerve'.");
|
|
386
|
+
}
|
|
387
|
+
mpmcbif::validate_filtration_indices(filtration_indices.data(), filtration_indices.shape(0));
|
|
388
|
+
|
|
389
|
+
nb::object out = target.type()();
|
|
390
|
+
mpmcbif::build_mcbif_dispatch(out, partitions, filtration_indices, max_dim, method);
|
|
391
|
+
return out;
|
|
392
|
+
},
|
|
393
|
+
"target"_a,
|
|
394
|
+
"partitions"_a,
|
|
395
|
+
"filtration_indices"_a,
|
|
396
|
+
"max_dim"_a,
|
|
397
|
+
"method"_a);
|
|
398
|
+
}
|
|
@@ -147,9 +147,9 @@ def api_from_tensors(*args, jit_promote: bool = False):
|
|
|
147
147
|
raise ValueError(f"Incompatible types got {[type(x) for x in args]=}.")
|
|
148
148
|
|
|
149
149
|
|
|
150
|
-
def to_numpy(x, dtype=None):
|
|
150
|
+
def to_numpy(x, dtype=None, contiguous=False):
|
|
151
151
|
api = api_from_tensor(x)
|
|
152
|
-
return api.asnumpy(x, dtype=dtype)
|
|
152
|
+
return api.asnumpy(x, dtype=dtype, contiguous=contiguous)
|
|
153
153
|
|
|
154
154
|
|
|
155
155
|
def check_keops():
|
|
@@ -85,8 +85,13 @@ def astype(x, dtype):
|
|
|
85
85
|
return astensor(x).astype(dtype)
|
|
86
86
|
|
|
87
87
|
|
|
88
|
-
def astensor(x, contiguous=False, dtype=None):
|
|
89
|
-
|
|
88
|
+
def astensor(x, contiguous=False, dtype=None, device=None):
|
|
89
|
+
out = _jnp.asarray(x, dtype=dtype)
|
|
90
|
+
return to_device(out, device)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def zeros(shape, dtype=None, device=None):
|
|
94
|
+
return to_device(_jnp.zeros(shape, dtype=dtype), device)
|
|
90
95
|
|
|
91
96
|
|
|
92
97
|
def check_keops():
|
|
@@ -194,8 +199,11 @@ def pdist(x, p=2):
|
|
|
194
199
|
return distances[row_idx, col_idx]
|
|
195
200
|
|
|
196
201
|
|
|
197
|
-
def asnumpy(x, dtype=None):
|
|
198
|
-
|
|
202
|
+
def asnumpy(x, dtype=None, contiguous=False):
|
|
203
|
+
x = _jax.lax.stop_gradient(x)
|
|
204
|
+
if contiguous:
|
|
205
|
+
return _np.ascontiguousarray(x, dtype=dtype)
|
|
206
|
+
return _np.asarray(x, dtype=dtype)
|
|
199
207
|
|
|
200
208
|
|
|
201
209
|
def is_tensor(x):
|
|
@@ -18,13 +18,17 @@ _has_jit = _numba is not None
|
|
|
18
18
|
int64 = _np.int64
|
|
19
19
|
cat = _np.concatenate
|
|
20
20
|
det = _np.linalg.det
|
|
21
|
-
asnumpy =
|
|
21
|
+
def asnumpy(x, dtype=None, contiguous=False):
|
|
22
|
+
if contiguous:
|
|
23
|
+
return _np.ascontiguousarray(x, dtype=dtype)
|
|
24
|
+
return _np.asarray(x, dtype=dtype)
|
|
25
|
+
|
|
26
|
+
|
|
22
27
|
tensor = _np.array
|
|
23
28
|
stack = _np.stack
|
|
24
29
|
empty = _np.empty
|
|
25
30
|
where = _np.where
|
|
26
31
|
no_grad = nullcontext
|
|
27
|
-
zeros = _np.zeros
|
|
28
32
|
min = _np.min
|
|
29
33
|
max = _np.max
|
|
30
34
|
reshape = _np.reshape
|
|
@@ -76,12 +80,16 @@ def jit(fn=None, **kwargs):
|
|
|
76
80
|
return decorator(fn)
|
|
77
81
|
|
|
78
82
|
|
|
79
|
-
def astensor(x, contiguous=False, dtype=None):
|
|
83
|
+
def astensor(x, contiguous=False, dtype=None, device=None):
|
|
80
84
|
if contiguous:
|
|
81
85
|
return _np.ascontiguousarray(x, dtype=dtype)
|
|
82
86
|
return _np.asarray(x, dtype=dtype)
|
|
83
87
|
|
|
84
88
|
|
|
89
|
+
def zeros(shape, dtype=None, device=None):
|
|
90
|
+
return _np.zeros(shape, dtype=dtype)
|
|
91
|
+
|
|
92
|
+
|
|
85
93
|
def unique(x, assume_sorted=False, _mean=False):
|
|
86
94
|
return _np.unique(x)
|
|
87
95
|
|
|
@@ -29,7 +29,6 @@ where = _torch.where
|
|
|
29
29
|
no_grad = _torch.no_grad
|
|
30
30
|
cdist = _torch.cdist
|
|
31
31
|
pdist = _torch.pdist
|
|
32
|
-
zeros = _torch.zeros
|
|
33
32
|
min = _torch.min
|
|
34
33
|
max = _torch.max
|
|
35
34
|
repeat_interleave = _torch.repeat_interleave
|
|
@@ -107,13 +106,19 @@ def astype(x, dtype):
|
|
|
107
106
|
return astensor(x).to(dtype=dtype)
|
|
108
107
|
|
|
109
108
|
|
|
110
|
-
def astensor(x, contiguous=False, dtype=None):
|
|
109
|
+
def astensor(x, contiguous=False, dtype=None, device=None):
|
|
111
110
|
out = _torch.as_tensor(x, dtype=dtype)
|
|
111
|
+
if device is not None:
|
|
112
|
+
out = out.to(device=device)
|
|
112
113
|
if contiguous:
|
|
113
114
|
out = out.contiguous()
|
|
114
115
|
return out
|
|
115
116
|
|
|
116
117
|
|
|
118
|
+
def zeros(shape, dtype=None, device=None):
|
|
119
|
+
return _torch.zeros(shape, dtype=dtype, device=device)
|
|
120
|
+
|
|
121
|
+
|
|
117
122
|
def clip(x, min=None, max=None):
|
|
118
123
|
return _torch.clamp(x, min=min, max=max)
|
|
119
124
|
|
|
@@ -248,8 +253,10 @@ def maxvalues(x, axis=None, dim=None, keepdims=False, keepdim=None):
|
|
|
248
253
|
return _torch.max(x)
|
|
249
254
|
|
|
250
255
|
|
|
251
|
-
def asnumpy(x, dtype=None):
|
|
256
|
+
def asnumpy(x, dtype=None, contiguous=False):
|
|
252
257
|
out = x.cpu().detach().numpy()
|
|
258
|
+
if contiguous:
|
|
259
|
+
return _np.ascontiguousarray(out, dtype=dtype)
|
|
253
260
|
if dtype is not None:
|
|
254
261
|
out = out.astype(dtype, copy=False)
|
|
255
262
|
return out
|
{multipers-2.7.0b3 → multipers-2.7.0b4}/multipers/ext_interface/multi_critical_interface.hpp
RENAMED
|
@@ -119,18 +119,44 @@ inline bool multi_critical_interface_available() { return MULTIPERS_HAS_MULTI_CR
|
|
|
119
119
|
namespace multi_critical_detail {
|
|
120
120
|
|
|
121
121
|
inline std::mutex& multi_critical_interface_mutex() {
|
|
122
|
-
//
|
|
122
|
+
// The vendored backend exposes verbose flags as process-global variables.
|
|
123
|
+
// Serialize calls while the log guard mutates and restores them.
|
|
123
124
|
static std::mutex m;
|
|
124
125
|
return m;
|
|
125
126
|
}
|
|
126
127
|
|
|
127
|
-
inline bool multi_critical_interface_needs_global_state_lock() {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
128
|
+
inline bool multi_critical_interface_needs_global_state_lock() { return true; }
|
|
129
|
+
|
|
130
|
+
struct multi_critical_log_guard {
|
|
131
|
+
explicit multi_critical_log_guard(bool verbose_output)
|
|
132
|
+
: old_multi_critical_verbose(multi_critical::verbose),
|
|
133
|
+
old_multi_critical_very_verbose(multi_critical::very_verbose),
|
|
134
|
+
old_multi_chunk_verbose(multi_chunk::verbose),
|
|
135
|
+
old_mpfree_verbose(mpfree::verbose),
|
|
136
|
+
old_mpp_utils_verbose(mpp_utils::verbose) {
|
|
137
|
+
const bool enabled =
|
|
138
|
+
verbose_output || backend_log_policy::backend_log_enabled(backend_log_policy::backend_log_bit::multi_critical);
|
|
139
|
+
multi_critical::verbose = enabled;
|
|
140
|
+
multi_critical::very_verbose = false;
|
|
141
|
+
multi_chunk::verbose = enabled;
|
|
142
|
+
mpfree::verbose = false;
|
|
143
|
+
mpp_utils::verbose = false;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
~multi_critical_log_guard() {
|
|
147
|
+
multi_critical::verbose = old_multi_critical_verbose;
|
|
148
|
+
multi_critical::very_verbose = old_multi_critical_very_verbose;
|
|
149
|
+
multi_chunk::verbose = old_multi_chunk_verbose;
|
|
150
|
+
mpfree::verbose = old_mpfree_verbose;
|
|
151
|
+
mpp_utils::verbose = old_mpp_utils_verbose;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
bool old_multi_critical_verbose;
|
|
155
|
+
bool old_multi_critical_very_verbose;
|
|
156
|
+
bool old_multi_chunk_verbose;
|
|
157
|
+
bool old_mpfree_verbose;
|
|
158
|
+
bool old_mpp_utils_verbose;
|
|
159
|
+
};
|
|
134
160
|
|
|
135
161
|
using Graded_matrix = mpp_utils::Graded_matrix<phat::vector_vector>;
|
|
136
162
|
|
|
@@ -371,7 +397,6 @@ inline std::vector<Graded_matrix> compute_free_resolution_matrices(
|
|
|
371
397
|
}
|
|
372
398
|
|
|
373
399
|
multi_critical_input_parser<index_type> parser(input);
|
|
374
|
-
(void)verbose_output;
|
|
375
400
|
|
|
376
401
|
std::vector<Graded_matrix> matrices;
|
|
377
402
|
multi_critical::free_resolution(parser, matrices, use_logpath);
|
|
@@ -441,6 +466,7 @@ multi_critical_interface_output<index_type> multi_critical_resolution_interface(
|
|
|
441
466
|
if (multi_critical_detail::multi_critical_interface_needs_global_state_lock()) {
|
|
442
467
|
lock.emplace(multi_critical_detail::multi_critical_interface_mutex());
|
|
443
468
|
}
|
|
469
|
+
multi_critical_detail::multi_critical_log_guard log_guard(verbose_output);
|
|
444
470
|
|
|
445
471
|
auto matrices =
|
|
446
472
|
multi_critical_detail::compute_free_resolution_matrices(input, use_logpath, use_multi_chunk, verbose_output);
|
|
@@ -477,6 +503,7 @@ multi_critical_interface_output<index_type> multi_critical_minpres_interface(
|
|
|
477
503
|
if (multi_critical_detail::multi_critical_interface_needs_global_state_lock()) {
|
|
478
504
|
lock.emplace(multi_critical_detail::multi_critical_interface_mutex());
|
|
479
505
|
}
|
|
506
|
+
multi_critical_detail::multi_critical_log_guard log_guard(verbose_output);
|
|
480
507
|
|
|
481
508
|
if (degree < 0) {
|
|
482
509
|
throw std::invalid_argument("multi_critical minimal presentation expects a non-negative degree.");
|
|
@@ -496,7 +523,6 @@ multi_critical_interface_output<index_type> multi_critical_minpres_interface(
|
|
|
496
523
|
|
|
497
524
|
multi_critical_detail::Graded_matrix min_rep;
|
|
498
525
|
|
|
499
|
-
(void)verbose_output;
|
|
500
526
|
mpfree::compute_minimal_presentation(first, second, min_rep, false, false);
|
|
501
527
|
|
|
502
528
|
return multi_critical_detail::convert_minpres<index_type>(min_rep, degree);
|
|
@@ -513,6 +539,7 @@ std::vector<multi_critical_interface_output<index_type> > multi_critical_minpres
|
|
|
513
539
|
if (multi_critical_detail::multi_critical_interface_needs_global_state_lock()) {
|
|
514
540
|
lock.emplace(multi_critical_detail::multi_critical_interface_mutex());
|
|
515
541
|
}
|
|
542
|
+
multi_critical_detail::multi_critical_log_guard log_guard(verbose_output);
|
|
516
543
|
|
|
517
544
|
std::vector<multi_critical_interface_output<index_type> > out;
|
|
518
545
|
|
|
@@ -523,7 +550,6 @@ std::vector<multi_critical_interface_output<index_type> > multi_critical_minpres
|
|
|
523
550
|
}
|
|
524
551
|
|
|
525
552
|
out.reserve(matrices.size() - 2);
|
|
526
|
-
(void)verbose_output;
|
|
527
553
|
|
|
528
554
|
for (int degree = 0; degree < static_cast<int>(matrices.size()) - 2; ++degree) {
|
|
529
555
|
const int internal_degree = degree + 1;
|
|
@@ -6,6 +6,7 @@ from .filtrations import (
|
|
|
6
6
|
DegreeRips,
|
|
7
7
|
DelaunayCodensity,
|
|
8
8
|
DelaunayLowerstar,
|
|
9
|
+
MultiscaleClusteringBifiltration,
|
|
9
10
|
RipsCodensity,
|
|
10
11
|
RipsLowerstar,
|
|
11
12
|
RhomboidBifiltration,
|
|
@@ -17,6 +18,7 @@ __all__ = [
|
|
|
17
18
|
"DegreeRips",
|
|
18
19
|
"DelaunayCodensity",
|
|
19
20
|
"DelaunayLowerstar",
|
|
21
|
+
"MultiscaleClusteringBifiltration",
|
|
20
22
|
"RipsCodensity",
|
|
21
23
|
"RipsLowerstar",
|
|
22
24
|
"RhomboidBifiltration",
|