All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Gudhi::persistence_matrix::PersistenceMatrixOptions Struct Reference

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 Z2 and can therefore be treated like booleans. If set to false, the values are assumed to be in the field Zp 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. More...
 
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: More...
 
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:

◆ 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:


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