Loading...
Searching...
No Matches
Gudhi::persistence_matrix::PersistenceMatrixOptions Struct Reference
Persistence Matrix

Concept of the template parameter for the class Matrix. More...

`#include <concept/Persistence_matrix/PersistenceMatrixOptions.h>`

## Public Types

using | Field_coeff_operators = unspecified
| Field operators. Has to follow the FieldOperators concept. The type will not be used if is_z2 is set to true, so it can be set to anything.
using | Dimension = unspecified
| Type for the dimension. Has to be an integer type. If unsigned, the maximal value of the type should not be attained during a run.
using | Index = unspecified
| Type for the different indexation types and should be able to contain the maximal number of columns of the matrix during a run. Has to be an integer type. If unsigned, the maximal value of the type should not be attained during a run.

## Static Public Attributes

static const bool | is_z2
| If true, indicates that the values contained in the matrix are in \( Z_2 \) and can therefore be treated like booleans. If set to false, the values are assumed to be in the field \( Z_p \) for some prime \( p \) given by Field_coeff_operators. It is highly recommended to set the variable to true, if \( p = 2 \).
static const Column_types | column_type
| Specifies the desired column type. All possible column types are described in Column_types.
static const Column_indexation_types | column_indexation_type
| Specifies the desired indexation scheme to access the methods of the matrix. See matrix description and Column_indexation_types for more details about the meaning of the indexation types.
static const bool | has_column_compression
| Only enabled for base matrices (i.e., none of the following is true: has_column_pairings, has_vine_update, can_retrieve_representative_cycles), is ignored otherwise. If set to true, two identical columns in the matrix are not explicitly stored separately but are represented by a same column.
static const bool | has_column_and_row_swaps
| Only enabled for base matrices or simple boundary matrices, i.e., when both has_vine_update and can_retrieve_representative_cycles are false. If set to true, the methods Matrix::swap_columns and Matrix::swap_rows are enabled.
static const bool | has_map_column_container
| If set to true, the underlying container containing the matrix columns is an std::unordered_map. If set to false, the container is a std::vector. By default, it is recommended to set it to false, but some methods require it to be true to be enabled:
static const bool | has_removable_columns
| If set to true, enables the methods Matrix::remove_maximal_cell and Matrix::remove_last, except for base matrices when has_column_compression is true.
static const bool | has_row_access
| If set to true, enables the method Matrix::get_row.
static const bool | has_intrusive_rows
| Only enabled if has_row_access is true, ignored otherwise. If set to true, the underlying container representing a row is an boost::intrusive::list<Entry>. If set to false, the container is a std::set<Entry>. It is usually recommended to set it to true.
static const bool | has_removable_rows
| Only enabled if has_row_access is true, ignored otherwise. If set to true, the underlying container containing the rows is an std::map and for chain matrices, enables the method Matrix::erase_empty_row (always enabled for other matrix types). If set to false, the container is a std::vector.
static const bool | is_of_boundary_type
| Only used, when at least one of the following is true: has_column_pairings, has_vine_update or can_retrieve_representative_cycles. Is ignored otherwise. If set to true, the matrix is a boundary matrix. If set to false, the matrix is a chain matrix.
static const bool | has_matrix_maximal_dimension_access

Only enabled for boundary and chain matrices, i.e., when at least one of the following is true: has_column_pairings, has_vine_update or can_retrieve_representative_cycles. Is ignored otherwise (the notion of dimension makes generally no sense then). If set to true, enables the method Matrix::get_max_dimension. If set to false, the method is disabled except when has_column_pairings is true and has_vine_update and can_retrieve_representative_cycles are both false. In this case, the method is always available.

static const bool | has_column_pairings
| If set to true, enables the method Matrix::get_current_barcode. The matrix will then either be a boundary matrix (if is_of_boundary_type is true), or a chain matrix (if is_of_boundary_type is false).
static const bool | has_vine_update
| If set to true, enables the methods Matrix::vine_swap and Matrix::vine_swap_with_z_eq_1_case. The matrix will then either be a boundary matrix (if is_of_boundary_type is true), or a chain matrix (if is_of_boundary_type is false).
static const bool | can_retrieve_representative_cycles
| If set to true, enables the methods Matrix::update_representative_cycles and Matrix::get_representative_cycles. The matrix will then either be a boundary matrix (if is_of_boundary_type is true), or a chain matrix (if is_of_boundary_type is false).

## Detailed Description

Concept of the template parameter for the class Matrix.

An implementation of this concept is Default_options. If you want to provide your own, it is recommended that you derive from it and override some parts instead of writing a class from scratch.

## Member Data Documentation

## has_column_compression

const bool Gudhi::persistence_matrix::PersistenceMatrixOptions::has_column_compression

static

Only enabled for base matrices (i.e., none of the following is true: has_column_pairings, has_vine_update, can_retrieve_representative_cycles), is ignored otherwise. If set to true, two identical columns in the matrix are not explicitly stored separately but are represented by a same column.

Note that some methods of the base matrix are not available when true:

- insert_column(const Container&, Index),
- zero_column(Index),
- zero_entry(Index, ID_index),
- swap_columns(Index, Index),
- swap_rows(Index, Index),
- remove_column(Index),
- remove_last().

## has_map_column_container

const bool Gudhi::persistence_matrix::PersistenceMatrixOptions::has_map_column_container

static

If set to true, the underlying container containing the matrix columns is an std::unordered_map. If set to false, the container is a std::vector. By default, it is recommended to set it to false, but some methods require it to be true to be enabled:

- remove_column(Index) for base matrices,
- remove_maximal_cell(Index) for chain matrices,
- remove_maximal_cell(ID_index, const std::vector<ID_index>&) for chain matrices,
- remove_last() for chain matrices if has_vine_update is true.

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

- concept/Persistence_matrix/PersistenceMatrixOptions.h