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

Class managing the row access for the columns. More...

Public Types

using index = typename Master_matrix::index
 
using id_index = typename Master_matrix::id_index
 
using Cell_type = typename Master_matrix::Cell_type
 
using Row_container_type = typename Master_matrix::row_container_type
 

Public Member Functions

 Row_access ()
 Default constructor. Sets the column index to -1 and the row container to nullptr. Should only be used by dummy columns.
 
 Row_access (index columnIndex, Row_container_type *rows)
 Constructor setting the column index and the row container by the given values. More...
 
 Row_access (Row_access &&other) noexcept
 Move constructor. More...
 
void insert_cell (id_index rowIndex, Cell_type *cell)
 Inserts the given cell at the given row index. More...
 
void unlink (Cell_type *cell)
 Removes the given cell from its row. More...
 
void update_cell (const Cell_type &cell)
 If PersistenceMatrixOptions::has_intrusive_rows is false, updates the copy of the cell in its row. Otherwise does nothing. More...
 
index get_column_index () const
 Returns the MatIdx column index. More...
 

Friends

void swap (Row_access &r1, Row_access &r2)
 Swap operator.
 

Detailed Description

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

Class managing the row access for the columns.

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

Member Typedef Documentation

◆ Cell_type

template<class Master_matrix >
using Gudhi::persistence_matrix::Row_access< Master_matrix >::Cell_type = typename Master_matrix::Cell_type

Cell.

◆ id_index

template<class Master_matrix >
using Gudhi::persistence_matrix::Row_access< Master_matrix >::id_index = typename Master_matrix::id_index

IDIdx index type.

◆ index

template<class Master_matrix >
using Gudhi::persistence_matrix::Row_access< Master_matrix >::index = typename Master_matrix::index

MatIdx index type.

◆ Row_container_type

template<class Master_matrix >
using Gudhi::persistence_matrix::Row_access< Master_matrix >::Row_container_type = typename Master_matrix::row_container_type

Type of the row container.

Constructor & Destructor Documentation

◆ Row_access() [1/2]

template<class Master_matrix >
Gudhi::persistence_matrix::Row_access< Master_matrix >::Row_access ( index  columnIndex,
Row_container_type rows 
)
inline

Constructor setting the column index and the row container by the given values.

Parameters
columnIndexColumn index to store.
rowsPointer to the row container.

◆ Row_access() [2/2]

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

Move constructor.

Parameters
otherColumn to move.

Member Function Documentation

◆ get_column_index()

template<class Master_matrix >
Row_access< Master_matrix >::index Gudhi::persistence_matrix::Row_access< Master_matrix >::get_column_index
inline

Returns the MatIdx column index.

Returns
The MatIdx column index.

◆ insert_cell()

template<class Master_matrix >
void Gudhi::persistence_matrix::Row_access< Master_matrix >::insert_cell ( id_index  rowIndex,
Cell_type cell 
)
inline

Inserts the given cell at the given row index.

Parameters
rowIndexRow index of the cell.
cellPointer to the cell to insert.

◆ unlink()

template<class Master_matrix >
void Gudhi::persistence_matrix::Row_access< Master_matrix >::unlink ( Cell_type cell)
inline

Removes the given cell from its row.

Parameters
cellPointer to the cell to remove.

◆ update_cell()

template<class Master_matrix >
void Gudhi::persistence_matrix::Row_access< Master_matrix >::update_cell ( const Cell_type cell)
inline

If PersistenceMatrixOptions::has_intrusive_rows is false, updates the copy of the cell in its row. Otherwise does nothing.

If the rows are intrusive, only a pointer of the cell is stored and therefore any update on the cell (value or column index) is automatically forwarded. But for non intrusive rows, any update has to be pushed explicitely.

Parameters
cellCell to update.

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