Clustering
C++20 header-only: DBSCAN, HDBSCAN, k-means.
Loading...
Searching...
No Matches
clustering::hdbscan::MstBackendStrategy Concept Reference

Contract for an MST backend satisfying the frozen clustering::hdbscan::MstOutput shape. More...

#include <clustering/hdbscan/mst_backend.h>

Concept definition

template<class B, class T>
concept MstBackendStrategy = std::default_initializable<B> &&
requires(B &backend, const NDArray<T, 2> &X, std::size_t minSamples,
math::Pool pool, MstOutput<T> &out) {
{ backend.run(X, minSamples, pool, out) };
}
Represents a multidimensional array (NDArray) of a fixed number of dimensions N and element type T.
Definition ndarray.h:136
Contract for an MST backend satisfying the frozen clustering::hdbscan::MstOutput shape.
Definition mst_backend.h:30
Frozen output contract of every MST backend.
Definition mst_output.h:41
Thin injection wrapper around a BS::light_thread_pool.
Definition thread.h:63

Detailed Description

Contract for an MST backend satisfying the frozen clustering::hdbscan::MstOutput shape.

A backend is default-constructible and exposes a single run entry point that consumes the input dataset, the minSamples parameter, and a worker-pool handle, and writes its result into a caller-provided clustering::hdbscan::MstOutput. Backends own their private scratch and may amortize shape-indexed buffers across calls; per the HDBSCAN class invariant, data-dependent indices (KDTree, kNN graph) are rebuilt per fit.

The concept lives in its own header so that concrete backend implementations can depend on it without pulling in the clustering::HDBSCAN class template, and so the dispatcher can take the concept as an input without introducing a header cycle.

Template Parameters
BCandidate backend type.
TElement type of the point cloud.

Definition at line 30 of file mst_backend.h.