multipers 2.3.2__tar.gz → 2.3.3b1__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.
Potentially problematic release.
This version of multipers might be problematic. Click here for more details.
- {multipers-2.3.2/multipers.egg-info → multipers-2.3.3b1}/PKG-INFO +1 -1
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/plots.py +88 -2
- {multipers-2.3.2 → multipers-2.3.3b1/multipers.egg-info}/PKG-INFO +1 -1
- {multipers-2.3.2 → multipers-2.3.3b1}/pyproject.toml +1 -1
- {multipers-2.3.2 → multipers-2.3.3b1}/setup.py +2 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/LICENSE +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/MANIFEST.in +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/README.md +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/_tempita_grid_gen.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/__init__.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/_signed_measure_meta.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/_slicer_meta.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/array_api/__init__.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/array_api/numpy.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/array_api/torch.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/data/MOL2.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/data/UCR.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/data/__init__.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/data/graphs.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/data/immuno_regions.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/data/minimal_presentation_to_st_bf.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/data/pytorch2simplextree.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/data/shape3d.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/data/synthetic.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/distances.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/filtration_conversions.pxd +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/filtration_conversions.pxd.tp +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/filtrations/__init__.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/filtrations/density.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/filtrations/filtrations.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/filtrations.pxd +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/function_rips.pyx +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/grids.pyx +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/Persistence_slices_interface.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/Simplex_tree_interface.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/Simplex_tree_multi_interface.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/cubical_to_boundary.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Bitmap_cubical_complex.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Bitmap_cubical_complex_base.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Bitmap_cubical_complex_periodic_boundary_conditions_base.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Debug_utils.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Fields/Multi_field.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Fields/Multi_field_operators.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Fields/Multi_field_shared.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Fields/Multi_field_small.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Fields/Multi_field_small_operators.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Fields/Multi_field_small_shared.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Fields/Z2_field.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Fields/Z2_field_operators.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Fields/Zp_field.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Fields/Zp_field_operators.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Fields/Zp_field_shared.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Flag_complex_edge_collapser.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Matrix.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Multi_critical_filtration.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Multi_persistence/Box.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Multi_persistence/Line.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Off_reader.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/One_critical_filtration.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/Base_matrix.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/Base_matrix_with_column_compression.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/Boundary_matrix.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/Chain_matrix.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/Id_to_index_overlay.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/Position_to_index_overlay.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/RU_matrix.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/allocators/entry_constructors.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/base_pairing.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/base_swap.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/boundary_cell_position_to_id_mapper.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/boundary_face_position_to_id_mapper.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/chain_pairing.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/chain_rep_cycles.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/chain_vine_swap.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/chain_column_extra_properties.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/column_dimension_holder.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/column_utilities.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/entry_types.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/heap_column.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/intrusive_list_column.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/intrusive_set_column.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/list_column.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/naive_vector_column.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/row_access.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/set_column.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/small_vector_column.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/unordered_set_column.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/vector_column.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/matrix_dimension_holders.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/matrix_row_access.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/ru_pairing.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/ru_rep_cycles.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/ru_vine_swap.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistent_cohomology/Field_Zp.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistent_cohomology/Multi_field.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistent_cohomology/Persistent_cohomology_column.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistent_cohomology.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Points_off_io.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Simple_object_pool.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_iterators.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_node_explicit_storage.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_siblings.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_star_simplex_iterators.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Simplex_tree/hooks_simplex_base.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Simplex_tree/indexing_tag.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Simplex_tree/serialization_utils.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Simplex_tree/simplex_tree_options.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Simplex_tree.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Simplex_tree_multi.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/distance_functions.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/graph_simplicial_complex.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/persistence_interval.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/persistence_matrix_options.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/reader_utils.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/mma_interface_coh.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/mma_interface_h0.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/mma_interface_matrix.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/naive_merge_tree.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/scc_io.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/truc.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/io.pyx +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/ml/__init__.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/ml/accuracies.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/ml/invariants_with_persistable.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/ml/kernels.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/ml/mma.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/ml/one.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/ml/point_clouds.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/ml/signed_measures.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/ml/sliced_wasserstein.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/ml/tools.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/mma_structures.pxd +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/mma_structures.pyx +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/mma_structures.pyx.tp +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multi_parameter_rank_invariant/diff_helpers.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multi_parameter_rank_invariant/euler_characteristic.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multi_parameter_rank_invariant/function_rips.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multi_parameter_rank_invariant/hilbert_function.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multi_parameter_rank_invariant/persistence_slices.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multi_parameter_rank_invariant/rank_invariant.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_edge_collapse.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/approximation.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/combinatory.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/debug.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/euler_curves.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/format_python-cpp.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/heap_column.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/images.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/list_column.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/list_column_2.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/ru_matrix.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/set_column.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/structure_higher_dim_barcode.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/unordered_set_column.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/utilities.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/vector_column.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/vector_matrix.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/vineyards.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/vineyards_trajectories.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation.pyx +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/pickle.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/point_measure.pyx +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/simplex_tree_multi.pxd +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/simplex_tree_multi.pyx +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/simplex_tree_multi.pyx.tp +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/slicer.pxd +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/slicer.pxd.tp +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/slicer.pyx +12 -12
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/slicer.pyx.tp +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/tensor/tensor.h +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/tensor.pxd +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/test.pyx +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/tests/__init__.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/torch/__init__.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/torch/diff_grids.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers/torch/rips_density.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers.egg-info/SOURCES.txt +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers.egg-info/dependency_links.txt +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers.egg-info/requires.txt +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/multipers.egg-info/top_level.txt +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/setup.cfg +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/tests/test_diff_helper.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/tests/test_filtrations.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/tests/test_hilbert_function.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/tests/test_mma.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/tests/test_point_clouds.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/tests/test_python-cpp_conversion.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/tests/test_signed_betti.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/tests/test_signed_measure.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/tests/test_simplextreemulti.py +0 -0
- {multipers-2.3.2 → multipers-2.3.3b1}/tests/test_slicer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: multipers
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.3b1
|
|
4
4
|
Summary: Multiparameter Topological Persistence for Machine Learning
|
|
5
5
|
Author-email: David Loiseaux <david.lapous@proton.me>, Hannah Schreiber <hannah.schreiber@inria.fr>
|
|
6
6
|
Maintainer-email: David Loiseaux <david.lapous@proton.me>
|
|
@@ -2,13 +2,16 @@ from typing import Optional
|
|
|
2
2
|
|
|
3
3
|
import matplotlib.pyplot as plt
|
|
4
4
|
import numpy as np
|
|
5
|
+
from numpy.typing import ArrayLike
|
|
5
6
|
|
|
6
7
|
try:
|
|
7
8
|
import torch
|
|
9
|
+
|
|
8
10
|
istensor = torch.is_tensor
|
|
9
11
|
except ImportError:
|
|
10
12
|
istensor = lambda x: False
|
|
11
13
|
|
|
14
|
+
|
|
12
15
|
def _plot_rectangle(rectangle: np.ndarray, weight, **plt_kwargs):
|
|
13
16
|
rectangle = np.asarray(rectangle)
|
|
14
17
|
x_axis = rectangle[[0, 2]]
|
|
@@ -137,7 +140,9 @@ def plot_signed_measure(signed_measure, threshold=None, ax=None, **plt_kwargs):
|
|
|
137
140
|
else:
|
|
138
141
|
pts_ = pts
|
|
139
142
|
threshold = np.max(np.ma.masked_invalid(pts_), axis=0)
|
|
140
|
-
threshold = np.max(
|
|
143
|
+
threshold = np.max(
|
|
144
|
+
[threshold, [plt.gca().get_xlim()[1], plt.gca().get_ylim()[1]]], axis=0
|
|
145
|
+
)
|
|
141
146
|
if isinstance(pts, np.ndarray):
|
|
142
147
|
pass
|
|
143
148
|
else:
|
|
@@ -255,7 +260,7 @@ def plot2d_PyModule(
|
|
|
255
260
|
dimension=-1,
|
|
256
261
|
separated=False,
|
|
257
262
|
min_persistence=0,
|
|
258
|
-
alpha
|
|
263
|
+
alpha=0.8,
|
|
259
264
|
verbose=False,
|
|
260
265
|
save=False,
|
|
261
266
|
dpi=200,
|
|
@@ -341,3 +346,84 @@ def plot2d_PyModule(
|
|
|
341
346
|
if dimension >= 0:
|
|
342
347
|
plt.title(rf"$H_{dimension}$ $2$-persistence")
|
|
343
348
|
return
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
def plot_simplicial_complex(
|
|
352
|
+
st, pts: ArrayLike, x: float, y: float, mma=None, degree=None
|
|
353
|
+
):
|
|
354
|
+
"""
|
|
355
|
+
Scatters the points, with the simplices in the filtration at coordinates (x,y).
|
|
356
|
+
if an mma module is given, plots it in a second axis
|
|
357
|
+
"""
|
|
358
|
+
if mma is not None:
|
|
359
|
+
fig, (a, b) = plt.subplots(ncols=2, figsize=(15, 5))
|
|
360
|
+
plt.sca(a)
|
|
361
|
+
plot_simplicial_complex(st, pts, x, y)
|
|
362
|
+
plt.sca(b)
|
|
363
|
+
mma.plot(degree=degree)
|
|
364
|
+
box = mma.get_box()
|
|
365
|
+
a, b, c, d = box.ravel()
|
|
366
|
+
mma.plot(degree=1, min_persistence=0.01)
|
|
367
|
+
plt.vlines(x, b, d, color="k", linestyle="--")
|
|
368
|
+
plt.hlines(y, a, c, color="k", linestyle="--")
|
|
369
|
+
plt.scatter([x], [y], c="r", zorder=10)
|
|
370
|
+
plt.text(x + 0.01 * (b - a), y + 0.01 * (d - c), f"({x},{y})")
|
|
371
|
+
return
|
|
372
|
+
|
|
373
|
+
pts = np.asarray(pts)
|
|
374
|
+
values = np.array([-f[1] for s, f in st.get_skeleton(0)])
|
|
375
|
+
qs = np.quantile(values, np.linspace(0, 1, 100))
|
|
376
|
+
color_idx = lambda d: np.searchsorted(qs, d) / 100
|
|
377
|
+
|
|
378
|
+
from matplotlib.pyplot import get_cmap
|
|
379
|
+
|
|
380
|
+
color = lambda d: get_cmap("viridis")([0, color_idx(d), 1])[1]
|
|
381
|
+
cols_pc = np.asarray([color(v) for v in values])
|
|
382
|
+
ax = plt.gca()
|
|
383
|
+
for s, f in st: ## simplexe, filtration
|
|
384
|
+
density = -f[1]
|
|
385
|
+
if len(s) <= 1 or f[0] > x or density < -y: ## simplexe = point
|
|
386
|
+
continue
|
|
387
|
+
if len(s) == 2: ## simplexe = segment
|
|
388
|
+
xx = np.array([pts[a, 0] for a in s])
|
|
389
|
+
yy = np.array([pts[a, 1] for a in s])
|
|
390
|
+
plt.plot(xx, yy, c=color(density), alpha=1, zorder=10 * density, lw=1.5)
|
|
391
|
+
if len(s) == 3: ## simplexe = triangle
|
|
392
|
+
xx = np.array([pts[a, 0] for a in s])
|
|
393
|
+
yy = np.array([pts[a, 1] for a in s])
|
|
394
|
+
_c = color(density)
|
|
395
|
+
ax.fill(xx, yy, c=_c, alpha=0.3, zorder=0)
|
|
396
|
+
out = plt.scatter(pts[:, 0], pts[:, 1], c=cols_pc, zorder=10, s=10)
|
|
397
|
+
ax.set_aspect(1)
|
|
398
|
+
return out
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
def plot_point_cloud(pts, function, x, y, mma=None, degree=None):
|
|
402
|
+
if mma is not None:
|
|
403
|
+
fig, (a, b) = plt.subplots(ncols=2, figsize=(15, 5))
|
|
404
|
+
plt.sca(a)
|
|
405
|
+
plot_point_cloud(pts, function, x, y)
|
|
406
|
+
plt.sca(b)
|
|
407
|
+
mma.plot(degree=degree)
|
|
408
|
+
box = mma.get_box()
|
|
409
|
+
a, b, c, d = box.ravel()
|
|
410
|
+
mma.plot(degree=1, min_persistence=0.01)
|
|
411
|
+
plt.vlines(x, b, d, color="k", linestyle="--")
|
|
412
|
+
plt.hlines(y, a, c, color="k", linestyle="--")
|
|
413
|
+
plt.scatter([x], [y], c="r", zorder=10)
|
|
414
|
+
plt.text(x + 0.01 * (b - a), y + 0.01 * (d - c), f"({x},{y})")
|
|
415
|
+
return
|
|
416
|
+
values = 1 - function
|
|
417
|
+
qs = np.quantile(values, np.linspace(0, 1, 100))
|
|
418
|
+
color_idx = lambda d: np.searchsorted(qs, d) / 100
|
|
419
|
+
from matplotlib.pyplot import get_cmap
|
|
420
|
+
from matplotlib.collections import PatchCollection
|
|
421
|
+
|
|
422
|
+
color = lambda d: get_cmap("viridis")([0, color_idx(d), 1])[1]
|
|
423
|
+
ax = plt.gca()
|
|
424
|
+
idx = function <= y
|
|
425
|
+
circles = [plt.Circle(pt, x, color=color(c)) for pt, c in zip(pts[idx], function)]
|
|
426
|
+
pc = PatchCollection(circles, alpha=0.3)
|
|
427
|
+
ax.add_collection(pc)
|
|
428
|
+
plt.scatter(*pts.T, c=-function, s=20)
|
|
429
|
+
ax.set_aspect(1)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: multipers
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.3b1
|
|
4
4
|
Summary: Multiparameter Topological Persistence for Machine Learning
|
|
5
5
|
Author-email: David Loiseaux <david.lapous@proton.me>, Hannah Schreiber <hannah.schreiber@inria.fr>
|
|
6
6
|
Maintainer-email: David Loiseaux <david.lapous@proton.me>
|
|
@@ -167,6 +167,8 @@ extensions = [
|
|
|
167
167
|
language="c++",
|
|
168
168
|
extra_compile_args=[
|
|
169
169
|
"-O3", # -Ofast disables infinity values for filtration values
|
|
170
|
+
"-fassociative-math",
|
|
171
|
+
"-funsafe-math-optimizations",
|
|
170
172
|
# "-g",
|
|
171
173
|
# "-march=native",
|
|
172
174
|
"/std:c++20" if platform.system() == "Windows" else "-std=c++20",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Fields/Multi_field_small_operators.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Fields/Multi_field_small_shared.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/Base_matrix.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/Boundary_matrix.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/Chain_matrix.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/Id_to_index_overlay.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/base_pairing.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/chain_pairing.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/chain_rep_cycles.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/chain_vine_swap.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/entry_types.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/heap_column.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/list_column.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/row_access.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/columns/set_column.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/matrix_row_access.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/ru_rep_cycles.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistence_matrix/ru_vine_swap.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistent_cohomology/Field_Zp.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Persistent_cohomology/Multi_field.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_iterators.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_siblings.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Simplex_tree/hooks_simplex_base.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Simplex_tree/serialization_utils.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/gudhi/gudhi/Simplex_tree/simplex_tree_options.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multi_parameter_rank_invariant/diff_helpers.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multi_parameter_rank_invariant/function_rips.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multi_parameter_rank_invariant/hilbert_function.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multi_parameter_rank_invariant/persistence_slices.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multi_parameter_rank_invariant/rank_invariant.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/approximation.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/combinatory.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/euler_curves.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/heap_column.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/images.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/list_column.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/list_column_2.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/ru_matrix.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/set_column.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/utilities.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/vector_column.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/vector_matrix.h
RENAMED
|
File without changes
|
{multipers-2.3.2 → multipers-2.3.3b1}/multipers/multiparameter_module_approximation/vineyards.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -19914,7 +19914,7 @@ def _from_bitmapi64(image, **slicer_kwargs):
|
|
|
19914
19914
|
# print(f"F = {np.asarray(F[i])}")
|
|
19915
19915
|
slicer = _Slicer(gen_maps, gen_dims, filtration_values)
|
|
19916
19916
|
return slicer
|
|
19917
|
-
def
|
|
19917
|
+
def _from_bitmapf64(image, **slicer_kwargs):
|
|
19918
19918
|
from multipers import Slicer
|
|
19919
19919
|
dtype = slicer_kwargs.get("dtype", image.dtype)
|
|
19920
19920
|
slicer_kwargs["dtype"] = dtype
|
|
@@ -19932,9 +19932,9 @@ def _from_bitmapi32(image, **slicer_kwargs):
|
|
|
19932
19932
|
cdef cset[unsigned int] vertices
|
|
19933
19933
|
|
|
19934
19934
|
cdef unsigned int num_gens = gen_dims.size()
|
|
19935
|
-
filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.
|
|
19936
|
-
cdef
|
|
19937
|
-
cdef
|
|
19935
|
+
filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.float64) - _Slicer._inf_value()
|
|
19936
|
+
cdef double[:,:] F = filtration_values
|
|
19937
|
+
cdef double[:,:] c_img = image.reshape(-1,num_parameters)
|
|
19938
19938
|
with nogil:
|
|
19939
19939
|
for i in range(num_gens):
|
|
19940
19940
|
# with gil:
|
|
@@ -19990,7 +19990,7 @@ def _from_bitmapf32(image, **slicer_kwargs):
|
|
|
19990
19990
|
# print(f"F = {np.asarray(F[i])}")
|
|
19991
19991
|
slicer = _Slicer(gen_maps, gen_dims, filtration_values)
|
|
19992
19992
|
return slicer
|
|
19993
|
-
def
|
|
19993
|
+
def _from_bitmapi32(image, **slicer_kwargs):
|
|
19994
19994
|
from multipers import Slicer
|
|
19995
19995
|
dtype = slicer_kwargs.get("dtype", image.dtype)
|
|
19996
19996
|
slicer_kwargs["dtype"] = dtype
|
|
@@ -20008,9 +20008,9 @@ def _from_bitmapf64(image, **slicer_kwargs):
|
|
|
20008
20008
|
cdef cset[unsigned int] vertices
|
|
20009
20009
|
|
|
20010
20010
|
cdef unsigned int num_gens = gen_dims.size()
|
|
20011
|
-
filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.
|
|
20012
|
-
cdef
|
|
20013
|
-
cdef
|
|
20011
|
+
filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.int32) - _Slicer._inf_value()
|
|
20012
|
+
cdef int32_t[:,:] F = filtration_values
|
|
20013
|
+
cdef int32_t[:,:] c_img = image.reshape(-1,num_parameters)
|
|
20014
20014
|
with nogil:
|
|
20015
20015
|
for i in range(num_gens):
|
|
20016
20016
|
# with gil:
|
|
@@ -20033,12 +20033,12 @@ def from_bitmap(img, **kwargs):
|
|
|
20033
20033
|
img = np.asarray(img)
|
|
20034
20034
|
if img.dtype == np.int64:
|
|
20035
20035
|
return _from_bitmapi64(img, **kwargs)
|
|
20036
|
-
if img.dtype == np.int32:
|
|
20037
|
-
return _from_bitmapi32(img, **kwargs)
|
|
20038
|
-
if img.dtype == np.float32:
|
|
20039
|
-
return _from_bitmapf32(img, **kwargs)
|
|
20040
20036
|
if img.dtype == np.float64:
|
|
20041
20037
|
return _from_bitmapf64(img, **kwargs)
|
|
20038
|
+
if img.dtype == np.float32:
|
|
20039
|
+
return _from_bitmapf32(img, **kwargs)
|
|
20040
|
+
if img.dtype == np.int32:
|
|
20041
|
+
return _from_bitmapi32(img, **kwargs)
|
|
20042
20042
|
raise ValueError(f"Invalid dtype. Got {img.dtype=}, was expecting {available_dtype=}.")
|
|
20043
20043
|
|
|
20044
20044
|
def from_function_delaunay(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|