12 #ifndef FAISS_INDEX_C_H
13 #define FAISS_INDEX_C_H
23 FAISS_DECLARE_CLASS(RangeSearchResult)
26 typedef struct FaissIDSelector_H FaissIDSelector;
29 typedef enum FaissMetricType {
30 METRIC_INNER_PRODUCT = 0,
35 FAISS_DECLARE_CLASS(Index)
36 FAISS_DECLARE_DESTRUCTOR(Index)
39 FAISS_DECLARE_GETTER(Index,
int, d)
42 FAISS_DECLARE_GETTER(Index,
int, is_trained)
45 FAISS_DECLARE_GETTER(Index, idx_t, ntotal)
48 FAISS_DECLARE_GETTER(Index, FaissMetricType, metric_type)
56 int faiss_Index_train(FaissIndex* index, idx_t n, const
float* x);
66 int faiss_Index_add(FaissIndex* index, idx_t n, const
float* x);
76 int faiss_Index_add_with_ids(FaissIndex* index, idx_t n, const
float* x, const
long* xids);
88 int faiss_Index_search(const FaissIndex* index, idx_t n, const
float* x, idx_t k,
89 float* distances, idx_t* labels);
102 int faiss_Index_range_search(const FaissIndex* index, idx_t n, const
float* x,
103 float radius, FaissRangeSearchResult* result);
112 int faiss_Index_assign(FaissIndex* index, idx_t n, const
float * x, idx_t * labels, idx_t k);
117 int faiss_Index_reset(FaissIndex* index);
123 int faiss_Index_remove_ids(FaissIndex* index, const FaissIDSelector* sel,
long* n_removed);
132 int faiss_Index_reconstruct(const FaissIndex* index, idx_t key,
float* recons);
140 int faiss_Index_reconstruct_n (const FaissIndex* index, idx_t i0, idx_t ni,
float* recons);
154 int faiss_Index_compute_residual(const FaissIndex* index, const
float* x,
float* residual, idx_t key);
159 int faiss_Index_display(const FaissIndex* index);