multipers 2.2.3__cp311-cp311-win_amd64.whl → 2.3.1__cp311-cp311-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.cp311-win_amd64.pyd +0 -0
- multipers/function_rips.pyx +105 -105
- multipers/grids.cp311-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.cp311-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.cp311-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.cp311-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.cp311-win_amd64.pyd +0 -0
- multipers/point_measure.pyx +322 -320
- multipers/simplex_tree_multi.cp311-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.cp311-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,139 +1,139 @@
|
|
|
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): Hannah Schreiber
|
|
4
|
-
*
|
|
5
|
-
* Copyright (C) 2024 Inria
|
|
6
|
-
*
|
|
7
|
-
* Modification(s):
|
|
8
|
-
* - YYYY/MM Author: Description of the modification
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @file entry_constructors.h
|
|
13
|
-
* @author Hannah Schreiber
|
|
14
|
-
* @brief Contains different versions of @ref Gudhi::persistence_matrix::Entry factories.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
#ifndef PM_COLUMN_ENTRY_CONSTRUCTORS_H
|
|
18
|
-
#define PM_COLUMN_ENTRY_CONSTRUCTORS_H
|
|
19
|
-
|
|
20
|
-
#include <utility> //std::swap
|
|
21
|
-
|
|
22
|
-
#include <gudhi/Simple_object_pool.h>
|
|
23
|
-
|
|
24
|
-
namespace Gudhi {
|
|
25
|
-
namespace persistence_matrix {
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* @private
|
|
29
|
-
* @ingroup persistence_matrix
|
|
30
|
-
*
|
|
31
|
-
* @brief @ref Entry factory. Constructs and destroys entry pointers with new and delete.
|
|
32
|
-
*
|
|
33
|
-
* @tparam Entry @ref Entry with the right templates.
|
|
34
|
-
*/
|
|
35
|
-
template <class Entry>
|
|
36
|
-
struct New_entry_constructor
|
|
37
|
-
{
|
|
38
|
-
/**
|
|
39
|
-
* @brief Default constructor.
|
|
40
|
-
*/
|
|
41
|
-
New_entry_constructor() {}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* @brief Constructs an entry with the given entry arguments.
|
|
45
|
-
*
|
|
46
|
-
* @param u Arguments forwarded to the @ref Entry constructor.
|
|
47
|
-
* @return @ref Entry pointer.
|
|
48
|
-
*/
|
|
49
|
-
template <class... U>
|
|
50
|
-
Entry* construct(U&&... u) const {
|
|
51
|
-
return new Entry(std::forward<U>(u)...);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* @brief Destroys the given entry.
|
|
56
|
-
*
|
|
57
|
-
* @param entry @ref Entry pointer.
|
|
58
|
-
*/
|
|
59
|
-
void destroy(Entry* entry) const { delete entry; }
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* @brief Swap operator.
|
|
63
|
-
*/
|
|
64
|
-
friend void swap(New_entry_constructor& col1, New_entry_constructor& col2) {}
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* @private
|
|
69
|
-
* @ingroup persistence_matrix
|
|
70
|
-
*
|
|
71
|
-
* @brief @ref Entry factory. Uses @ref Gudhi::Simple_object_pool, which is based on boost::object_pool,
|
|
72
|
-
* to construct and destroy entry pointer.
|
|
73
|
-
*
|
|
74
|
-
* @tparam Entry @ref Entry with the right templates.
|
|
75
|
-
*/
|
|
76
|
-
template <class Entry>
|
|
77
|
-
struct Pool_entry_constructor
|
|
78
|
-
{
|
|
79
|
-
public:
|
|
80
|
-
/**
|
|
81
|
-
* @brief Default constructor.
|
|
82
|
-
*
|
|
83
|
-
*/
|
|
84
|
-
Pool_entry_constructor() : entryPool_() {}
|
|
85
|
-
//TODO: what does happen when the pool is copied?
|
|
86
|
-
/**
|
|
87
|
-
* @brief Copy constructor.
|
|
88
|
-
*
|
|
89
|
-
* @param col Factory to copy.
|
|
90
|
-
*/
|
|
91
|
-
Pool_entry_constructor(const Pool_entry_constructor& col) : entryPool_(col.entryPool_) {}
|
|
92
|
-
/**
|
|
93
|
-
* @brief Move constructor.
|
|
94
|
-
*
|
|
95
|
-
* @param col Factory to move.
|
|
96
|
-
*/
|
|
97
|
-
Pool_entry_constructor(Pool_entry_constructor&& col) : entryPool_(std::move(col.entryPool_)) {}
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* @brief Constructs an entry with the given entry arguments.
|
|
101
|
-
*
|
|
102
|
-
* @param u Arguments forwarded to the @ref Entry constructor.
|
|
103
|
-
* @return @ref Entry pointer.
|
|
104
|
-
*/
|
|
105
|
-
template <class... U>
|
|
106
|
-
Entry* construct(U&&... u) {
|
|
107
|
-
return entryPool_.construct(std::forward<U>(u)...);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* @brief Destroys the given entry.
|
|
112
|
-
*
|
|
113
|
-
* @param entry @ref Entry pointer.
|
|
114
|
-
*/
|
|
115
|
-
void destroy(Entry* entry) { entryPool_.destroy(entry); }
|
|
116
|
-
|
|
117
|
-
//TODO: Again, what does it mean to copy the pool?
|
|
118
|
-
/**
|
|
119
|
-
* @brief Assign operator.
|
|
120
|
-
*/
|
|
121
|
-
Pool_entry_constructor& operator=(const Pool_entry_constructor& other) {
|
|
122
|
-
entryPool_ = other.entryPool_;
|
|
123
|
-
return *this;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* @brief Swap operator.
|
|
127
|
-
*/
|
|
128
|
-
friend void swap(Pool_entry_constructor& col1, Pool_entry_constructor& col2) {
|
|
129
|
-
std::swap(col1.entryPool_, col2.entryPool_);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
private:
|
|
133
|
-
Simple_object_pool<Entry> entryPool_; /**< Entry pool. */
|
|
134
|
-
};
|
|
135
|
-
|
|
136
|
-
} // namespace persistence_matrix
|
|
137
|
-
} // namespace Gudhi
|
|
138
|
-
|
|
139
|
-
#endif // PM_COLUMN_ENTRY_CONSTRUCTORS_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): Hannah Schreiber
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2024 Inria
|
|
6
|
+
*
|
|
7
|
+
* Modification(s):
|
|
8
|
+
* - YYYY/MM Author: Description of the modification
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @file entry_constructors.h
|
|
13
|
+
* @author Hannah Schreiber
|
|
14
|
+
* @brief Contains different versions of @ref Gudhi::persistence_matrix::Entry factories.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
#ifndef PM_COLUMN_ENTRY_CONSTRUCTORS_H
|
|
18
|
+
#define PM_COLUMN_ENTRY_CONSTRUCTORS_H
|
|
19
|
+
|
|
20
|
+
#include <utility> //std::swap
|
|
21
|
+
|
|
22
|
+
#include <gudhi/Simple_object_pool.h>
|
|
23
|
+
|
|
24
|
+
namespace Gudhi {
|
|
25
|
+
namespace persistence_matrix {
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @private
|
|
29
|
+
* @ingroup persistence_matrix
|
|
30
|
+
*
|
|
31
|
+
* @brief @ref Entry factory. Constructs and destroys entry pointers with new and delete.
|
|
32
|
+
*
|
|
33
|
+
* @tparam Entry @ref Entry with the right templates.
|
|
34
|
+
*/
|
|
35
|
+
template <class Entry>
|
|
36
|
+
struct New_entry_constructor
|
|
37
|
+
{
|
|
38
|
+
/**
|
|
39
|
+
* @brief Default constructor.
|
|
40
|
+
*/
|
|
41
|
+
New_entry_constructor() {}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @brief Constructs an entry with the given entry arguments.
|
|
45
|
+
*
|
|
46
|
+
* @param u Arguments forwarded to the @ref Entry constructor.
|
|
47
|
+
* @return @ref Entry pointer.
|
|
48
|
+
*/
|
|
49
|
+
template <class... U>
|
|
50
|
+
Entry* construct(U&&... u) const {
|
|
51
|
+
return new Entry(std::forward<U>(u)...);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @brief Destroys the given entry.
|
|
56
|
+
*
|
|
57
|
+
* @param entry @ref Entry pointer.
|
|
58
|
+
*/
|
|
59
|
+
void destroy(Entry* entry) const { delete entry; }
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @brief Swap operator.
|
|
63
|
+
*/
|
|
64
|
+
friend void swap(New_entry_constructor& col1, New_entry_constructor& col2) {}
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* @private
|
|
69
|
+
* @ingroup persistence_matrix
|
|
70
|
+
*
|
|
71
|
+
* @brief @ref Entry factory. Uses @ref Gudhi::Simple_object_pool, which is based on boost::object_pool,
|
|
72
|
+
* to construct and destroy entry pointer.
|
|
73
|
+
*
|
|
74
|
+
* @tparam Entry @ref Entry with the right templates.
|
|
75
|
+
*/
|
|
76
|
+
template <class Entry>
|
|
77
|
+
struct Pool_entry_constructor
|
|
78
|
+
{
|
|
79
|
+
public:
|
|
80
|
+
/**
|
|
81
|
+
* @brief Default constructor.
|
|
82
|
+
*
|
|
83
|
+
*/
|
|
84
|
+
Pool_entry_constructor() : entryPool_() {}
|
|
85
|
+
//TODO: what does happen when the pool is copied?
|
|
86
|
+
/**
|
|
87
|
+
* @brief Copy constructor.
|
|
88
|
+
*
|
|
89
|
+
* @param col Factory to copy.
|
|
90
|
+
*/
|
|
91
|
+
Pool_entry_constructor(const Pool_entry_constructor& col) : entryPool_(col.entryPool_) {}
|
|
92
|
+
/**
|
|
93
|
+
* @brief Move constructor.
|
|
94
|
+
*
|
|
95
|
+
* @param col Factory to move.
|
|
96
|
+
*/
|
|
97
|
+
Pool_entry_constructor(Pool_entry_constructor&& col) : entryPool_(std::move(col.entryPool_)) {}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* @brief Constructs an entry with the given entry arguments.
|
|
101
|
+
*
|
|
102
|
+
* @param u Arguments forwarded to the @ref Entry constructor.
|
|
103
|
+
* @return @ref Entry pointer.
|
|
104
|
+
*/
|
|
105
|
+
template <class... U>
|
|
106
|
+
Entry* construct(U&&... u) {
|
|
107
|
+
return entryPool_.construct(std::forward<U>(u)...);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* @brief Destroys the given entry.
|
|
112
|
+
*
|
|
113
|
+
* @param entry @ref Entry pointer.
|
|
114
|
+
*/
|
|
115
|
+
void destroy(Entry* entry) { entryPool_.destroy(entry); }
|
|
116
|
+
|
|
117
|
+
//TODO: Again, what does it mean to copy the pool?
|
|
118
|
+
/**
|
|
119
|
+
* @brief Assign operator.
|
|
120
|
+
*/
|
|
121
|
+
Pool_entry_constructor& operator=(const Pool_entry_constructor& other) {
|
|
122
|
+
entryPool_ = other.entryPool_;
|
|
123
|
+
return *this;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* @brief Swap operator.
|
|
127
|
+
*/
|
|
128
|
+
friend void swap(Pool_entry_constructor& col1, Pool_entry_constructor& col2) {
|
|
129
|
+
std::swap(col1.entryPool_, col2.entryPool_);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
private:
|
|
133
|
+
Simple_object_pool<Entry> entryPool_; /**< Entry pool. */
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
} // namespace persistence_matrix
|
|
137
|
+
} // namespace Gudhi
|
|
138
|
+
|
|
139
|
+
#endif // PM_COLUMN_ENTRY_CONSTRUCTORS_H
|