12 #include "IndexFlat_c.h"
13 #include "IndexFlat.h"
15 #include "macros_impl.h"
30 int faiss_IndexFlat_new(FaissIndexFlat** p_index) {
32 *p_index =
reinterpret_cast<FaissIndexFlat*
>(
new IndexFlat());
37 int faiss_IndexFlat_new_with(FaissIndexFlat** p_index, idx_t d, FaissMetricType metric) {
40 *p_index =
reinterpret_cast<FaissIndexFlat*
>(index);
45 void faiss_IndexFlat_xb(FaissIndexFlat* index,
float** p_xb,
size_t* p_size) {
46 auto& xb =
reinterpret_cast<IndexFlat*
>(index)->xb;
53 int faiss_IndexFlat_compute_distance_subset(
59 const idx_t *labels) {
61 reinterpret_cast<IndexFlat*
>(index)->compute_distance_subset(
62 n, x, k, distances, labels);
67 int faiss_IndexFlatIP_new(FaissIndexFlatIP** p_index) {
70 *p_index =
reinterpret_cast<FaissIndexFlatIP*
>(index);
75 int faiss_IndexFlatIP_new_with(FaissIndexFlatIP** p_index, idx_t d) {
78 *p_index =
reinterpret_cast<FaissIndexFlatIP*
>(index);
83 int faiss_IndexFlatL2_new(FaissIndexFlatL2** p_index) {
86 *p_index =
reinterpret_cast<FaissIndexFlatL2*
>(index);
91 int faiss_IndexFlatL2_new_with(FaissIndexFlatL2** p_index, idx_t d) {
94 *p_index =
reinterpret_cast<FaissIndexFlatL2*
>(index);
99 int faiss_IndexFlatL2BaseShift_new(FaissIndexFlatL2BaseShift** p_index, idx_t d,
size_t nshift,
const float *shift) {
102 *p_index =
reinterpret_cast<FaissIndexFlatL2BaseShift*
>(index);
107 int faiss_IndexRefineFlat_new(FaissIndexRefineFlat** p_index, FaissIndex* base_index) {
110 reinterpret_cast<faiss::Index*>(base_index));
111 *p_index =
reinterpret_cast<FaissIndexRefineFlat*
>(index);
118 int faiss_IndexFlat1D_new(FaissIndexFlat1D** p_index) {
121 *p_index =
reinterpret_cast<FaissIndexFlat1D*
>(index);
126 int faiss_IndexFlat1D_new_with(FaissIndexFlat1D** p_index,
int continuous_update) {
129 *p_index =
reinterpret_cast<FaissIndexFlat1D*
>(index);
134 int faiss_IndexFlat1D_update_permutation(FaissIndexFlat1D* index) {
136 reinterpret_cast<IndexFlat1D*
>(index)->update_permutation();
optimized version for 1D "vectors"