12 #include <faiss/IndexFlat.h>
20 float *xb =
new float[d * nb];
21 float *xq =
new float[d * nq];
23 for(
int i = 0; i < nb; i++) {
24 for(
int j = 0; j < d; j++)
25 xb[d * i + j] = drand48();
26 xb[d * i] += i / 1000.;
29 for(
int i = 0; i < nq; i++) {
30 for(
int j = 0; j < d; j++)
31 xq[d * i + j] = drand48();
32 xq[d * i] += i / 1000.;
36 printf(
"is_trained = %s\n", index.is_trained ?
"true" :
"false");
38 printf(
"ntotal = %ld\n", index.ntotal);
43 long *I =
new long[k * 5];
44 float *D =
new float[k * 5];
46 index.search(5, xb, k, D, I);
50 for(
int i = 0; i < 5; i++) {
51 for(
int j = 0; j < k; j++)
52 printf(
"%5ld ", I[i * k + j]);
57 for(
int i = 0; i < 5; i++) {
58 for(
int j = 0; j < k; j++)
59 printf(
"%7g ", D[i * k + j]);
69 long *I =
new long[k * nq];
70 float *D =
new float[k * nq];
72 index.search(nq, xq, k, D, I);
75 printf(
"I (5 first results)=\n");
76 for(
int i = 0; i < 5; i++) {
77 for(
int j = 0; j < k; j++)
78 printf(
"%5ld ", I[i * k + j]);
82 printf(
"I (5 last results)=\n");
83 for(
int i = nq - 5; i < nq; i++) {
84 for(
int j = 0; j < k; j++)
85 printf(
"%5ld ", I[i * k + j]);