27#ifdef CLUSTERING_DBSCAN_BRUTE_FORCE_DIM_FLOOR
33 static constexpr std::size_t
bruteForceDimFloor = CLUSTERING_DBSCAN_BRUTE_FORCE_DIM_FLOOR;
47 : m_held(pick(points, pool)) {}
58 return std::visit([&](
const auto &idx) {
return idx.query(radius, minPts, pool); }, m_held);
64 using Held = std::variant<Tree, Brute>;
68 return Held(std::in_place_type<Brute>, points);
70 return Held(std::in_place_type<Tree>, points, pool);
Range-index backend that builds the full eps-neighborhood adjacency in one fused pairwise sweep.
Implements a KDTree data structure.
Represents a multidimensional array (NDArray) of a fixed number of dimensions N and element type T.
size_t dim(std::size_t index) const noexcept
Returns the size of a specific dimension of the NDArray.
AutoRangeIndex(const NDArray< T, 2 > &points, math::Pool pool={})
Constructs the policy, picking the backend once against points.dim(1).
CoreAdjacency query(T radius, std::size_t minPts, math::Pool pool) const
Returns the core-aware radius adjacency from the held backend.
static constexpr std::size_t bruteForceDimFloor
Dimension threshold at or above which the brute-force backend is selected.
Radius-neighborhood adjacency with per-point core flags.
Thin compile-time-templated wrapper around the underlying OwnedPool.