12 #ifndef FAISS_INDEX_FLAT_C_H
13 #define FAISS_INDEX_FLAT_C_H
23 typedef enum FaissMetricType FaissMetricType;
26 FAISS_DECLARE_CLASS_INHERITED(IndexFlat, Index)
28 int faiss_IndexFlat_new(FaissIndexFlat** p_index);
30 int faiss_IndexFlat_new_with(FaissIndexFlat** p_index, idx_t d, FaissMetricType metric);
39 void faiss_IndexFlat_xb(FaissIndexFlat* index,
float** p_xb,
size_t* p_size);
47 FAISS_DECLARE_INDEX_DOWNCAST(IndexFlat)
49 FAISS_DECLARE_DESTRUCTOR(IndexFlat)
60 int faiss_IndexFlat_compute_distance_subset(
69 FAISS_DECLARE_CLASS_INHERITED(IndexFlatIP, Index)
71 int faiss_IndexFlatIP_new(FaissIndexFlatIP** p_index);
73 int faiss_IndexFlatIP_new_with(FaissIndexFlatIP** p_index, idx_t d);
76 FAISS_DECLARE_CLASS_INHERITED(IndexFlatL2, Index)
78 int faiss_IndexFlatL2_new(FaissIndexFlatL2** p_index);
80 int faiss_IndexFlatL2_new_with(FaissIndexFlatL2** p_index, idx_t d);
86 FAISS_DECLARE_CLASS_INHERITED(IndexFlatL2BaseShift, Index)
88 int faiss_IndexFlatL2BaseShift_new(FaissIndexFlatL2BaseShift** p_index, idx_t d,
size_t nshift, const
float *shift);
95 FAISS_DECLARE_CLASS_INHERITED(IndexRefineFlat, Index)
97 int faiss_IndexRefineFlat_new(FaissIndexRefineFlat** p_index, FaissIndex* base_index);
99 FAISS_DECLARE_DESTRUCTOR(IndexRefineFlat)
105 FAISS_DECLARE_CLASS_INHERITED(IndexFlat1D, Index)
107 int faiss_IndexFlat1D_new(FaissIndexFlat1D** p_index);
108 int faiss_IndexFlat1D_new_with(FaissIndexFlat1D** p_index,
int continuous_update);
110 int faiss_IndexFlat1D_update_permutation(FaissIndexFlat1D* index);