Class managing the vine swaps for RU_matrix. More...
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 faces which are consecutives 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 faces at position position and position + 1 swapped. Of course, the two faces 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_swap & | operator= (RU_vine_swap other) |
| Assign operator. | |
Friends | |
| void | swap (RU_vine_swap &swap1, RU_vine_swap &swap2) |
| Swap operator. | |
Class managing the vine swaps for RU_matrix.
| Master_matrix | An instanciation of Matrix from which all types and options are deduced. |
| using Gudhi::persistence_matrix::RU_vine_swap< Master_matrix >::id_index = typename Master_matrix::id_index |
IDIdx index type.
| using Gudhi::persistence_matrix::RU_vine_swap< Master_matrix >::index = typename Master_matrix::index |
MatIdx index type.
| using Gudhi::persistence_matrix::RU_vine_swap< Master_matrix >::pos_index = typename Master_matrix::pos_index |
PosIdx index type.
|
inline |
Copy constructor.
| matrixToCopy | Matrix to copy. |
|
inlinenoexcept |
Move constructor.
| other | Matrix to move. |
|
inline |
Does a vine swap between two faces which are consecutives 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 faces at position position and position + 1 swapped. Of course, the two faces 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.
| position | PosIdx index of the first face to swap. The second one has to be at position + 1. |
|
inline |