From 7611d0cf8399b538003a83204fc38126a2c35208 Mon Sep 17 00:00:00 2001 From: Michael Kosten Date: Thu, 17 Oct 2024 12:55:37 -0700 Subject: [PATCH 1/2] Add VectorTransform read from filename to the C API --- c_api/index_io_c.cpp | 9 +++++++++ c_api/index_io_c.h | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/c_api/index_io_c.cpp b/c_api/index_io_c.cpp index 8814db59f1..8a62734b9b 100644 --- a/c_api/index_io_c.cpp +++ b/c_api/index_io_c.cpp @@ -15,6 +15,7 @@ using faiss::Index; using faiss::IndexBinary; +using faiss::VectorTransform; int faiss_write_index(const FaissIndex* idx, FILE* f) { try { @@ -84,3 +85,11 @@ int faiss_read_index_binary_fname( } CATCH_AND_HANDLE } + +int faiss_read_VectorTransform_fname(const char* fname, FaissVectorTransform** p_out) { + try { + auto out = faiss::read_VectorTransform(fname); + *p_out = reinterpret_cast(out); + } + CATCH_AND_HANDLE +} diff --git a/c_api/index_io_c.h b/c_api/index_io_c.h index 8935de0219..15cb9394d1 100644 --- a/c_api/index_io_c.h +++ b/c_api/index_io_c.h @@ -16,6 +16,7 @@ #include "IndexBinary_c.h" #include "Index_c.h" #include "faiss_c.h" +#include "VectorTransform_c.h" #ifdef __cplusplus extern "C" { @@ -72,6 +73,11 @@ int faiss_read_index_binary_fname( const char* fname, int io_flags, FaissIndexBinary** p_out); + +/** Read vector transform from a file. + * This is equivalent to `faiss:read_VectorTransform` when a file path is given. + */ +int faiss_read_VectorTransform_fname(const char* fname, FaissVectorTransform** p_out); #ifdef __cplusplus } #endif From ed52b9d195bcbdae321be4ec4069041dd3807e53 Mon Sep 17 00:00:00 2001 From: Michael Kosten Date: Mon, 21 Oct 2024 15:21:50 -0700 Subject: [PATCH 2/2] Apply clang-format for changes --- c_api/index_io_c.cpp | 4 +++- c_api/index_io_c.h | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/c_api/index_io_c.cpp b/c_api/index_io_c.cpp index d5520ac268..e570e73e40 100644 --- a/c_api/index_io_c.cpp +++ b/c_api/index_io_c.cpp @@ -85,7 +85,9 @@ int faiss_read_index_binary_fname( CATCH_AND_HANDLE } -int faiss_read_VectorTransform_fname(const char* fname, FaissVectorTransform** p_out) { +int faiss_read_VectorTransform_fname( + const char* fname, + FaissVectorTransform** p_out) { try { auto out = faiss::read_VectorTransform(fname); *p_out = reinterpret_cast(out); diff --git a/c_api/index_io_c.h b/c_api/index_io_c.h index 5f7a428d2d..51832abe47 100644 --- a/c_api/index_io_c.h +++ b/c_api/index_io_c.h @@ -14,8 +14,8 @@ #include #include "IndexBinary_c.h" #include "Index_c.h" -#include "faiss_c.h" #include "VectorTransform_c.h" +#include "faiss_c.h" #ifdef __cplusplus extern "C" { @@ -76,7 +76,9 @@ int faiss_read_index_binary_fname( /** Read vector transform from a file. * This is equivalent to `faiss:read_VectorTransform` when a file path is given. */ -int faiss_read_VectorTransform_fname(const char* fname, FaissVectorTransform** p_out); +int faiss_read_VectorTransform_fname( + const char* fname, + FaissVectorTransform** p_out); #ifdef __cplusplus } #endif