13 #include "Clustering_c.h"
14 #include "IndexIVFFlat_c.h"
15 #include "IndexIVFFlat.h"
16 #include "macros_impl.h"
25 int faiss_IndexIVFFlat_new(FaissIndexIVFFlat** p_index) {
27 *p_index =
reinterpret_cast<FaissIndexIVFFlat*
>(
new IndexIVFFlat());
31 int faiss_IndexIVFFlat_new_with(FaissIndexIVFFlat** p_index,
32 FaissIndex* quantizer,
size_t d,
size_t nlist)
35 auto q =
reinterpret_cast<Index*
>(quantizer);
36 *p_index =
reinterpret_cast<FaissIndexIVFFlat*
>(
new IndexIVFFlat(q, d, nlist));
40 int faiss_IndexIVFFlat_new_with_metric(
41 FaissIndexIVFFlat** p_index, FaissIndex* quantizer,
size_t d,
size_t nlist,
42 FaissMetricType metric)
45 auto q =
reinterpret_cast<Index*
>(quantizer);
47 *p_index =
reinterpret_cast<FaissIndexIVFFlat*
>(
new IndexIVFFlat(q, d, nlist, m));
51 int faiss_IndexIVFFlat_add_core(FaissIndexIVFFlat* index, idx_t n,
52 const float * x,
const long *xids,
const long *precomputed_idx)
55 reinterpret_cast<IndexIVFFlat*
>(index)->add_core(n, x, xids, precomputed_idx);
59 int faiss_IndexIVFFlat_update_vectors(FaissIndexIVFFlat* index,
int nv,
60 idx_t *idx,
const float *v)
63 reinterpret_cast<IndexIVFFlat*
>(index)->update_vectors(nv, idx, v);
MetricType
Some algorithms support both an inner product version and a L2 search version.