结构体 faiss::HeapBlockResultHandler

template<class C, bool use_sel = false>
struct HeapBlockResultHandler : public faiss::BlockResultHandler<C, false>

公共类型

using T = typename C::T
using TI = typename C::TI

公共函数

inline HeapBlockResultHandler(size_t nq, T *heap_dis_tab, TI *heap_ids_tab, size_t k, const IDSelector *sel = nullptr)
inline virtual void begin_multiple(size_t i0_2, size_t i1_2) final

开始

inline void add_results(size_t j0, size_t j1, const T *dis_tab) final

为查询 i0..i1 和 j0..j1 添加结果

inline virtual void end_multiple() final

查询 i0..i1 的一系列结果已完成

inline virtual void add_results(size_t, size_t, const typename C::T*)
inline bool is_in_selection(idx_t i) const

公共成员

T *heap_dis_tab
TI *heap_ids_tab
int64_t k
size_t nq
const IDSelector *sel
size_t i0
size_t i1
struct SingleResultHandler : public faiss::ResultHandler<C>

公共函数

inline explicit SingleResultHandler(HeapBlockResultHandler &hr)
inline void begin(size_t i)

为查询 # i 开始结果

inline virtual bool add_result(T dis, TI idx) final

为查询 i 添加一个结果

inline void end()

查询 i 的一系列结果已完成

公共成员

HeapBlockResultHandler &hr
size_t k
T *heap_dis
TI *heap_ids
C::T threshold = C::neutral()