18#ifndef PM_CHAIN_PAIRING_H
19#define PM_CHAIN_PAIRING_H
24namespace persistence_matrix {
46template <
class Master_matrix>
50 using Barcode =
typename Master_matrix::Barcode;
51 using Dimension =
typename Master_matrix::Dimension;
85 pairing1.barcode_.swap(pairing2.barcode_);
86 pairing1.indexToBar_.swap(pairing2.indexToBar_);
87 std::swap(pairing1.nextPosition_, pairing2.nextPosition_);
91 using Dictionary =
typename Master_matrix::Bar_dictionary;
92 using Pos_index =
typename Master_matrix::Pos_index;
95 Dictionary indexToBar_;
96 Pos_index nextPosition_;
99template <
class Master_matrix>
103template <
class Master_matrix>
105 : barcode_(matrixToCopy.barcode_),
106 indexToBar_(matrixToCopy.indexToBar_),
107 nextPosition_(matrixToCopy.nextPosition_)
110template <
class Master_matrix>
112 : barcode_(std::move(other.barcode_)),
113 indexToBar_(std::move(other.indexToBar_)),
114 nextPosition_(std::exchange(other.nextPosition_, 0))
117template <
class Master_matrix>
124template <
class Master_matrix>
127 barcode_.
swap(other.barcode_);
128 indexToBar_.swap(other.indexToBar_);
129 std::swap(nextPosition_, other.nextPosition_);
Class managing the barcode for Chain_matrix if the option was enabled.
Definition: chain_pairing.h:48
const Barcode & get_current_barcode() const
Returns the current barcode which is maintained at any insertion, removal or vine swap.
Definition: chain_pairing.h:118
typename Master_matrix::Dimension Dimension
Definition: chain_pairing.h:51
friend void swap(Chain_pairing &pairing1, Chain_pairing &pairing2)
Swap operator.
Definition: chain_pairing.h:84
Chain_pairing()
Default constructor.
Definition: chain_pairing.h:100
typename Master_matrix::Barcode Barcode
Definition: chain_pairing.h:50
Chain_pairing & operator=(Chain_pairing other)
Assign operator.
Definition: chain_pairing.h:125
Gudhi namespace.
Definition: SimplicialComplexForAlpha.h:14
Empty structure. Inherited instead of Chain_pairing, when the computation of the barcode was not enab...
Definition: chain_pairing.h:34