Loading...
Searching...
No Matches
persistence_matrix_options.h
Go to the documentation of this file.
/* This file is part of the Gudhi Library - https://gudhi.inria.fr/ - which is released under MIT.
* See file LICENSE or go to https://gudhi.inria.fr/licensing/ for full license details.
* Author(s): Hannah Schreiber
*
* Copyright (C) 2022-24 Inria
*
* Modification(s):
* - YYYY/MM Author: Description of the modification
*/
#ifndef PM_OPTIONS_INCLUDED
#define PM_OPTIONS_INCLUDED
#include "Fields/Zp_field_operators.h"
namespace Gudhi {
namespace persistence_matrix {
enum class Column_types {
LIST,
SET,
HEAP,
VECTOR,
NAIVE_VECTOR,
SMALL_VECTOR,
UNORDERED_SET,
INTRUSIVE_LIST,
INTRUSIVE_SET
};
enum class Column_indexation_types {
CONTAINER,
POSITION,
IDENTIFIER
};
template <Column_types col_type = Column_types::INTRUSIVE_SET,
bool is_z2_only = true,
class FieldOperators = persistence_fields::Zp_field_operators<> >
struct Default_options
{
using Field_coeff_operators = FieldOperators;
using Dimension = int;
using Index = unsigned int;
static const bool is_z2 = is_z2_only;
static const Column_types column_type = col_type;
static const Column_indexation_types column_indexation_type = Column_indexation_types::CONTAINER;
static const bool has_column_compression = false;
static const bool has_column_and_row_swaps = false;
static const bool has_map_column_container = false;
static const bool has_removable_columns = false;
static const bool has_row_access = false;
static const bool has_intrusive_rows = true;
static const bool has_removable_rows = false;
static const bool is_of_boundary_type = true;
static const bool has_matrix_maximal_dimension_access = false;
static const bool has_column_pairings = false;
static const bool has_vine_update = false;
static const bool can_retrieve_representative_cycles = false;
};
//TODO: The following structures are the one used by the other modules or debug tests.
// They will probably be removed once the module was properly integrated.
template <Column_types column_type = Column_types::INTRUSIVE_LIST>
struct Zigzag_options : Default_options<column_type, true>
{
static const bool has_row_access = true;
static const bool has_column_pairings = false;
static const bool has_vine_update = true;
static const bool is_of_boundary_type = false;
static const bool has_map_column_container = true;
static const bool has_removable_columns = true;
static const bool has_removable_rows = true;
};
template <Column_types col_type = Column_types::INTRUSIVE_SET>
struct Representative_cycles_options : Default_options<col_type, true>
{
static const bool has_column_pairings = true;
static const bool can_retrieve_representative_cycles = true;
};
template <Column_types column_type = Column_types::INTRUSIVE_SET>
struct Multi_persistence_options : Default_options<column_type, true>
{
static const bool has_column_pairings = true;
static const bool has_vine_update = true;
};
template <Column_types column_type = Column_types::INTRUSIVE_LIST,
bool is_z2_only = true,
class FieldOperators = persistence_fields::Zp_field_operators<> >
struct Cohomology_persistence_options : Default_options<column_type, is_z2_only, FieldOperators>
{
static const bool has_row_access = true;
static const bool has_column_compression = true;
static const bool has_removable_rows = true;
};
} // namespace persistence_matrix
} // namespace Gudhi
#endif // PM_OPTIONS_INCLUDED
Zp_field_operators.h
Contains the Gudhi::persistence_fields::Zp_field_operators class.
Gudhi::persistence_fields::Zp_field_operators
Class defining operators for the field for any prime number .
Definition Zp_field_operators.h:41
Gudhi::persistence_matrix::FieldOperators
Concept of the field operator classes needed for the class Matrix.
Definition FieldOperators.h:31
Gudhi::persistence_matrix::Column_indexation_types
Column_indexation_types
List if indexation schemes. See description of indexation schemes for more details about the meaning ...
Definition persistence_matrix_options.h:51
Gudhi::persistence_matrix::Column_types
Column_types
List of column types.
Definition persistence_matrix_options.h:30
Gudhi::persistence_matrix::Column_indexation_types::IDENTIFIER
@ IDENTIFIER
Definition persistence_matrix_options.h:54
Gudhi::persistence_matrix::Column_indexation_types::POSITION
@ POSITION
Definition persistence_matrix_options.h:53
Gudhi::persistence_matrix::Column_indexation_types::CONTAINER
@ CONTAINER
Definition persistence_matrix_options.h:52
Gudhi::persistence_matrix::Column_types::LIST
@ LIST
Definition persistence_matrix_options.h:31
Gudhi::persistence_matrix::Column_types::INTRUSIVE_SET
@ INTRUSIVE_SET
Definition persistence_matrix_options.h:42
Gudhi::persistence_matrix::Column_types::INTRUSIVE_LIST
@ INTRUSIVE_LIST
Definition persistence_matrix_options.h:41
Gudhi::persistence_matrix::Column_types::UNORDERED_SET
@ UNORDERED_SET
Definition persistence_matrix_options.h:40
Gudhi::persistence_matrix::Column_types::VECTOR
@ VECTOR
Definition persistence_matrix_options.h:35
Gudhi::persistence_matrix::Column_types::SET
@ SET
Definition persistence_matrix_options.h:32
Gudhi::persistence_matrix::Column_types::SMALL_VECTOR
@ SMALL_VECTOR
Definition persistence_matrix_options.h:38
Gudhi::persistence_matrix::Column_types::NAIVE_VECTOR
@ NAIVE_VECTOR
Definition persistence_matrix_options.h:37
Gudhi::persistence_matrix::Column_types::HEAP
@ HEAP
Definition persistence_matrix_options.h:33
Gudhi::persistence_matrix
Persistence matrix namespace.
Definition FieldOperators.h:18
Gudhi
Gudhi namespace.
Definition SimplicialComplexForAlpha.h:14
Gudhi::persistence_matrix::Cohomology_persistence_options
Options used by the cohomology module.
Definition persistence_matrix_options.h:162
Gudhi::persistence_matrix::Default_options
Default option structure for Matrix class. See the PersistenceMatrixOptions concept for a more detail...
Definition persistence_matrix_options.h:79
Gudhi::persistence_matrix::Multi_persistence_options
Options used by the Multipersistence module.
Definition persistence_matrix_options.h:146
Gudhi::persistence_matrix::Representative_cycles_options
Options needed to use the representative cycles.
Definition persistence_matrix_options.h:134
Gudhi::persistence_matrix::Zigzag_options
Options used for the Zigzag persistence module.
Definition persistence_matrix_options.h:117