1#![allow(
11 clippy::needless_range_loop,
12 clippy::too_many_arguments,
13 clippy::manual_memcpy,
14 clippy::field_reassign_with_default,
15 clippy::doc_lazy_continuation
16)]
17
18#[cfg(all(
21 feature = "blas",
22 not(any(feature = "accelerate", feature = "openblas"))
23))]
24compile_error!(
25 "the `blas` feature is a marker — enable a concrete backend instead: \
26 `accelerate` (macOS) or `openblas` (Linux/Windows/macOS)"
27);
28
29pub mod adsampling;
30pub mod batch;
31pub mod common;
32pub mod distance;
33pub mod gemm;
34pub mod hierarchical;
35pub mod layout;
36pub mod pdxearch;
37pub mod superkmeans;
38pub mod utils;
39
40pub use common::{DistanceFunction, KnnCandidate};
41pub use hierarchical::{
42 HierarchicalSuperKMeans, HierarchicalSuperKMeansConfig, HierarchicalSuperKMeansIterationStats,
43};
44pub use superkmeans::{
45 ClusterBalanceStats, SuperKMeans, SuperKMeansConfig, SuperKMeansIterationStats,
46};
47pub use utils::{
48 TicToc, compute_l2_squared, compute_norms_row_major, find_nearest_neighbor_brute_force,
49 generate_random_vectors, make_blobs,
50};