multipers 2.3.3b4__tar.gz → 2.3.3b5__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.3b4/multipers.egg-info → multipers-2.3.3b5}/PKG-INFO +1 -1
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/_signed_measure_meta.py +25 -8
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/array_api/__init__.py +4 -2
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/array_api/numpy.py +2 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/array_api/torch.py +1 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/plots.py +2 -2
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/point_measure.pyx +71 -2
- {multipers-2.3.3b4 → multipers-2.3.3b5/multipers.egg-info}/PKG-INFO +1 -1
- {multipers-2.3.3b4 → multipers-2.3.3b5}/pyproject.toml +1 -1
- {multipers-2.3.3b4 → multipers-2.3.3b5}/tests/test_signed_measure.py +67 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/LICENSE +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/MANIFEST.in +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/README.md +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/_tempita_grid_gen.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/__init__.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/_slicer_meta.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/data/MOL2.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/data/UCR.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/data/__init__.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/data/graphs.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/data/immuno_regions.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/data/minimal_presentation_to_st_bf.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/data/pytorch2simplextree.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/data/shape3d.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/data/synthetic.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/distances.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/filtration_conversions.pxd +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/filtration_conversions.pxd.tp +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/filtrations/__init__.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/filtrations/density.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/filtrations/filtrations.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/filtrations.pxd +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/function_rips.pyx +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/grids.pyx +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/Persistence_slices_interface.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/Simplex_tree_interface.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/Simplex_tree_multi_interface.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/cubical_to_boundary.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Bitmap_cubical_complex.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Bitmap_cubical_complex_base.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Bitmap_cubical_complex_periodic_boundary_conditions_base.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Debug_utils.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Fields/Multi_field.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Fields/Multi_field_operators.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Fields/Multi_field_shared.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Fields/Multi_field_small.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Fields/Multi_field_small_operators.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Fields/Multi_field_small_shared.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Fields/Z2_field.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Fields/Z2_field_operators.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Fields/Zp_field.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Fields/Zp_field_operators.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Fields/Zp_field_shared.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Flag_complex_edge_collapser.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Matrix.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Multi_critical_filtration.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Multi_persistence/Box.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Multi_persistence/Line.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Off_reader.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/One_critical_filtration.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/Base_matrix.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/Base_matrix_with_column_compression.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/Boundary_matrix.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/Chain_matrix.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/Id_to_index_overlay.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/Position_to_index_overlay.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/RU_matrix.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/allocators/entry_constructors.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/base_pairing.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/base_swap.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/boundary_cell_position_to_id_mapper.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/boundary_face_position_to_id_mapper.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/chain_pairing.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/chain_rep_cycles.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/chain_vine_swap.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/columns/chain_column_extra_properties.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/columns/column_dimension_holder.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/columns/column_utilities.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/columns/entry_types.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/columns/heap_column.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/columns/intrusive_list_column.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/columns/intrusive_set_column.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/columns/list_column.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/columns/naive_vector_column.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/columns/row_access.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/columns/set_column.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/columns/small_vector_column.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/columns/unordered_set_column.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/columns/vector_column.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/matrix_dimension_holders.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/matrix_row_access.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/ru_pairing.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/ru_rep_cycles.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/ru_vine_swap.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistent_cohomology/Field_Zp.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistent_cohomology/Multi_field.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistent_cohomology/Persistent_cohomology_column.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistent_cohomology.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Points_off_io.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Simple_object_pool.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_iterators.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_node_explicit_storage.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_siblings.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_star_simplex_iterators.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Simplex_tree/hooks_simplex_base.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Simplex_tree/indexing_tag.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Simplex_tree/serialization_utils.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Simplex_tree/simplex_tree_options.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Simplex_tree.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Simplex_tree_multi.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/distance_functions.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/graph_simplicial_complex.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/persistence_interval.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/persistence_matrix_options.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/reader_utils.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/mma_interface_coh.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/mma_interface_h0.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/mma_interface_matrix.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/naive_merge_tree.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/scc_io.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/truc.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/io.pyx +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/ml/__init__.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/ml/accuracies.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/ml/invariants_with_persistable.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/ml/kernels.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/ml/mma.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/ml/one.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/ml/point_clouds.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/ml/signed_measures.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/ml/sliced_wasserstein.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/ml/tools.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/mma_structures.pxd +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/mma_structures.pyx +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/mma_structures.pyx.tp +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multi_parameter_rank_invariant/diff_helpers.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multi_parameter_rank_invariant/euler_characteristic.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multi_parameter_rank_invariant/function_rips.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multi_parameter_rank_invariant/hilbert_function.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multi_parameter_rank_invariant/persistence_slices.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multi_parameter_rank_invariant/rank_invariant.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_edge_collapse.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/approximation.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/combinatory.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/debug.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/euler_curves.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/format_python-cpp.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/heap_column.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/images.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/list_column.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/list_column_2.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/ru_matrix.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/set_column.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/structure_higher_dim_barcode.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/unordered_set_column.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/utilities.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/vector_column.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/vector_matrix.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/vineyards.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/vineyards_trajectories.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation.pyx +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/pickle.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/simplex_tree_multi.pxd +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/simplex_tree_multi.pyx +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/simplex_tree_multi.pyx.tp +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/slicer.pxd +20 -20
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/slicer.pxd.tp +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/slicer.pyx +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/slicer.pyx.tp +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/tensor/tensor.h +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/tensor.pxd +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/test.pyx +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/tests/__init__.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/torch/__init__.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/torch/diff_grids.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/torch/rips_density.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers.egg-info/SOURCES.txt +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers.egg-info/dependency_links.txt +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers.egg-info/requires.txt +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/multipers.egg-info/top_level.txt +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/setup.cfg +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/setup.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/tests/test_diff_helper.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/tests/test_filtrations.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/tests/test_hilbert_function.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/tests/test_mma.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/tests/test_point_clouds.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/tests/test_python-cpp_conversion.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/tests/test_signed_betti.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/tests/test_simplextreemulti.py +0 -0
- {multipers-2.3.3b4 → multipers-2.3.3b5}/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.3b5
|
|
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>
|
|
@@ -3,7 +3,6 @@ from typing import Optional, Union
|
|
|
3
3
|
|
|
4
4
|
import numpy as np
|
|
5
5
|
|
|
6
|
-
import multipers as mp
|
|
7
6
|
from multipers.grids import compute_grid, sms_in_grid
|
|
8
7
|
from multipers.plots import plot_signed_measures
|
|
9
8
|
from multipers.point_measure import clean_sms, zero_out_sms
|
|
@@ -31,7 +30,7 @@ def signed_measure(
|
|
|
31
30
|
verbose: bool = False,
|
|
32
31
|
n_jobs: int = -1,
|
|
33
32
|
expand_collapse: bool = False,
|
|
34
|
-
backend: Optional[str] = None,
|
|
33
|
+
backend: Optional[str] = None, # deprecated
|
|
35
34
|
grid: Optional[Iterable] = None,
|
|
36
35
|
coordinate_measure: bool = False,
|
|
37
36
|
num_collapses: int = 0, # TODO : deprecate
|
|
@@ -99,12 +98,21 @@ def signed_measure(
|
|
|
99
98
|
- Rank: Same as Hilbert.
|
|
100
99
|
"""
|
|
101
100
|
if backend is not None:
|
|
102
|
-
raise ValueError(
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
raise ValueError(
|
|
102
|
+
"backend is deprecated. reduce the complex before this function."
|
|
103
|
+
)
|
|
104
|
+
if num_collapses > 0:
|
|
105
|
+
raise ValueError(
|
|
106
|
+
"num_collapses is deprecated. reduce the complex before this function."
|
|
107
|
+
)
|
|
105
108
|
## TODO : add timings in verbose
|
|
106
109
|
if len(filtered_complex) == 0:
|
|
107
|
-
return [
|
|
110
|
+
return [
|
|
111
|
+
(
|
|
112
|
+
np.empty((0, 2), dtype=filtered_complex.dtype),
|
|
113
|
+
np.empty(shape=(0,), dtype=int),
|
|
114
|
+
)
|
|
115
|
+
]
|
|
108
116
|
if grid_conversion is not None:
|
|
109
117
|
grid = tuple(f for f in grid_conversion)
|
|
110
118
|
raise DeprecationWarning(
|
|
@@ -134,6 +142,8 @@ def signed_measure(
|
|
|
134
142
|
"rank",
|
|
135
143
|
"euler_characteristic",
|
|
136
144
|
"hilbert_function",
|
|
145
|
+
"rectangle",
|
|
146
|
+
"hook",
|
|
137
147
|
]
|
|
138
148
|
|
|
139
149
|
assert (
|
|
@@ -256,7 +266,7 @@ def signed_measure(
|
|
|
256
266
|
# if verbose:
|
|
257
267
|
# print("Done.")
|
|
258
268
|
else: # No backend
|
|
259
|
-
if invariant is not None and "rank" in invariant:
|
|
269
|
+
if invariant is not None and ("rank" in invariant or "hook" in invariant or "rectangle" in invariant):
|
|
260
270
|
degrees = np.asarray(degrees, dtype=int)
|
|
261
271
|
if verbose:
|
|
262
272
|
print("Computing rank...", end="")
|
|
@@ -269,6 +279,10 @@ def signed_measure(
|
|
|
269
279
|
ignore_inf=ignore_infinite_filtration_values,
|
|
270
280
|
)
|
|
271
281
|
fix_mass_default = False
|
|
282
|
+
|
|
283
|
+
if "hook" in invariant:
|
|
284
|
+
from multipers.point_measure import rectangle_to_hook_minimal_signed_barcode
|
|
285
|
+
sms = [rectangle_to_hook_minimal_signed_barcode(pts,w) for pts,w in sms]
|
|
272
286
|
if verbose:
|
|
273
287
|
print("Done.")
|
|
274
288
|
elif filtered_complex_.is_minpres:
|
|
@@ -315,7 +329,7 @@ def signed_measure(
|
|
|
315
329
|
if verbose:
|
|
316
330
|
print("Input is a simplextree.")
|
|
317
331
|
## we still have a simplextree here
|
|
318
|
-
if invariant in ["rank_invariant", "rank"]:
|
|
332
|
+
if invariant in ["rank_invariant", "rank", "hook", "rectangle"]:
|
|
319
333
|
if verbose:
|
|
320
334
|
print("Computing rank invariant...", end="")
|
|
321
335
|
assert (
|
|
@@ -331,6 +345,9 @@ def signed_measure(
|
|
|
331
345
|
expand_collapse=expand_collapse,
|
|
332
346
|
)
|
|
333
347
|
fix_mass_default = False
|
|
348
|
+
if "hook" in invariant:
|
|
349
|
+
from multipers.point_measure import rectangle_to_hook_minimal_signed_barcode
|
|
350
|
+
sms = [rectangle_to_hook_minimal_signed_barcode(pts,w) for pts,w in sms]
|
|
334
351
|
if verbose:
|
|
335
352
|
print("Done.")
|
|
336
353
|
elif len(degrees) == 1 and degrees[0] is None:
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import multipers.array_api.numpy as npapi
|
|
2
|
+
|
|
3
3
|
|
|
4
|
+
def api_from_tensor(x, *, verbose: bool = False):
|
|
4
5
|
if npapi.is_promotable(x):
|
|
5
6
|
if verbose:
|
|
6
7
|
print("using numpy backend")
|
|
@@ -38,6 +39,7 @@ def api_from_tensors(*args):
|
|
|
38
39
|
return torchapi
|
|
39
40
|
raise ValueError(f"Incompatible types got {[type(x) for x in args]=}.")
|
|
40
41
|
|
|
42
|
+
|
|
41
43
|
def to_numpy(x):
|
|
42
44
|
api = api_from_tensor(x)
|
|
43
45
|
return api.asnumpy(x)
|
|
@@ -84,7 +84,7 @@ def _plot_signed_measure_4(
|
|
|
84
84
|
pts = np.clip(pts, a_min=-np.inf, a_max=np.array((*threshold, *threshold))[None, :])
|
|
85
85
|
alpha_rescaling = 0
|
|
86
86
|
for rectangle, weight in zip(pts, weights):
|
|
87
|
-
if rectangle[2]
|
|
87
|
+
if rectangle[2] >= x_smoothing * rectangle[0]:
|
|
88
88
|
alpha_rescaling = max(
|
|
89
89
|
alpha_rescaling,
|
|
90
90
|
(rectangle[2] / x_smoothing - rectangle[0])
|
|
@@ -93,7 +93,7 @@ def _plot_signed_measure_4(
|
|
|
93
93
|
# draw the rectangles
|
|
94
94
|
for rectangle, weight in zip(pts, weights):
|
|
95
95
|
# draw only the rectangles that have not been reduced to the empty set
|
|
96
|
-
if rectangle[2]
|
|
96
|
+
if rectangle[2] >= x_smoothing * rectangle[0]:
|
|
97
97
|
# make the alpha channel proportional to the rectangle's area
|
|
98
98
|
if area_alpha:
|
|
99
99
|
_plot_rectangle(
|
|
@@ -11,6 +11,7 @@ from collections import defaultdict
|
|
|
11
11
|
cnp.import_array()
|
|
12
12
|
from scipy import sparse
|
|
13
13
|
|
|
14
|
+
from multipers.array_api import api_from_tensor
|
|
14
15
|
|
|
15
16
|
import multipers.grids as mpg
|
|
16
17
|
|
|
@@ -31,7 +32,6 @@ import cython
|
|
|
31
32
|
cimport cython
|
|
32
33
|
|
|
33
34
|
|
|
34
|
-
|
|
35
35
|
# from scipy.sparse import coo_array
|
|
36
36
|
# from scipy.ndimage import convolve1d
|
|
37
37
|
|
|
@@ -169,7 +169,7 @@ def sparsify(x):
|
|
|
169
169
|
|
|
170
170
|
@cython.boundscheck(False)
|
|
171
171
|
@cython.wraparound(False)
|
|
172
|
-
def
|
|
172
|
+
def clean_signed_measure_old(some_float[:,:] pts, some_int[:] weights, dtype = np.float32):
|
|
173
173
|
"""
|
|
174
174
|
Sum the diracs at the same locations. i.e.,
|
|
175
175
|
returns the minimal sized measure to represent the input.
|
|
@@ -190,6 +190,14 @@ def clean_signed_measure(some_float[:,:] pts, some_int[:] weights, dtype = np.fl
|
|
|
190
190
|
new_weights = new_weights[idx]
|
|
191
191
|
return (new_pts, new_weights)
|
|
192
192
|
|
|
193
|
+
def clean_signed_measure(pts, w, dtype=np.int32):
|
|
194
|
+
api = api_from_tensor(pts)
|
|
195
|
+
_, idx, inv = np.unique(api.asnumpy(pts), return_index=True, return_inverse=True, axis=0)
|
|
196
|
+
new_w = np.bincount(inv, weights=w).astype(w.dtype)
|
|
197
|
+
pts, w = pts[idx], new_w
|
|
198
|
+
idx = w!=0
|
|
199
|
+
return pts[idx],w[idx]
|
|
200
|
+
|
|
193
201
|
def clean_sms(sms):
|
|
194
202
|
"""
|
|
195
203
|
Sum the diracs at the same locations. i.e.,
|
|
@@ -324,3 +332,64 @@ def estimate_rank_from_rank_sm(sm:tuple, a, b)->np.int64:
|
|
|
324
332
|
return w[idx].sum()
|
|
325
333
|
|
|
326
334
|
|
|
335
|
+
def rectangle_to_hook_minimal_signed_barcode(pts,w,):
|
|
336
|
+
if pts.shape[1] != 4:
|
|
337
|
+
raise NotImplementedError(
|
|
338
|
+
"Only works for 2-parameter persistence modules for the moment."
|
|
339
|
+
)
|
|
340
|
+
api = api_from_tensor(pts)
|
|
341
|
+
pts = api.astensor(pts)
|
|
342
|
+
w = np.asarray(w)
|
|
343
|
+
## [a,b], [a, a0b1], [a,b0a1], proj, V,H
|
|
344
|
+
|
|
345
|
+
projectives_idx = (pts[:,3] == np.inf) * (pts[:,2] == np.inf)
|
|
346
|
+
pts_proj = pts[projectives_idx]
|
|
347
|
+
w_proj = w[projectives_idx]
|
|
348
|
+
pts = pts[~projectives_idx]
|
|
349
|
+
w = w[~projectives_idx]
|
|
350
|
+
# print("projectives:", pts_proj)
|
|
351
|
+
|
|
352
|
+
vert_blocks_idx = pts[:,3] == np.inf
|
|
353
|
+
pts_V = pts[vert_blocks_idx]
|
|
354
|
+
w_V = w[vert_blocks_idx]
|
|
355
|
+
pts_V[:,3] = pts_V[:,1]
|
|
356
|
+
pts = pts[~vert_blocks_idx]
|
|
357
|
+
w = w[~vert_blocks_idx]
|
|
358
|
+
# print("vertical:", pts_V)
|
|
359
|
+
|
|
360
|
+
h_idx = pts[:,2] == np.inf
|
|
361
|
+
pts_H = pts[h_idx]
|
|
362
|
+
w_H = w[h_idx]
|
|
363
|
+
pts_H[:,2] = pts_H[:,0]
|
|
364
|
+
pts = pts[~h_idx]
|
|
365
|
+
w = w[~h_idx]
|
|
366
|
+
# print("horizontal:", pts_H)
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
new_w = api.cat([-w, w, w, w_proj,w_V,w_H])
|
|
370
|
+
|
|
371
|
+
pts_b0a1 = api.tensor(pts)
|
|
372
|
+
pts_b0a1[:,3] = pts[:,1]
|
|
373
|
+
pts_a0b1 = api.tensor(pts)
|
|
374
|
+
pts_a0b1[:,2] = pts[:,0]
|
|
375
|
+
|
|
376
|
+
new_pts = api.cat([
|
|
377
|
+
pts,
|
|
378
|
+
pts_b0a1,
|
|
379
|
+
pts_a0b1,
|
|
380
|
+
pts_proj,
|
|
381
|
+
pts_V,
|
|
382
|
+
pts_H
|
|
383
|
+
], axis=0)
|
|
384
|
+
# pts,w = new_pts,new_w
|
|
385
|
+
pts,w = clean_signed_measure(new_pts,new_w)
|
|
386
|
+
|
|
387
|
+
# Everything infinite is handled separately anyway
|
|
388
|
+
# inf0 = pts[:,2] == np.inf
|
|
389
|
+
# inf1 = pts[:,3] == np.inf
|
|
390
|
+
# pts[inf0,3] = pts[inf0,1]
|
|
391
|
+
# pts[inf1,2] = pts[inf1,0]
|
|
392
|
+
# pts,w = clean_signed_measure(pts,w)
|
|
393
|
+
|
|
394
|
+
return pts,w
|
|
395
|
+
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: multipers
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.3b5
|
|
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>
|
|
@@ -89,3 +89,70 @@ def test_rank(degree):
|
|
|
89
89
|
bc2 = s.persistence_on_line(bp, d)[degree]
|
|
90
90
|
# assert_sm(bc1,bc2, max_error=.1)
|
|
91
91
|
assert np.isclose(wasserstein_distance(bc1, bc2), 0)
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
def test_hook_decomposition():
|
|
95
|
+
from multipers.point_measure import rectangle_to_hook_minimal_signed_barcode
|
|
96
|
+
|
|
97
|
+
B = [[], [0]]
|
|
98
|
+
D = [0, 1]
|
|
99
|
+
F = [[0, 0], [1, 1]]
|
|
100
|
+
s = mp.Slicer(return_type_only=True)(B, D, F)
|
|
101
|
+
(sm_rank,) = mp.signed_measure(
|
|
102
|
+
s,
|
|
103
|
+
invariant="rank",
|
|
104
|
+
degree=0,
|
|
105
|
+
)
|
|
106
|
+
sm_hook = rectangle_to_hook_minimal_signed_barcode(*sm_rank)
|
|
107
|
+
pts_hook, w_hook = sm_hook
|
|
108
|
+
assert np.array_equal(pts_hook, [[0, 0, 1, 1]]), pts_hook
|
|
109
|
+
assert np.array_equal(w_hook, [1]), w_hook
|
|
110
|
+
B = [[], [0], [0]]
|
|
111
|
+
D = [0, 1, 1]
|
|
112
|
+
F = [[0, 0], [1, 0], [0, 1]]
|
|
113
|
+
s = mp.Slicer(return_type_only=True)(B, D, F)
|
|
114
|
+
(sm_rank,) = mp.signed_measure(
|
|
115
|
+
s,
|
|
116
|
+
invariant="rank",
|
|
117
|
+
degree=0,
|
|
118
|
+
)
|
|
119
|
+
sm_hook = rectangle_to_hook_minimal_signed_barcode(*sm_rank)
|
|
120
|
+
pts_hook, w_hook = sm_hook
|
|
121
|
+
assert np.array_equal(
|
|
122
|
+
pts_hook, [[0, 0, 0, 1], [0, 0, 1, 0], [0, 0, 1, 1]]
|
|
123
|
+
), pts_hook
|
|
124
|
+
assert np.array_equal(w_hook, [1, 1, -1]), w_hook
|
|
125
|
+
|
|
126
|
+
B = [
|
|
127
|
+
[],
|
|
128
|
+
[0],
|
|
129
|
+
]
|
|
130
|
+
D = [
|
|
131
|
+
0,
|
|
132
|
+
1,
|
|
133
|
+
]
|
|
134
|
+
F = [[0, 0], [1, 0]]
|
|
135
|
+
s = mp.Slicer(return_type_only=True)(B, D, F)
|
|
136
|
+
(sm_rank,) = mp.signed_measure(
|
|
137
|
+
s,
|
|
138
|
+
invariant="rank",
|
|
139
|
+
degree=0,
|
|
140
|
+
)
|
|
141
|
+
sm_hook = rectangle_to_hook_minimal_signed_barcode(*sm_rank)
|
|
142
|
+
pts_hook, w_hook = sm_hook
|
|
143
|
+
assert np.array_equal(pts_hook, [[0, 0, 1, 0]]), pts_hook
|
|
144
|
+
assert np.array_equal(w_hook, [1]), w_hook
|
|
145
|
+
|
|
146
|
+
B = [[], [0]]
|
|
147
|
+
D = [0, 1]
|
|
148
|
+
F = [[0, 0], [0, 1]]
|
|
149
|
+
s = mp.Slicer(return_type_only=True)(B, D, F)
|
|
150
|
+
(sm_rank,) = mp.signed_measure(
|
|
151
|
+
s,
|
|
152
|
+
invariant="rank",
|
|
153
|
+
degree=0,
|
|
154
|
+
)
|
|
155
|
+
sm_hook = rectangle_to_hook_minimal_signed_barcode(*sm_rank)
|
|
156
|
+
pts_hook, w_hook = sm_hook
|
|
157
|
+
assert np.array_equal(pts_hook, [[0, 0, 0, 1]]), pts_hook
|
|
158
|
+
assert np.array_equal(w_hook, [1]), w_hook
|
|
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.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Fields/Multi_field_operators.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Fields/Multi_field_small_operators.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/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.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/Base_matrix.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/Boundary_matrix.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/Chain_matrix.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/RU_matrix.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/base_pairing.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/base_swap.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/chain_pairing.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/chain_rep_cycles.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/chain_vine_swap.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
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/matrix_row_access.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/ru_pairing.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/ru_rep_cycles.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistence_matrix/ru_vine_swap.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Persistent_cohomology/Field_Zp.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/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.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_iterators.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_siblings.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Simplex_tree/hooks_simplex_base.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/gudhi/gudhi/Simplex_tree/serialization_utils.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/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.3b4 → multipers-2.3.3b5}/multipers/multi_parameter_rank_invariant/diff_helpers.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multi_parameter_rank_invariant/function_rips.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multi_parameter_rank_invariant/hilbert_function.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multi_parameter_rank_invariant/rank_invariant.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/combinatory.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/debug.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/euler_curves.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/heap_column.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/images.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/list_column.h
RENAMED
|
File without changes
|
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/ru_matrix.h
RENAMED
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/set_column.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/multipers/multiparameter_module_approximation/utilities.h
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multipers-2.3.3b4 → multipers-2.3.3b5}/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
|
|
@@ -2013,51 +2013,51 @@ cdef extern from "multiparameter_module_approximation/approximation.h" namespace
|
|
|
2013
2013
|
|
|
2014
2014
|
import multipers.slicer as mps
|
|
2015
2015
|
from cython.operator cimport dereference
|
|
2016
|
-
cdef inline Module[
|
|
2016
|
+
cdef inline Module[double] _multiparameter_module_approximation_f64(object slicer, One_critical_filtration[double] direction, double max_error, Box[double] box, bool threshold, bool complete, bool verbose):
|
|
2017
2017
|
import multipers.slicer as mps
|
|
2018
2018
|
cdef intptr_t slicer_ptr = <intptr_t>(slicer.get_ptr())
|
|
2019
|
-
cdef Module[
|
|
2019
|
+
cdef Module[double] mod
|
|
2020
2020
|
if False:
|
|
2021
2021
|
pass
|
|
2022
|
-
elif isinstance(slicer, mps.
|
|
2022
|
+
elif isinstance(slicer, mps._KSlicer_Matrix0_vine_f64):
|
|
2023
2023
|
with nogil:
|
|
2024
|
-
mod = multiparameter_module_approximation(dereference(<
|
|
2024
|
+
mod = multiparameter_module_approximation(dereference(<C_KSlicer_Matrix0_vine_f64*>(slicer_ptr)), direction, max_error, box, threshold, complete, verbose)
|
|
2025
2025
|
return mod
|
|
2026
|
-
elif isinstance(slicer, mps.
|
|
2026
|
+
elif isinstance(slicer, mps._KSlicer_Matrix1_vine_f64):
|
|
2027
2027
|
with nogil:
|
|
2028
|
-
mod = multiparameter_module_approximation(dereference(<
|
|
2028
|
+
mod = multiparameter_module_approximation(dereference(<C_KSlicer_Matrix1_vine_f64*>(slicer_ptr)), direction, max_error, box, threshold, complete, verbose)
|
|
2029
2029
|
return mod
|
|
2030
|
-
elif isinstance(slicer, mps.
|
|
2030
|
+
elif isinstance(slicer, mps._Slicer_Matrix0_vine_f64):
|
|
2031
2031
|
with nogil:
|
|
2032
|
-
mod = multiparameter_module_approximation(dereference(<
|
|
2032
|
+
mod = multiparameter_module_approximation(dereference(<C_Slicer_Matrix0_vine_f64*>(slicer_ptr)), direction, max_error, box, threshold, complete, verbose)
|
|
2033
2033
|
return mod
|
|
2034
|
-
elif isinstance(slicer, mps.
|
|
2034
|
+
elif isinstance(slicer, mps._Slicer_Matrix1_vine_f64):
|
|
2035
2035
|
with nogil:
|
|
2036
|
-
mod = multiparameter_module_approximation(dereference(<
|
|
2036
|
+
mod = multiparameter_module_approximation(dereference(<C_Slicer_Matrix1_vine_f64*>(slicer_ptr)), direction, max_error, box, threshold, complete, verbose)
|
|
2037
2037
|
return mod
|
|
2038
2038
|
else:
|
|
2039
2039
|
raise ValueError(f"Unsupported slicer type {type(slicer)}")
|
|
2040
|
-
cdef inline Module[
|
|
2040
|
+
cdef inline Module[float] _multiparameter_module_approximation_f32(object slicer, One_critical_filtration[float] direction, float max_error, Box[float] box, bool threshold, bool complete, bool verbose):
|
|
2041
2041
|
import multipers.slicer as mps
|
|
2042
2042
|
cdef intptr_t slicer_ptr = <intptr_t>(slicer.get_ptr())
|
|
2043
|
-
cdef Module[
|
|
2043
|
+
cdef Module[float] mod
|
|
2044
2044
|
if False:
|
|
2045
2045
|
pass
|
|
2046
|
-
elif isinstance(slicer, mps.
|
|
2046
|
+
elif isinstance(slicer, mps._KSlicer_Matrix0_vine_f32):
|
|
2047
2047
|
with nogil:
|
|
2048
|
-
mod = multiparameter_module_approximation(dereference(<
|
|
2048
|
+
mod = multiparameter_module_approximation(dereference(<C_KSlicer_Matrix0_vine_f32*>(slicer_ptr)), direction, max_error, box, threshold, complete, verbose)
|
|
2049
2049
|
return mod
|
|
2050
|
-
elif isinstance(slicer, mps.
|
|
2050
|
+
elif isinstance(slicer, mps._KSlicer_Matrix1_vine_f32):
|
|
2051
2051
|
with nogil:
|
|
2052
|
-
mod = multiparameter_module_approximation(dereference(<
|
|
2052
|
+
mod = multiparameter_module_approximation(dereference(<C_KSlicer_Matrix1_vine_f32*>(slicer_ptr)), direction, max_error, box, threshold, complete, verbose)
|
|
2053
2053
|
return mod
|
|
2054
|
-
elif isinstance(slicer, mps.
|
|
2054
|
+
elif isinstance(slicer, mps._Slicer_Matrix0_vine_f32):
|
|
2055
2055
|
with nogil:
|
|
2056
|
-
mod = multiparameter_module_approximation(dereference(<
|
|
2056
|
+
mod = multiparameter_module_approximation(dereference(<C_Slicer_Matrix0_vine_f32*>(slicer_ptr)), direction, max_error, box, threshold, complete, verbose)
|
|
2057
2057
|
return mod
|
|
2058
|
-
elif isinstance(slicer, mps.
|
|
2058
|
+
elif isinstance(slicer, mps._Slicer_Matrix1_vine_f32):
|
|
2059
2059
|
with nogil:
|
|
2060
|
-
mod = multiparameter_module_approximation(dereference(<
|
|
2060
|
+
mod = multiparameter_module_approximation(dereference(<C_Slicer_Matrix1_vine_f32*>(slicer_ptr)), direction, max_error, box, threshold, complete, verbose)
|
|
2061
2061
|
return mod
|
|
2062
2062
|
else:
|
|
2063
2063
|
raise ValueError(f"Unsupported slicer type {type(slicer)}")
|
|
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
|