Clustering
C++20 header-only: DBSCAN, HDBSCAN, k-means.
Loading...
Searching...
No Matches
clustering::index::CoreAdjacency Struct Reference

Radius-neighborhood adjacency with per-point core flags. More...

#include <clustering/index/range_query.h>

Collaboration diagram for clustering::index::CoreAdjacency:
[legend]

Public Attributes

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.

Detailed Description

Radius-neighborhood adjacency with per-point core flags.

rows[i] lists neighbours of point i within the query radius, always including i itself and every neighbour j with j > i. Rows of core points may omit neighbours with j < i: their degree already carries the core verdict, and the component build reads only the j > i half. Rows of non-core points are complete in both directions so border assignment can scan every adjacent core.

isCore[i] is nonzero iff point i has at least minPts neighbours within the radius, counting itself, measured on the full two-sided degree regardless of what rows stores.

Together, rows and extraEdges cover the core-core connectivity of the eps-graph: every pair of density-reachable cores is joined by a chain of edges present in one or the other.

Definition at line 30 of file range_query.h.

Member Data Documentation

◆ extraEdges

std::vector<std::pair<std::int32_t, std::int32_t> > clustering::index::CoreAdjacency::extraEdges

Core-core edges carried outside rows.

A backend that proves a whole leaf lies inside a core point's ball may link the point to one leaf representative here instead of materializing every member in the row; both endpoints are cores and the edge is a real eps-neighbour pair, so component building treats these exactly like row edges.

Definition at line 37 of file range_query.h.

◆ isCore

std::vector<std::uint8_t> clustering::index::CoreAdjacency::isCore

Per-point core flag from the full degree.

Definition at line 32 of file range_query.h.

◆ rows

std::vector<std::vector<std::int32_t> > clustering::index::CoreAdjacency::rows

Per-point neighbour lists.

Definition at line 31 of file range_query.h.


The documentation for this struct was generated from the following file: