22 #include <type_traits>
26 namespace experimental {
44 template <tree_layout layout_v,
bool double_precision,
bool large_trees>
52 using index_type = std::conditional_t<double_precision, std::uint64_t, std::uint32_t>;
54 using metadata_type = std::conditional_t<large_trees, std::uint32_t, std::uint16_t>;
56 using offset_type = std::conditional_t<large_trees, std::uint32_t, std::uint16_t>;
58 auto static constexpr
const layout = layout_v;
73 std::variant<specialization_types<tree_layout::depth_first, false, false>,
std::variant< specialization_types< tree_layout::depth_first, false, false >, specialization_types< tree_layout::depth_first, false, true >, specialization_types< tree_layout::depth_first, true, false >, specialization_types< tree_layout::depth_first, true, true >, specialization_types< tree_layout::breadth_first, false, false >, specialization_types< tree_layout::breadth_first, false, true >, specialization_types< tree_layout::breadth_first, true, false >, specialization_types< tree_layout::breadth_first, true, true > > specialization_variant
Definition: specialization_types.hpp:80
Definition: dbscan.hpp:30
Definition: specialization_types.hpp:45
static constexpr auto const layout
Definition: specialization_types.hpp:58
std::conditional_t< large_trees, std::uint32_t, std::uint16_t > metadata_type
Definition: specialization_types.hpp:54
std::conditional_t< double_precision, std::uint64_t, std::uint32_t > index_type
Definition: specialization_types.hpp:52
static constexpr auto const is_double_precision
Definition: specialization_types.hpp:62
std::conditional_t< double_precision, double, float > threshold_type
Definition: specialization_types.hpp:48
std::conditional_t< large_trees, std::uint32_t, std::uint16_t > offset_type
Definition: specialization_types.hpp:56
static constexpr auto const has_large_trees
Definition: specialization_types.hpp:66