fix datatypes for mac (#1270)

This commit is contained in:
Matthijs Douze
2020-06-28 13:00:44 +02:00
committed by GitHub
parent e8c8db85ae
commit 9258a9535e
4 changed files with 20 additions and 18 deletions
+8 -6
View File
@@ -10,6 +10,8 @@
#include <faiss/IndexFlat.h>
// 64-bit int
using idx_t = faiss::Index::idx_t;
int main() {
int d = 64; // dimension
@@ -34,12 +36,12 @@ int main() {
faiss::IndexFlatL2 index(d); // call constructor
printf("is_trained = %s\n", index.is_trained ? "true" : "false");
index.add(nb, xb); // add vectors to the index
printf("ntotal = %ld\n", index.ntotal);
printf("ntotal = %zd\n", index.ntotal);
int k = 4;
{ // sanity check: search 5 first vectors of xb
long *I = new long[k * 5];
idx_t *I = new idx_t[k * 5];
float *D = new float[k * 5];
index.search(5, xb, k, D, I);
@@ -48,7 +50,7 @@ int main() {
printf("I=\n");
for(int i = 0; i < 5; i++) {
for(int j = 0; j < k; j++)
printf("%5ld ", I[i * k + j]);
printf("%5zd ", I[i * k + j]);
printf("\n");
}
@@ -65,7 +67,7 @@ int main() {
{ // search xq
long *I = new long[k * nq];
idx_t *I = new idx_t[k * nq];
float *D = new float[k * nq];
index.search(nq, xq, k, D, I);
@@ -74,14 +76,14 @@ int main() {
printf("I (5 first results)=\n");
for(int i = 0; i < 5; i++) {
for(int j = 0; j < k; j++)
printf("%5ld ", I[i * k + j]);
printf("%5zd ", I[i * k + j]);
printf("\n");
}
printf("I (5 last results)=\n");
for(int i = nq - 5; i < nq; i++) {
for(int j = 0; j < k; j++)
printf("%5ld ", I[i * k + j]);
printf("%5zd ", I[i * k + j]);
printf("\n");
}
+5 -5
View File
@@ -12,6 +12,7 @@
#include <faiss/IndexFlat.h>
#include <faiss/IndexIVFFlat.h>
using idx_t = faiss::Index::idx_t;
int main() {
int d = 64; // dimension
@@ -38,15 +39,14 @@ int main() {
int k = 4;
faiss::IndexFlatL2 quantizer(d); // the other index
faiss::IndexIVFFlat index(&quantizer, d, nlist, faiss::METRIC_L2);
// here we specify METRIC_L2, by default it performs inner-product search
faiss::IndexIVFFlat index(&quantizer, d, nlist);
assert(!index.is_trained);
index.train(nb, xb);
assert(index.is_trained);
index.add(nb, xb);
{ // search xq
long *I = new long[k * nq];
idx_t *I = new idx_t[k * nq];
float *D = new float[k * nq];
index.search(nq, xq, k, D, I);
@@ -54,7 +54,7 @@ int main() {
printf("I=\n");
for(int i = nq - 5; i < nq; i++) {
for(int j = 0; j < k; j++)
printf("%5ld ", I[i * k + j]);
printf("%5zd ", I[i * k + j]);
printf("\n");
}
@@ -64,7 +64,7 @@ int main() {
printf("I=\n");
for(int i = nq - 5; i < nq; i++) {
for(int j = 0; j < k; j++)
printf("%5ld ", I[i * k + j]);
printf("%5zd ", I[i * k + j]);
printf("\n");
}
+6 -5
View File
@@ -11,6 +11,7 @@
#include <faiss/IndexFlat.h>
#include <faiss/IndexIVFPQ.h>
using idx_t = faiss::Index::idx_t;
int main() {
int d = 64; // dimension
@@ -38,12 +39,12 @@ int main() {
int m = 8; // bytes per vector
faiss::IndexFlatL2 quantizer(d); // the other index
faiss::IndexIVFPQ index(&quantizer, d, nlist, m, 8);
// here we specify METRIC_L2, by default it performs inner-product search
index.train(nb, xb);
index.add(nb, xb);
{ // sanity check
long *I = new long[k * 5];
idx_t *I = new idx_t[k * 5];
float *D = new float[k * 5];
index.search(5, xb, k, D, I);
@@ -51,7 +52,7 @@ int main() {
printf("I=\n");
for(int i = 0; i < 5; i++) {
for(int j = 0; j < k; j++)
printf("%5ld ", I[i * k + j]);
printf("%5zd ", I[i * k + j]);
printf("\n");
}
@@ -67,7 +68,7 @@ int main() {
}
{ // search xq
long *I = new long[k * nq];
idx_t *I = new idx_t[k * nq];
float *D = new float[k * nq];
index.nprobe = 10;
@@ -76,7 +77,7 @@ int main() {
printf("I=\n");
for(int i = nq - 5; i < nq; i++) {
for(int j = 0; j < k; j++)
printf("%5ld ", I[i * k + j]);
printf("%5zd ", I[i * k + j]);
printf("\n");
}
+1 -2
View File
@@ -75,8 +75,7 @@ int main() {
// Using an IVF index
int nlist = 100;
faiss::gpu::GpuIndexIVFFlat index_ivf(&res, d, nlist, faiss::METRIC_L2);
// here we specify METRIC_L2, by default it performs inner-product search
faiss::gpu::GpuIndexIVFFlat index_ivf(&res, d, nlist);
assert(!index_ivf.is_trained);
index_ivf.train(nb, xb);