Loading...
Searching...
No Matches
simplex_tree_options.h
/* 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): Vincent Rouvreau
*
* Copyright (C) 2023 Inria
*
* Modification(s):
* - YYYY/MM Author: Description of the modification
*/
#ifndef SIMPLEX_TREE_SIMPLEX_TREE_OPTIONS_H_
#define SIMPLEX_TREE_SIMPLEX_TREE_OPTIONS_H_
#include <gudhi/Simplex_tree/indexing_tag.h>
#include <cstdint>
#include <type_traits> // void_t
namespace Gudhi {
struct Simplex_tree_options_default {
typedef linear_indexing_tag Indexing_tag;
typedef int Vertex_handle;
typedef double Filtration_value;
typedef std::uint32_t Simplex_key;
static const bool store_key = true;
static const bool store_filtration = true;
static const bool contiguous_vertices = false;
static const bool link_nodes_by_label = false;
static const bool stable_simplex_handles = false;
};
struct Simplex_tree_options_full_featured {
typedef linear_indexing_tag Indexing_tag;
typedef int Vertex_handle;
typedef double Filtration_value;
typedef std::uint32_t Simplex_key;
static const bool store_key = true;
static const bool store_filtration = true;
static const bool contiguous_vertices = false;
static const bool link_nodes_by_label = true;
static const bool stable_simplex_handles = true;
};
struct Simplex_tree_options_minimal {
typedef linear_indexing_tag Indexing_tag;
typedef int Vertex_handle;
typedef double Filtration_value;
typedef std::uint32_t Simplex_key;
static const bool store_key = false;
static const bool store_filtration = false;
static const bool contiguous_vertices = false;
static const bool link_nodes_by_label = false;
static const bool stable_simplex_handles = false;
};
struct Simplex_tree_options_fast_persistence {
typedef linear_indexing_tag Indexing_tag;
typedef int Vertex_handle;
typedef float Filtration_value;
typedef std::uint32_t Simplex_key;
static const bool store_key = true;
static const bool store_filtration = true;
static const bool contiguous_vertices = true;
static const bool link_nodes_by_label = false;
static const bool stable_simplex_handles = false;
};
// end addtogroup simplex_tree
struct No_simplex_data {};
// Nested `type` is O::Simplex_data if that exists, No_simplex_data otherwise
template <class, class=void> struct Get_simplex_data_type { typedef No_simplex_data type; };
template <class O>
struct Get_simplex_data_type<O, std::void_t<typename O::Simplex_data>> { typedef typename O::Simplex_data type; };
} // namespace Gudhi
#endif // SIMPLEX_TREE_SIMPLEX_TREE_OPTIONS_H_
Gudhi
Gudhi namespace.
Definition SimplicialComplexForAlpha.h:14
Gudhi::Simplex_tree_options_default
Definition simplex_tree_options.h:32
Gudhi::Simplex_tree_options_full_featured
Definition simplex_tree_options.h:48
Gudhi::Simplex_tree_options_minimal
Definition simplex_tree_options.h:64
Gudhi::linear_indexing_tag
Tag for a linear ordering of simplices.
Definition indexing_tag.h:20