From 4b980f56e6fdaba0ff24bc084bd935542ec9c5a8 Mon Sep 17 00:00:00 2001 From: Thejas-bhat Date: Mon, 21 Oct 2024 20:51:11 +0530 Subject: [PATCH] handling edge case for reconstruct API --- index.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/index.go b/index.go index 58543f2..cf7dc32 100644 --- a/index.go +++ b/index.go @@ -331,6 +331,15 @@ func (idx *faissIndex) Reconstruct(key int64) (recons []float32, err error) { func (idx *faissIndex) ReconstructBatch(keys []int64, recons []float32) ([]float32, error) { var err error n := int64(len(keys)) + if recons == nil { + recons = make([]float32, n*int64(idx.D())) + } + + // exit in case of invalid input + if n == 0 || len(recons) != int(n)*idx.D() { + return nil, fmt.Errorf("invalid input") + } + if c := C.faiss_Index_reconstruct_batch( idx.idx, C.idx_t(n),