12 #ifndef FAISS_AUX_INDEX_STRUCTURES_C_H
13 #define FAISS_AUX_INDEX_STRUCTURES_C_H
22 FAISS_DECLARE_CLASS(RangeSearchResult)
24 FAISS_DECLARE_GETTER(RangeSearchResult,
size_t, nq)
26 int faiss_RangeSearchResult_new(FaissRangeSearchResult** p_rsr, idx_t nq);
28 int faiss_RangeSearchResult_new_with(FaissRangeSearchResult** p_rsr, idx_t nq,
int alloc_lims);
32 int faiss_RangeSearchResult_do_allocation(FaissRangeSearchResult* rsr);
34 FAISS_DECLARE_DESTRUCTOR(RangeSearchResult)
37 FAISS_DECLARE_GETTER(RangeSearchResult,
size_t, buffer_size)
40 void faiss_RangeSearchResult_lims(
41 FaissRangeSearchResult* rsr,
size_t** lims);
45 void faiss_RangeSearchResult_labels(
46 FaissRangeSearchResult* rsr, idx_t** labels,
float** distances);
50 FAISS_DECLARE_CLASS(IDSelector)
51 FAISS_DECLARE_DESTRUCTOR(IDSelector)
53 int faiss_IDSelector_is_member(const FaissIDSelector* sel, idx_t
id);
56 FAISS_DECLARE_CLASS(IDSelectorRange)
57 FAISS_DECLARE_DESTRUCTOR(IDSelectorRange)
59 FAISS_DECLARE_GETTER(IDSelectorRange, idx_t, imin)
60 FAISS_DECLARE_GETTER(IDSelectorRange, idx_t, imax)
62 int faiss_IDSelectorRange_new(FaissIDSelectorRange** p_sel, idx_t imin, idx_t imax);
70 FAISS_DECLARE_CLASS(IDSelectorBatch)
72 FAISS_DECLARE_GETTER(IDSelectorBatch,
int, nbits)
73 FAISS_DECLARE_GETTER(IDSelectorBatch, idx_t, mask)
75 int faiss_IDSelectorBatch_new(FaissIDSelectorBatch** p_sel,
long n, const idx_t* indices);
81 FAISS_DECLARE_CLASS(BufferList)
82 FAISS_DECLARE_DESTRUCTOR(BufferList)
84 FAISS_DECLARE_GETTER(BufferList,
size_t, buffer_size)
85 FAISS_DECLARE_GETTER(BufferList,
size_t, wp)
92 int faiss_BufferList_append_buffer(FaissBufferList* bl);
94 int faiss_BufferList_new(FaissBufferList** p_bl,
size_t buffer_size);
96 int faiss_BufferList_add(FaissBufferList* bl, idx_t
id,
float dis);
100 int faiss_BufferList_copy_range(
101 FaissBufferList* bl,
size_t ofs,
size_t n, idx_t *dest_ids,
float *dest_dis);
104 FAISS_DECLARE_CLASS(RangeSearchPartialResult)
106 FAISS_DECLARE_GETTER(RangeSearchPartialResult, FaissRangeSearchResult*, res)
108 int faiss_RangeSearchPartialResult_new(
109 FaissRangeSearchPartialResult** p_res, FaissRangeSearchResult* res_in);
111 int faiss_RangeSearchPartialResult_finalize(
112 FaissRangeSearchPartialResult* res);
115 int faiss_RangeSearchPartialResult_set_lims(
116 FaissRangeSearchPartialResult* res);
119 int faiss_RangeSearchPartialResult_set_result(
120 FaissRangeSearchPartialResult* res,
int incremental);
123 FAISS_DECLARE_CLASS(QueryResult)
124 FAISS_DECLARE_GETTER(QueryResult, idx_t, qno)
125 FAISS_DECLARE_GETTER(QueryResult,
size_t, nres)
126 FAISS_DECLARE_GETTER(QueryResult, FaissRangeSearchPartialResult*, pres)
128 int faiss_RangeSearchPartialResult_new_result(
129 FaissRangeSearchPartialResult* res, idx_t qno, FaissQueryResult** qr);
131 int faiss_QueryResult_add(FaissQueryResult* qr,
float dis, idx_t
id);