Gudhi::persistence_matrix::RU_vine_swap< Master_matrix > Class Template Reference

Class managing the vine swaps for RU_matrix. More...

#include <gudhi/Persistence_matrix/ru_vine_swap.h>

Public Types

using Index = typename Master_matrix::Index
 
using ID_index = typename Master_matrix::ID_index
 
using Pos_index = typename Master_matrix::Pos_index
 

Public Member Functions

 RU_vine_swap ()
 Default constructor.
 
 RU_vine_swap (const RU_vine_swap &matrixToCopy)
 Copy constructor. More...
 
 RU_vine_swap (RU_vine_swap &&other) noexcept
 Move constructor. More...
 
bool vine_swap_with_z_eq_1_case (Pos_index index)
 Does the same than vine_swap, but assumes that the swap is non trivial and therefore skips a part of the case study. More...
 
bool vine_swap (Pos_index index)
 Does a vine swap between two cells which are consecutive in the filtration. Roughly, if \( F \) is the current filtration represented by the matrix, the method modifies the matrix such that the new state corresponds to a valid state for the filtration \( F' \) equal to \( F \) but with the two cells at position position and position + 1 swapped. Of course, the two cells should not have a face/coface relation which each other ; \( F' \) has to be a valid filtration. See [21] for more information about vine and vineyards. More...
 
RU_vine_swapoperator= (RU_vine_swap other)
 Assign operator.
 

Friends

void swap (RU_vine_swap &swap1, RU_vine_swap &swap2)
 Swap operator.
 

Detailed Description

template<class Master_matrix>
class Gudhi::persistence_matrix::RU_vine_swap< Master_matrix >

Class managing the vine swaps for RU_matrix.

Template Parameters
Master_matrixAn instantiation of Matrix from which all types and options are deduced.

Member Typedef Documentation

◆ ID_index

template<class Master_matrix >
using Gudhi::persistence_matrix::RU_vine_swap< Master_matrix >::ID_index = typename Master_matrix::ID_index

IDIdx index type.

◆ Index

template<class Master_matrix >
using Gudhi::persistence_matrix::RU_vine_swap< Master_matrix >::Index = typename Master_matrix::Index

MatIdx index type.

◆ Pos_index

template<class Master_matrix >
using Gudhi::persistence_matrix::RU_vine_swap< Master_matrix >::Pos_index = typename Master_matrix::Pos_index

PosIdx index type.

Constructor & Destructor Documentation

◆ RU_vine_swap() [1/2]

template<class Master_matrix >
Gudhi::persistence_matrix::RU_vine_swap< Master_matrix >::RU_vine_swap ( const RU_vine_swap< Master_matrix > &  matrixToCopy)
inline

Copy constructor.

Parameters
matrixToCopyMatrix to copy.

◆ RU_vine_swap() [2/2]

template<class Master_matrix >
Gudhi::persistence_matrix::RU_vine_swap< Master_matrix >::RU_vine_swap ( RU_vine_swap< Master_matrix > &&  other)
inlinenoexcept

Move constructor.

Parameters
otherMatrix to move.

Member Function Documentation

◆ vine_swap()

template<class Master_matrix >
bool Gudhi::persistence_matrix::RU_vine_swap< Master_matrix >::vine_swap ( Pos_index  index)
inline

Does a vine swap between two cells which are consecutive in the filtration. Roughly, if \( F \) is the current filtration represented by the matrix, the method modifies the matrix such that the new state corresponds to a valid state for the filtration \( F' \) equal to \( F \) but with the two cells at position position and position + 1 swapped. Of course, the two cells should not have a face/coface relation which each other ; \( F' \) has to be a valid filtration. See [21] for more information about vine and vineyards.

Parameters
indexPosIdx index of the first cell to swap. The second one has to be at position + 1.
Returns
true If the barcode changed from the swap.
false Otherwise.

◆ vine_swap_with_z_eq_1_case()

template<class Master_matrix >
bool Gudhi::persistence_matrix::RU_vine_swap< Master_matrix >::vine_swap_with_z_eq_1_case ( Pos_index  index)
inline

Does the same than vine_swap, but assumes that the swap is non trivial and therefore skips a part of the case study.

Parameters
indexPosIdx index of the first cell to swap. The second one has to be at position + 1.
Returns
true If the barcode changed from the swap.
false Otherwise.

The documentation for this class was generated from the following file: