multipers 2.2.3__cp310-cp310-win_amd64.whl → 2.3.1__cp310-cp310-win_amd64.whl
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/__init__.py +33 -31
- multipers/_signed_measure_meta.py +430 -430
- multipers/_slicer_meta.py +211 -212
- multipers/data/MOL2.py +458 -458
- multipers/data/UCR.py +18 -18
- multipers/data/graphs.py +466 -466
- multipers/data/immuno_regions.py +27 -27
- multipers/data/pytorch2simplextree.py +90 -90
- multipers/data/shape3d.py +101 -101
- multipers/data/synthetic.py +113 -111
- multipers/distances.py +198 -198
- multipers/filtration_conversions.pxd.tp +84 -84
- multipers/filtrations/__init__.py +18 -0
- multipers/{ml/convolutions.py → filtrations/density.py} +563 -520
- multipers/filtrations/filtrations.py +289 -0
- multipers/filtrations.pxd +224 -224
- multipers/function_rips.cp310-win_amd64.pyd +0 -0
- multipers/function_rips.pyx +105 -105
- multipers/grids.cp310-win_amd64.pyd +0 -0
- multipers/grids.pyx +350 -350
- multipers/gudhi/Persistence_slices_interface.h +132 -132
- multipers/gudhi/Simplex_tree_interface.h +239 -245
- multipers/gudhi/Simplex_tree_multi_interface.h +516 -561
- multipers/gudhi/cubical_to_boundary.h +59 -59
- multipers/gudhi/gudhi/Bitmap_cubical_complex.h +450 -450
- multipers/gudhi/gudhi/Bitmap_cubical_complex_base.h +1070 -1070
- multipers/gudhi/gudhi/Bitmap_cubical_complex_periodic_boundary_conditions_base.h +579 -579
- multipers/gudhi/gudhi/Debug_utils.h +45 -45
- multipers/gudhi/gudhi/Fields/Multi_field.h +484 -484
- multipers/gudhi/gudhi/Fields/Multi_field_operators.h +455 -455
- multipers/gudhi/gudhi/Fields/Multi_field_shared.h +450 -450
- multipers/gudhi/gudhi/Fields/Multi_field_small.h +531 -531
- multipers/gudhi/gudhi/Fields/Multi_field_small_operators.h +507 -507
- multipers/gudhi/gudhi/Fields/Multi_field_small_shared.h +531 -531
- multipers/gudhi/gudhi/Fields/Z2_field.h +355 -355
- multipers/gudhi/gudhi/Fields/Z2_field_operators.h +376 -376
- multipers/gudhi/gudhi/Fields/Zp_field.h +420 -420
- multipers/gudhi/gudhi/Fields/Zp_field_operators.h +400 -400
- multipers/gudhi/gudhi/Fields/Zp_field_shared.h +418 -418
- multipers/gudhi/gudhi/Flag_complex_edge_collapser.h +337 -337
- multipers/gudhi/gudhi/Matrix.h +2107 -2107
- multipers/gudhi/gudhi/Multi_critical_filtration.h +1038 -1038
- multipers/gudhi/gudhi/Multi_persistence/Box.h +171 -171
- multipers/gudhi/gudhi/Multi_persistence/Line.h +282 -282
- multipers/gudhi/gudhi/Off_reader.h +173 -173
- multipers/gudhi/gudhi/One_critical_filtration.h +1433 -1431
- multipers/gudhi/gudhi/Persistence_matrix/Base_matrix.h +769 -769
- multipers/gudhi/gudhi/Persistence_matrix/Base_matrix_with_column_compression.h +686 -686
- multipers/gudhi/gudhi/Persistence_matrix/Boundary_matrix.h +842 -842
- multipers/gudhi/gudhi/Persistence_matrix/Chain_matrix.h +1350 -1350
- multipers/gudhi/gudhi/Persistence_matrix/Id_to_index_overlay.h +1105 -1105
- multipers/gudhi/gudhi/Persistence_matrix/Position_to_index_overlay.h +859 -859
- multipers/gudhi/gudhi/Persistence_matrix/RU_matrix.h +910 -910
- multipers/gudhi/gudhi/Persistence_matrix/allocators/entry_constructors.h +139 -139
- multipers/gudhi/gudhi/Persistence_matrix/base_pairing.h +230 -230
- multipers/gudhi/gudhi/Persistence_matrix/base_swap.h +211 -211
- multipers/gudhi/gudhi/Persistence_matrix/boundary_cell_position_to_id_mapper.h +60 -60
- multipers/gudhi/gudhi/Persistence_matrix/boundary_face_position_to_id_mapper.h +60 -60
- multipers/gudhi/gudhi/Persistence_matrix/chain_pairing.h +136 -136
- multipers/gudhi/gudhi/Persistence_matrix/chain_rep_cycles.h +190 -190
- multipers/gudhi/gudhi/Persistence_matrix/chain_vine_swap.h +616 -616
- multipers/gudhi/gudhi/Persistence_matrix/columns/chain_column_extra_properties.h +150 -150
- multipers/gudhi/gudhi/Persistence_matrix/columns/column_dimension_holder.h +106 -106
- multipers/gudhi/gudhi/Persistence_matrix/columns/column_utilities.h +219 -219
- multipers/gudhi/gudhi/Persistence_matrix/columns/entry_types.h +327 -327
- multipers/gudhi/gudhi/Persistence_matrix/columns/heap_column.h +1140 -1140
- multipers/gudhi/gudhi/Persistence_matrix/columns/intrusive_list_column.h +934 -934
- multipers/gudhi/gudhi/Persistence_matrix/columns/intrusive_set_column.h +934 -934
- multipers/gudhi/gudhi/Persistence_matrix/columns/list_column.h +980 -980
- multipers/gudhi/gudhi/Persistence_matrix/columns/naive_vector_column.h +1092 -1092
- multipers/gudhi/gudhi/Persistence_matrix/columns/row_access.h +192 -192
- multipers/gudhi/gudhi/Persistence_matrix/columns/set_column.h +921 -921
- multipers/gudhi/gudhi/Persistence_matrix/columns/small_vector_column.h +1093 -1093
- multipers/gudhi/gudhi/Persistence_matrix/columns/unordered_set_column.h +1012 -1012
- multipers/gudhi/gudhi/Persistence_matrix/columns/vector_column.h +1244 -1244
- multipers/gudhi/gudhi/Persistence_matrix/matrix_dimension_holders.h +186 -186
- multipers/gudhi/gudhi/Persistence_matrix/matrix_row_access.h +164 -164
- multipers/gudhi/gudhi/Persistence_matrix/ru_pairing.h +156 -156
- multipers/gudhi/gudhi/Persistence_matrix/ru_rep_cycles.h +376 -376
- multipers/gudhi/gudhi/Persistence_matrix/ru_vine_swap.h +540 -540
- multipers/gudhi/gudhi/Persistent_cohomology/Field_Zp.h +118 -118
- multipers/gudhi/gudhi/Persistent_cohomology/Multi_field.h +173 -173
- multipers/gudhi/gudhi/Persistent_cohomology/Persistent_cohomology_column.h +128 -128
- multipers/gudhi/gudhi/Persistent_cohomology.h +745 -745
- multipers/gudhi/gudhi/Points_off_io.h +171 -171
- multipers/gudhi/gudhi/Simple_object_pool.h +69 -69
- multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_iterators.h +463 -463
- multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_node_explicit_storage.h +83 -83
- multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_siblings.h +106 -106
- multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_star_simplex_iterators.h +277 -277
- multipers/gudhi/gudhi/Simplex_tree/hooks_simplex_base.h +62 -62
- multipers/gudhi/gudhi/Simplex_tree/indexing_tag.h +27 -27
- multipers/gudhi/gudhi/Simplex_tree/serialization_utils.h +62 -62
- multipers/gudhi/gudhi/Simplex_tree/simplex_tree_options.h +157 -157
- multipers/gudhi/gudhi/Simplex_tree.h +2794 -2794
- multipers/gudhi/gudhi/Simplex_tree_multi.h +152 -163
- multipers/gudhi/gudhi/distance_functions.h +62 -62
- multipers/gudhi/gudhi/graph_simplicial_complex.h +104 -104
- multipers/gudhi/gudhi/persistence_interval.h +253 -253
- multipers/gudhi/gudhi/persistence_matrix_options.h +170 -170
- multipers/gudhi/gudhi/reader_utils.h +367 -367
- multipers/gudhi/mma_interface_coh.h +256 -255
- multipers/gudhi/mma_interface_h0.h +223 -231
- multipers/gudhi/mma_interface_matrix.h +291 -282
- multipers/gudhi/naive_merge_tree.h +536 -575
- multipers/gudhi/scc_io.h +310 -289
- multipers/gudhi/truc.h +957 -888
- multipers/io.cp310-win_amd64.pyd +0 -0
- multipers/io.pyx +714 -711
- multipers/ml/accuracies.py +90 -90
- multipers/ml/invariants_with_persistable.py +79 -79
- multipers/ml/kernels.py +176 -176
- multipers/ml/mma.py +713 -714
- multipers/ml/one.py +472 -472
- multipers/ml/point_clouds.py +352 -346
- multipers/ml/signed_measures.py +1589 -1589
- multipers/ml/sliced_wasserstein.py +461 -461
- multipers/ml/tools.py +113 -113
- multipers/mma_structures.cp310-win_amd64.pyd +0 -0
- multipers/mma_structures.pxd +127 -127
- multipers/mma_structures.pyx +4 -8
- multipers/mma_structures.pyx.tp +1083 -1085
- multipers/multi_parameter_rank_invariant/diff_helpers.h +84 -93
- multipers/multi_parameter_rank_invariant/euler_characteristic.h +97 -97
- multipers/multi_parameter_rank_invariant/function_rips.h +322 -322
- multipers/multi_parameter_rank_invariant/hilbert_function.h +769 -769
- multipers/multi_parameter_rank_invariant/persistence_slices.h +148 -148
- multipers/multi_parameter_rank_invariant/rank_invariant.h +369 -369
- multipers/multiparameter_edge_collapse.py +41 -41
- multipers/multiparameter_module_approximation/approximation.h +2298 -2295
- multipers/multiparameter_module_approximation/combinatory.h +129 -129
- multipers/multiparameter_module_approximation/debug.h +107 -107
- multipers/multiparameter_module_approximation/format_python-cpp.h +286 -286
- multipers/multiparameter_module_approximation/heap_column.h +238 -238
- multipers/multiparameter_module_approximation/images.h +79 -79
- multipers/multiparameter_module_approximation/list_column.h +174 -174
- multipers/multiparameter_module_approximation/list_column_2.h +232 -232
- multipers/multiparameter_module_approximation/ru_matrix.h +347 -347
- multipers/multiparameter_module_approximation/set_column.h +135 -135
- multipers/multiparameter_module_approximation/structure_higher_dim_barcode.h +36 -36
- multipers/multiparameter_module_approximation/unordered_set_column.h +166 -166
- multipers/multiparameter_module_approximation/utilities.h +403 -419
- multipers/multiparameter_module_approximation/vector_column.h +223 -223
- multipers/multiparameter_module_approximation/vector_matrix.h +331 -331
- multipers/multiparameter_module_approximation/vineyards.h +464 -464
- multipers/multiparameter_module_approximation/vineyards_trajectories.h +649 -649
- multipers/multiparameter_module_approximation.cp310-win_amd64.pyd +0 -0
- multipers/multiparameter_module_approximation.pyx +218 -217
- multipers/pickle.py +90 -53
- multipers/plots.py +342 -334
- multipers/point_measure.cp310-win_amd64.pyd +0 -0
- multipers/point_measure.pyx +322 -320
- multipers/simplex_tree_multi.cp310-win_amd64.pyd +0 -0
- multipers/simplex_tree_multi.pxd +133 -133
- multipers/simplex_tree_multi.pyx +115 -48
- multipers/simplex_tree_multi.pyx.tp +1947 -1935
- multipers/slicer.cp310-win_amd64.pyd +0 -0
- multipers/slicer.pxd +301 -120
- multipers/slicer.pxd.tp +218 -214
- multipers/slicer.pyx +1570 -507
- multipers/slicer.pyx.tp +931 -914
- multipers/tensor/tensor.h +672 -672
- multipers/tensor.pxd +13 -13
- multipers/test.pyx +44 -44
- multipers/tests/__init__.py +57 -57
- multipers/torch/diff_grids.py +217 -217
- multipers/torch/rips_density.py +310 -304
- {multipers-2.2.3.dist-info → multipers-2.3.1.dist-info}/LICENSE +21 -21
- {multipers-2.2.3.dist-info → multipers-2.3.1.dist-info}/METADATA +21 -11
- multipers-2.3.1.dist-info/RECORD +182 -0
- {multipers-2.2.3.dist-info → multipers-2.3.1.dist-info}/WHEEL +1 -1
- multipers/tests/test_diff_helper.py +0 -73
- multipers/tests/test_hilbert_function.py +0 -82
- multipers/tests/test_mma.py +0 -83
- multipers/tests/test_point_clouds.py +0 -49
- multipers/tests/test_python-cpp_conversion.py +0 -82
- multipers/tests/test_signed_betti.py +0 -181
- multipers/tests/test_signed_measure.py +0 -89
- multipers/tests/test_simplextreemulti.py +0 -221
- multipers/tests/test_slicer.py +0 -221
- multipers-2.2.3.dist-info/RECORD +0 -189
- {multipers-2.2.3.dist-info → multipers-2.3.1.dist-info}/top_level.txt +0 -0
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
/* This file is part of the Gudhi Library - https://gudhi.inria.fr/ - which is released under MIT.
|
|
2
|
-
* See file LICENSE or go to https://gudhi.inria.fr/licensing/ for full license details.
|
|
3
|
-
* Author(s): Clément Maria
|
|
4
|
-
*
|
|
5
|
-
* Copyright (C) 2014 Inria
|
|
6
|
-
*
|
|
7
|
-
* Modification(s):
|
|
8
|
-
* - YYYY/MM Author: Description of the modification
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
#ifndef SIMPLEX_TREE_SIMPLEX_TREE_NODE_EXPLICIT_STORAGE_H_
|
|
12
|
-
#define SIMPLEX_TREE_SIMPLEX_TREE_NODE_EXPLICIT_STORAGE_H_
|
|
13
|
-
|
|
14
|
-
// Empty base optimization for MSVC - https://learn.microsoft.com/en-us/cpp/cpp/empty-bases
|
|
15
|
-
#if _MSC_VER
|
|
16
|
-
#define GUDHI_EMPTY_BASE_CLASS_OPTIMIZATION __declspec(empty_bases)
|
|
17
|
-
#else
|
|
18
|
-
#define GUDHI_EMPTY_BASE_CLASS_OPTIMIZATION
|
|
19
|
-
#endif
|
|
20
|
-
|
|
21
|
-
#include <boost/core/empty_value.hpp>
|
|
22
|
-
|
|
23
|
-
namespace Gudhi {
|
|
24
|
-
|
|
25
|
-
/** \addtogroup simplex_tree
|
|
26
|
-
* Represents a node of a Simplex_tree.
|
|
27
|
-
* @{
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
/** \brief Node of a simplex tree with filtration value
|
|
31
|
-
* and simplex key.
|
|
32
|
-
*
|
|
33
|
-
* It stores explicitly its own filtration value and its own Simplex_key.
|
|
34
|
-
*/
|
|
35
|
-
template <class SimplexTree>
|
|
36
|
-
struct GUDHI_EMPTY_BASE_CLASS_OPTIMIZATION Simplex_tree_node_explicit_storage
|
|
37
|
-
: SimplexTree::Filtration_simplex_base,
|
|
38
|
-
SimplexTree::Key_simplex_base,
|
|
39
|
-
SimplexTree::Hooks_simplex_base,
|
|
40
|
-
boost::empty_value<typename SimplexTree::Simplex_data> {
|
|
41
|
-
typedef typename SimplexTree::Siblings Siblings;
|
|
42
|
-
typedef typename SimplexTree::Filtration_value Filtration_value;
|
|
43
|
-
typedef typename SimplexTree::Simplex_key Simplex_key;
|
|
44
|
-
typedef typename SimplexTree::Simplex_data Simplex_data;
|
|
45
|
-
|
|
46
|
-
// Simplex_tree_node_explicit_storage() : children_(nullptr) {}
|
|
47
|
-
|
|
48
|
-
// Simplex_tree_node_explicit_storage(Siblings* sib, const Filtration_value& filtration) : children_(sib)
|
|
49
|
-
// {
|
|
50
|
-
// this->assign_filtration(filtration);
|
|
51
|
-
// }
|
|
52
|
-
Simplex_tree_node_explicit_storage(Siblings* sib = nullptr, const Filtration_value& filtration = Filtration_value())
|
|
53
|
-
: SimplexTree::Filtration_simplex_base(filtration), children_(sib)
|
|
54
|
-
{}
|
|
55
|
-
|
|
56
|
-
//will fail to compile when called with SimplexTree::Options::store_key is false.
|
|
57
|
-
Simplex_tree_node_explicit_storage(Siblings* sib, Filtration_value filtration, Simplex_key key)
|
|
58
|
-
: SimplexTree::Filtration_simplex_base(filtration), SimplexTree::Key_simplex_base(key), children_(sib)
|
|
59
|
-
{}
|
|
60
|
-
|
|
61
|
-
/*
|
|
62
|
-
* Assign children to the node
|
|
63
|
-
*/
|
|
64
|
-
void assign_children(Siblings * children) {
|
|
65
|
-
children_ = children;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/* Careful -> children_ can be NULL*/
|
|
69
|
-
Siblings * children() {
|
|
70
|
-
return children_;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
Simplex_data& data() { return boost::empty_value<Simplex_data>::get(); }
|
|
74
|
-
|
|
75
|
-
private:
|
|
76
|
-
Siblings * children_;
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
/** @}*/ // end addtogroup simplex_tree
|
|
80
|
-
|
|
81
|
-
} // namespace Gudhi
|
|
82
|
-
|
|
83
|
-
#endif // SIMPLEX_TREE_SIMPLEX_TREE_NODE_EXPLICIT_STORAGE_H_
|
|
1
|
+
/* This file is part of the Gudhi Library - https://gudhi.inria.fr/ - which is released under MIT.
|
|
2
|
+
* See file LICENSE or go to https://gudhi.inria.fr/licensing/ for full license details.
|
|
3
|
+
* Author(s): Clément Maria
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2014 Inria
|
|
6
|
+
*
|
|
7
|
+
* Modification(s):
|
|
8
|
+
* - YYYY/MM Author: Description of the modification
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#ifndef SIMPLEX_TREE_SIMPLEX_TREE_NODE_EXPLICIT_STORAGE_H_
|
|
12
|
+
#define SIMPLEX_TREE_SIMPLEX_TREE_NODE_EXPLICIT_STORAGE_H_
|
|
13
|
+
|
|
14
|
+
// Empty base optimization for MSVC - https://learn.microsoft.com/en-us/cpp/cpp/empty-bases
|
|
15
|
+
#if _MSC_VER
|
|
16
|
+
#define GUDHI_EMPTY_BASE_CLASS_OPTIMIZATION __declspec(empty_bases)
|
|
17
|
+
#else
|
|
18
|
+
#define GUDHI_EMPTY_BASE_CLASS_OPTIMIZATION
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
#include <boost/core/empty_value.hpp>
|
|
22
|
+
|
|
23
|
+
namespace Gudhi {
|
|
24
|
+
|
|
25
|
+
/** \addtogroup simplex_tree
|
|
26
|
+
* Represents a node of a Simplex_tree.
|
|
27
|
+
* @{
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
/** \brief Node of a simplex tree with filtration value
|
|
31
|
+
* and simplex key.
|
|
32
|
+
*
|
|
33
|
+
* It stores explicitly its own filtration value and its own Simplex_key.
|
|
34
|
+
*/
|
|
35
|
+
template <class SimplexTree>
|
|
36
|
+
struct GUDHI_EMPTY_BASE_CLASS_OPTIMIZATION Simplex_tree_node_explicit_storage
|
|
37
|
+
: SimplexTree::Filtration_simplex_base,
|
|
38
|
+
SimplexTree::Key_simplex_base,
|
|
39
|
+
SimplexTree::Hooks_simplex_base,
|
|
40
|
+
boost::empty_value<typename SimplexTree::Simplex_data> {
|
|
41
|
+
typedef typename SimplexTree::Siblings Siblings;
|
|
42
|
+
typedef typename SimplexTree::Filtration_value Filtration_value;
|
|
43
|
+
typedef typename SimplexTree::Simplex_key Simplex_key;
|
|
44
|
+
typedef typename SimplexTree::Simplex_data Simplex_data;
|
|
45
|
+
|
|
46
|
+
// Simplex_tree_node_explicit_storage() : children_(nullptr) {}
|
|
47
|
+
|
|
48
|
+
// Simplex_tree_node_explicit_storage(Siblings* sib, const Filtration_value& filtration) : children_(sib)
|
|
49
|
+
// {
|
|
50
|
+
// this->assign_filtration(filtration);
|
|
51
|
+
// }
|
|
52
|
+
Simplex_tree_node_explicit_storage(Siblings* sib = nullptr, const Filtration_value& filtration = Filtration_value())
|
|
53
|
+
: SimplexTree::Filtration_simplex_base(filtration), children_(sib)
|
|
54
|
+
{}
|
|
55
|
+
|
|
56
|
+
//will fail to compile when called with SimplexTree::Options::store_key is false.
|
|
57
|
+
Simplex_tree_node_explicit_storage(Siblings* sib, Filtration_value filtration, Simplex_key key)
|
|
58
|
+
: SimplexTree::Filtration_simplex_base(filtration), SimplexTree::Key_simplex_base(key), children_(sib)
|
|
59
|
+
{}
|
|
60
|
+
|
|
61
|
+
/*
|
|
62
|
+
* Assign children to the node
|
|
63
|
+
*/
|
|
64
|
+
void assign_children(Siblings * children) {
|
|
65
|
+
children_ = children;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Careful -> children_ can be NULL*/
|
|
69
|
+
Siblings * children() {
|
|
70
|
+
return children_;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
Simplex_data& data() { return boost::empty_value<Simplex_data>::get(); }
|
|
74
|
+
|
|
75
|
+
private:
|
|
76
|
+
Siblings * children_;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
/** @}*/ // end addtogroup simplex_tree
|
|
80
|
+
|
|
81
|
+
} // namespace Gudhi
|
|
82
|
+
|
|
83
|
+
#endif // SIMPLEX_TREE_SIMPLEX_TREE_NODE_EXPLICIT_STORAGE_H_
|
|
@@ -1,106 +1,106 @@
|
|
|
1
|
-
/* This file is part of the Gudhi Library - https://gudhi.inria.fr/ - which is released under MIT.
|
|
2
|
-
* See file LICENSE or go to https://gudhi.inria.fr/licensing/ for full license details.
|
|
3
|
-
* Author(s): Clément Maria
|
|
4
|
-
*
|
|
5
|
-
* Copyright (C) 2014 Inria
|
|
6
|
-
*
|
|
7
|
-
* Modification(s):
|
|
8
|
-
* - YYYY/MM Author: Description of the modification
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
#ifndef SIMPLEX_TREE_SIMPLEX_TREE_SIBLINGS_H_
|
|
12
|
-
#define SIMPLEX_TREE_SIMPLEX_TREE_SIBLINGS_H_
|
|
13
|
-
|
|
14
|
-
#include <gudhi/Simplex_tree/simplex_tree_options.h>
|
|
15
|
-
#include <gudhi/Simplex_tree/Simplex_tree_node_explicit_storage.h>
|
|
16
|
-
|
|
17
|
-
#include <boost/container/flat_map.hpp>
|
|
18
|
-
|
|
19
|
-
namespace Gudhi {
|
|
20
|
-
|
|
21
|
-
/** \addtogroup simplex_tree
|
|
22
|
-
* Represents a set of node of a Simplex_tree that share the same parent.
|
|
23
|
-
* @{
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
/** \brief Data structure to store a set of nodes in a SimplexTree sharing
|
|
27
|
-
* the same parent node.*/
|
|
28
|
-
template<class SimplexTree, class MapContainer>
|
|
29
|
-
class Simplex_tree_siblings {
|
|
30
|
-
// private:
|
|
31
|
-
// friend SimplexTree;
|
|
32
|
-
public:
|
|
33
|
-
template<class T> friend class Simplex_tree_simplex_vertex_iterator;
|
|
34
|
-
template<class T> friend class Simplex_tree_boundary_simplex_iterator;
|
|
35
|
-
template<class T> friend class Simplex_tree_complex_simplex_iterator;
|
|
36
|
-
template<class T> friend class Simplex_tree_skeleton_simplex_iterator;
|
|
37
|
-
template<class T> friend class Simplex_tree_boundary_opposite_vertex_simplex_iterator;
|
|
38
|
-
|
|
39
|
-
typedef typename SimplexTree::Vertex_handle Vertex_handle;
|
|
40
|
-
typedef typename SimplexTree::Filtration_value Filtration_value;
|
|
41
|
-
typedef typename SimplexTree::Node Node;
|
|
42
|
-
typedef MapContainer Dictionary;
|
|
43
|
-
typedef typename MapContainer::iterator Dictionary_it;
|
|
44
|
-
|
|
45
|
-
/* Default constructor.*/
|
|
46
|
-
Simplex_tree_siblings()
|
|
47
|
-
: oncles_(nullptr),
|
|
48
|
-
parent_(-1),
|
|
49
|
-
members_() {
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/* Constructor with values.*/
|
|
53
|
-
Simplex_tree_siblings(Simplex_tree_siblings * oncles, Vertex_handle parent)
|
|
54
|
-
: oncles_(oncles),
|
|
55
|
-
parent_(parent),
|
|
56
|
-
members_() {
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/** \brief Constructor with initialized set of members.
|
|
60
|
-
*
|
|
61
|
-
* 'members' must be sorted and unique.*/
|
|
62
|
-
template<typename RandomAccessVertexRange>
|
|
63
|
-
Simplex_tree_siblings(Simplex_tree_siblings * oncles, Vertex_handle parent, const RandomAccessVertexRange & members)
|
|
64
|
-
: oncles_(oncles),
|
|
65
|
-
parent_(parent),
|
|
66
|
-
members_(boost::container::ordered_unique_range, members.begin(),
|
|
67
|
-
members.end()) {
|
|
68
|
-
for (auto& map_el : members_) {
|
|
69
|
-
map_el.second.assign_children(this);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
Dictionary_it find(Vertex_handle v) {
|
|
74
|
-
return members_.find(v);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
Simplex_tree_siblings * oncles() {
|
|
78
|
-
return oncles_;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
Vertex_handle parent() const {
|
|
82
|
-
return parent_;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
Dictionary & members() {
|
|
86
|
-
return members_;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
size_t size() const {
|
|
90
|
-
return members_.size();
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
void erase(const Dictionary_it iterator) {
|
|
94
|
-
members_.erase(iterator);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
Simplex_tree_siblings * oncles_;
|
|
98
|
-
Vertex_handle parent_;
|
|
99
|
-
Dictionary members_;
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
/** @}*/ // end addtogroup simplex_tree
|
|
103
|
-
|
|
104
|
-
} // namespace Gudhi
|
|
105
|
-
|
|
106
|
-
#endif // SIMPLEX_TREE_SIMPLEX_TREE_SIBLINGS_H_
|
|
1
|
+
/* This file is part of the Gudhi Library - https://gudhi.inria.fr/ - which is released under MIT.
|
|
2
|
+
* See file LICENSE or go to https://gudhi.inria.fr/licensing/ for full license details.
|
|
3
|
+
* Author(s): Clément Maria
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2014 Inria
|
|
6
|
+
*
|
|
7
|
+
* Modification(s):
|
|
8
|
+
* - YYYY/MM Author: Description of the modification
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#ifndef SIMPLEX_TREE_SIMPLEX_TREE_SIBLINGS_H_
|
|
12
|
+
#define SIMPLEX_TREE_SIMPLEX_TREE_SIBLINGS_H_
|
|
13
|
+
|
|
14
|
+
#include <gudhi/Simplex_tree/simplex_tree_options.h>
|
|
15
|
+
#include <gudhi/Simplex_tree/Simplex_tree_node_explicit_storage.h>
|
|
16
|
+
|
|
17
|
+
#include <boost/container/flat_map.hpp>
|
|
18
|
+
|
|
19
|
+
namespace Gudhi {
|
|
20
|
+
|
|
21
|
+
/** \addtogroup simplex_tree
|
|
22
|
+
* Represents a set of node of a Simplex_tree that share the same parent.
|
|
23
|
+
* @{
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/** \brief Data structure to store a set of nodes in a SimplexTree sharing
|
|
27
|
+
* the same parent node.*/
|
|
28
|
+
template<class SimplexTree, class MapContainer>
|
|
29
|
+
class Simplex_tree_siblings {
|
|
30
|
+
// private:
|
|
31
|
+
// friend SimplexTree;
|
|
32
|
+
public:
|
|
33
|
+
template<class T> friend class Simplex_tree_simplex_vertex_iterator;
|
|
34
|
+
template<class T> friend class Simplex_tree_boundary_simplex_iterator;
|
|
35
|
+
template<class T> friend class Simplex_tree_complex_simplex_iterator;
|
|
36
|
+
template<class T> friend class Simplex_tree_skeleton_simplex_iterator;
|
|
37
|
+
template<class T> friend class Simplex_tree_boundary_opposite_vertex_simplex_iterator;
|
|
38
|
+
|
|
39
|
+
typedef typename SimplexTree::Vertex_handle Vertex_handle;
|
|
40
|
+
typedef typename SimplexTree::Filtration_value Filtration_value;
|
|
41
|
+
typedef typename SimplexTree::Node Node;
|
|
42
|
+
typedef MapContainer Dictionary;
|
|
43
|
+
typedef typename MapContainer::iterator Dictionary_it;
|
|
44
|
+
|
|
45
|
+
/* Default constructor.*/
|
|
46
|
+
Simplex_tree_siblings()
|
|
47
|
+
: oncles_(nullptr),
|
|
48
|
+
parent_(-1),
|
|
49
|
+
members_() {
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Constructor with values.*/
|
|
53
|
+
Simplex_tree_siblings(Simplex_tree_siblings * oncles, Vertex_handle parent)
|
|
54
|
+
: oncles_(oncles),
|
|
55
|
+
parent_(parent),
|
|
56
|
+
members_() {
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** \brief Constructor with initialized set of members.
|
|
60
|
+
*
|
|
61
|
+
* 'members' must be sorted and unique.*/
|
|
62
|
+
template<typename RandomAccessVertexRange>
|
|
63
|
+
Simplex_tree_siblings(Simplex_tree_siblings * oncles, Vertex_handle parent, const RandomAccessVertexRange & members)
|
|
64
|
+
: oncles_(oncles),
|
|
65
|
+
parent_(parent),
|
|
66
|
+
members_(boost::container::ordered_unique_range, members.begin(),
|
|
67
|
+
members.end()) {
|
|
68
|
+
for (auto& map_el : members_) {
|
|
69
|
+
map_el.second.assign_children(this);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
Dictionary_it find(Vertex_handle v) {
|
|
74
|
+
return members_.find(v);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
Simplex_tree_siblings * oncles() {
|
|
78
|
+
return oncles_;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
Vertex_handle parent() const {
|
|
82
|
+
return parent_;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
Dictionary & members() {
|
|
86
|
+
return members_;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
size_t size() const {
|
|
90
|
+
return members_.size();
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
void erase(const Dictionary_it iterator) {
|
|
94
|
+
members_.erase(iterator);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
Simplex_tree_siblings * oncles_;
|
|
98
|
+
Vertex_handle parent_;
|
|
99
|
+
Dictionary members_;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
/** @}*/ // end addtogroup simplex_tree
|
|
103
|
+
|
|
104
|
+
} // namespace Gudhi
|
|
105
|
+
|
|
106
|
+
#endif // SIMPLEX_TREE_SIMPLEX_TREE_SIBLINGS_H_
|