Tracking issue for density-based clustering work. Do not start code before an RFC is agreed here.
Member issues
Why grouped
Both algorithms build on DBSCAN-style reachability and need neighbor/range queries. Design the shared reachability + query plumbing once; note this is not newcomer work (the good first issue label was removed from #291 for that reason).
Current state (main @ a955334)
Clustering lives in src/cluster/: K-Means, DBSCAN, Agglomerative. The neighbors/ module (cover tree, KD tree, brute force) is a candidate building block — check its fit before adding new index code.
Constraints (repo conventions)
- Target small/average datasets with a limited memory footprint.
- Pure Rust, no macros; zero-copy iteration via view traits;
numbers/ traits only.
- Doctests +
mod tests {}; parity checks against reference outputs where licences allow.
RFC requirements
Post a short RFC comment before any PR: public API, cluster-selection strategy (e.g. EOM vs leaf), memory plan, no_std impact.
Acceptance criteria
Tracking issue for density-based clustering work. Do not start code before an RFC is agreed here.
Member issues
Why grouped
Both algorithms build on DBSCAN-style reachability and need neighbor/range queries. Design the shared reachability + query plumbing once; note this is not newcomer work (the
good first issuelabel was removed from #291 for that reason).Current state (main @ a955334)
Clustering lives in
src/cluster/: K-Means, DBSCAN, Agglomerative. Theneighbors/module (cover tree, KD tree, brute force) is a candidate building block — check its fit before adding new index code.Constraints (repo conventions)
numbers/traits only.mod tests {}; parity checks against reference outputs where licences allow.RFC requirements
Post a short RFC comment before any PR: public API, cluster-selection strategy (e.g. EOM vs leaf), memory plan, no_std impact.
Acceptance criteria