#![allow(
clippy::needless_range_loop,
clippy::too_many_arguments,
clippy::manual_memcpy,
clippy::field_reassign_with_default,
clippy::doc_lazy_continuation
)]
#[cfg(all(
feature = "blas",
not(any(feature = "accelerate", feature = "openblas"))
))]
compile_error!(
"the `blas` feature is a marker — enable a concrete backend instead: \
`accelerate` (macOS) or `openblas` (Linux/Windows/macOS)"
);
pub mod adsampling;
pub mod batch;
pub mod common;
pub mod distance;
pub mod gemm;
pub mod hierarchical;
pub mod layout;
pub mod pdxearch;
pub mod superkmeans;
pub mod utils;
pub use common::{DistanceFunction, KnnCandidate};
pub use hierarchical::{
HierarchicalSuperKMeans, HierarchicalSuperKMeansConfig, HierarchicalSuperKMeansIterationStats,
};
pub use superkmeans::{
ClusterBalanceStats, SuperKMeans, SuperKMeansConfig, SuperKMeansIterationStats,
};
pub use utils::{
TicToc, compute_l2_squared, compute_norms_row_major, find_nearest_neighbor_brute_force,
generate_random_vectors, make_blobs,
};