mirror of
https://github.com/facebookresearch/faiss.git
synced 2026-10-11 22:50:00 +00:00
fix datatypes for mac (#1270)
This commit is contained in:
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user