Concept of the template parameter for the class Matrix. More...
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_type = 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_type = 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 explicitely 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_face 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<Cell>. If set to false, the container is a std::set<Cell>. 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). | |
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.
|
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 explicitely stored separately but are represented by a same column.
Note that some methods of the base matrix are not available when true:
|
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: