All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
simplex_tree_options.h
1/* This file is part of the Gudhi Library - https://gudhi.inria.fr/ - which is released under MIT.
2 * See file LICENSE or go to https://gudhi.inria.fr/licensing/ for full license details.
3 * Author(s): Vincent Rouvreau
4 *
5 * Copyright (C) 2023 Inria
6 *
7 * Modification(s):
8 * - YYYY/MM Author: Description of the modification
9 */
10
11#ifndef SIMPLEX_TREE_SIMPLEX_TREE_OPTIONS_H_
12#define SIMPLEX_TREE_SIMPLEX_TREE_OPTIONS_H_
13
14#include <gudhi/Simplex_tree/indexing_tag.h>
15
16#include <cstdint>
17#include <type_traits> // void_t
18
19namespace Gudhi {
20
34 typedef int Vertex_handle;
35 typedef double Filtration_value;
36 typedef std::uint32_t Simplex_key;
37 static const bool store_key = true;
38 static const bool store_filtration = true;
39 static const bool contiguous_vertices = false;
40 static const bool link_nodes_by_label = false;
41 static const bool stable_simplex_handles = false;
42};
43
50 typedef int Vertex_handle;
51 typedef double Filtration_value;
52 typedef std::uint32_t Simplex_key;
53 static const bool store_key = true;
54 static const bool store_filtration = true;
55 static const bool contiguous_vertices = false;
56 static const bool link_nodes_by_label = true;
57 static const bool stable_simplex_handles = true;
58};
59
66 typedef int Vertex_handle;
67 typedef double Filtration_value;
68 typedef std::uint32_t Simplex_key;
69 static const bool store_key = false;
70 static const bool store_filtration = false;
71 static const bool contiguous_vertices = false;
72 static const bool link_nodes_by_label = false;
73 static const bool stable_simplex_handles = false;
74};
75
81struct Simplex_tree_options_fast_persistence {
82 typedef linear_indexing_tag Indexing_tag;
83 typedef int Vertex_handle;
84 typedef float Filtration_value;
85 typedef std::uint32_t Simplex_key;
86 static const bool store_key = true;
87 static const bool store_filtration = true;
88 static const bool contiguous_vertices = true;
89 static const bool link_nodes_by_label = false;
90 static const bool stable_simplex_handles = false;
91};
92 // end addtogroup simplex_tree
94
95struct No_simplex_data {};
96
97// Nested `type` is O::Simplex_data if that exists, No_simplex_data otherwise
98template <class, class=void> struct Get_simplex_data_type { typedef No_simplex_data type; };
99template <class O>
100struct Get_simplex_data_type<O, std::void_t<typename O::Simplex_data>> { typedef typename O::Simplex_data type; };
101
102} // namespace Gudhi
103
104#endif // SIMPLEX_TREE_SIMPLEX_TREE_OPTIONS_H_
Gudhi namespace.
Definition: SimplicialComplexForAlpha.h:14
STL namespace.
Value type for a filtration function on a cell complex.
Definition: FiltrationValue.h:20
Definition: simplex_tree_options.h:32
Definition: simplex_tree_options.h:64
Tag for a linear ordering of simplices.
Definition: indexing_tag.h:20
Handle type for the vertices of a cell complex.
Definition: VertexHandle.h:15