diff --git a/faiss/CMakeLists.txt b/faiss/CMakeLists.txt index a890a46f11..33e1849568 100644 --- a/faiss/CMakeLists.txt +++ b/faiss/CMakeLists.txt @@ -290,7 +290,10 @@ if(WIN32) target_compile_definitions(faiss_avx512 PRIVATE FAISS_MAIN_LIB) endif() -target_compile_definitions(faiss PRIVATE FINTEGER=int) +string(FIND "${CMAKE_CXX_FLAGS}" "FINTEGER" finteger_idx) +if (${finteger_idx} EQUAL -1) + target_compile_definitions(faiss PRIVATE FINTEGER=int) +endif() target_compile_definitions(faiss_avx2 PRIVATE FINTEGER=int) target_compile_definitions(faiss_avx512 PRIVATE FINTEGER=int) diff --git a/faiss/impl/LocalSearchQuantizer.cpp b/faiss/impl/LocalSearchQuantizer.cpp index 8da989a9a4..943fe32c9d 100644 --- a/faiss/impl/LocalSearchQuantizer.cpp +++ b/faiss/impl/LocalSearchQuantizer.cpp @@ -104,10 +104,10 @@ int dgemm_( namespace { -void fmat_inverse(float* a, int n) { - int info; - int lwork = n * n; - std::vector ipiv(n); +void fmat_inverse(float* a, FINTEGER n) { + FINTEGER info; + FINTEGER lwork = n * n; + std::vector ipiv(n); std::vector workspace(lwork); sgetrf_(&n, &n, a, &n, ipiv.data(), &info); @@ -123,10 +123,10 @@ void dfvec_add(size_t d, const double* a, const float* b, double* c) { } } -void dmat_inverse(double* a, int n) { - int info; - int lwork = n * n; - std::vector ipiv(n); +void dmat_inverse(double* a, FINTEGER n) { + FINTEGER info; + FINTEGER lwork = n * n; + std::vector ipiv(n); std::vector workspace(lwork); dgetrf_(&n, &n, a, &n, ipiv.data(), &info);