12 #ifndef FAISS_INDEX_IVF_C_H
13 #define FAISS_INDEX_IVF_C_H
17 #include "Clustering_c.h"
40 FAISS_DECLARE_CLASS_INHERITED(IndexIVF, Index)
41 FAISS_DECLARE_DESTRUCTOR(IndexIVF)
42 FAISS_DECLARE_INDEX_DOWNCAST(IndexIVF)
45 FAISS_DECLARE_GETTER(IndexIVF,
size_t, nlist)
47 FAISS_DECLARE_GETTER(IndexIVF,
size_t, nprobe)
49 FAISS_DECLARE_GETTER(IndexIVF, FaissIndex*, quantizer)
55 FAISS_DECLARE_GETTER(IndexIVF,
char, quantizer_trains_alone)
58 FAISS_DECLARE_GETTER(IndexIVF,
int, own_fields)
63 int faiss_IndexIVF_merge_from(
64 FaissIndexIVF* index, FaissIndexIVF* other, idx_t add_id);
73 int faiss_IndexIVF_copy_subset_to(
74 const FaissIndexIVF* index, FaissIndexIVF* other,
int subset_type,
long a1,
93 int faiss_IndexIVF_search_preassigned (const FaissIndexIVF* index,
94 idx_t n, const
float *x, idx_t k, const idx_t *assign,
95 const
float *centroid_dis,
float *distances, idx_t *labels,
98 size_t faiss_IndexIVF_get_list_size(const FaissIndexIVF* index,
106 int faiss_IndexIVF_make_direct_map(FaissIndexIVF* index,
107 int new_maintain_direct_map);
110 double faiss_IndexIVF_imbalance_factor (const FaissIndexIVF* index);
113 void faiss_IndexIVF_print_stats (const FaissIndexIVF* index);
125 faiss_IndexIVFStats_reset(stats);
132 FAISS_DECLARE_CLASS(IndexIVFFlat)
133 FAISS_DECLARE_DESTRUCTOR(IndexIVFFlat)
135 int faiss_IndexIVFFlat_new(FaissIndexIVFFlat** p_index);
137 int faiss_IndexIVFFlat_new_with(FaissIndexIVFFlat** p_index,
138 FaissIndex* quantizer,
size_t d,
size_t nlist);
140 int faiss_IndexIVFFlat_new_with_metric(
141 FaissIndexIVFFlat** p_index, FaissIndex* quantizer,
size_t d,
size_t nlist,
142 FaissMetricType metric);
144 int faiss_IndexIVFFlat_add_core(FaissIndexIVFFlat* index, idx_t n,
145 const
float * x, const
long *xids, const
long *precomputed_idx);
155 int faiss_IndexIVFFlat_update_vectors(FaissIndexIVFFlat* index,
int nv,
156 idx_t *idx, const
float *v);