12 #ifndef FAISS_CLUSTERING_C_H
13 #define FAISS_CLUSTERING_C_H
59 FAISS_DECLARE_CLASS(Clustering)
61 FAISS_DECLARE_GETTER(Clustering,
int, niter)
62 FAISS_DECLARE_GETTER(Clustering,
int, nredo)
63 FAISS_DECLARE_GETTER(Clustering,
int, verbose)
64 FAISS_DECLARE_GETTER(Clustering,
int, spherical)
65 FAISS_DECLARE_GETTER(Clustering,
int, update_index)
66 FAISS_DECLARE_GETTER(Clustering,
int, frozen_centroids)
68 FAISS_DECLARE_GETTER(Clustering,
int, min_points_per_centroid)
69 FAISS_DECLARE_GETTER(Clustering,
int, max_points_per_centroid)
71 FAISS_DECLARE_GETTER(Clustering,
int, seed)
74 FAISS_DECLARE_GETTER(Clustering,
size_t, d)
77 FAISS_DECLARE_GETTER(Clustering,
size_t, k)
80 void faiss_Clustering_centroids(
81 FaissClustering* clustering,
float** centroids,
size_t* size);
85 void faiss_Clustering_obj(
86 FaissClustering* clustering,
float** obj,
size_t* size);
89 int faiss_Clustering_new(FaissClustering** p_clustering,
int d,
int k);
91 int faiss_Clustering_new_with_params(
94 int faiss_Clustering_train(
95 FaissClustering* clustering, idx_t n, const
float* x, FaissIndex* index);
97 void faiss_Clustering_free(FaissClustering* clustering);
109 int faiss_kmeans_clustering (
size_t d,
size_t n,
size_t k,
int nredo
redo clustering this many times and keep best
int spherical
(bool) do we want normalized centroids?
int frozen_centroids
(bool) use the centroids provided as input and do not change them during iterations ...
int max_points_per_centroid
to limit size of dataset
int seed
seed for the random number generator
int niter
clustering iterations
int update_index
(bool) update index after each iteration?
int min_points_per_centroid
otherwise you get a warning