31 std::vector<std::vector<std::int32_t>>
rows;
37 std::vector<std::pair<std::int32_t, std::int32_t>>
extraEdges;
52template <
class Q,
class T>
53concept RangeIndex = std::constructible_from<Q, const NDArray<T, 2> &> &&
54 requires(
const Q &q, T radius, std::size_t minPts,
math::Pool pool) {
55 { q.query(radius, minPts, pool) } -> std::same_as<CoreAdjacency>;
Contract for spatial indexes that can surface the radius-neighborhood adjacency over a borrowed point...
Radius-neighborhood adjacency with per-point core flags.
std::vector< std::vector< std::int32_t > > rows
Per-point neighbour lists.
std::vector< std::uint8_t > isCore
Per-point core flag from the full degree.
std::vector< std::pair< std::int32_t, std::int32_t > > extraEdges
Core-core edges carried outside rows.
Thin compile-time-templated wrapper around the underlying OwnedPool.