contrib/faiss/faiss/impl/simd_result_handlers.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) Meta Platforms, Inc. and affiliates. |
3 | | * |
4 | | * This source code is licensed under the MIT license found in the |
5 | | * LICENSE file in the root directory of this source tree. |
6 | | */ |
7 | | |
8 | | #pragma once |
9 | | |
10 | | #include <algorithm> |
11 | | #include <type_traits> |
12 | | #include <vector> |
13 | | |
14 | | #include <faiss/utils/Heap.h> |
15 | | #include <faiss/utils/simdlib.h> |
16 | | |
17 | | #include <faiss/impl/FaissAssert.h> |
18 | | #include <faiss/impl/IDSelector.h> |
19 | | #include <faiss/impl/ResultHandler.h> |
20 | | #include <faiss/impl/platform_macros.h> |
21 | | #include <faiss/utils/AlignedTable.h> |
22 | | #include <faiss/utils/partitioning.h> |
23 | | |
24 | | /** This file contains callbacks for kernels that compute distances. |
25 | | */ |
26 | | |
27 | | namespace faiss { |
28 | | |
29 | | struct SIMDResultHandler { |
30 | | // used to dispatch templates |
31 | | bool is_CMax = false; |
32 | | uint8_t sizeof_ids = 0; |
33 | | bool with_fields = false; |
34 | | |
35 | | /** called when 32 distances are computed and provided in two |
36 | | * simd16uint16. (q, b) indicate which entry it is in the block. */ |
37 | | virtual void handle( |
38 | | size_t q, |
39 | | size_t b, |
40 | | simd16uint16 d0, |
41 | | simd16uint16 d1) = 0; |
42 | | |
43 | | /// set the sub-matrix that is being computed |
44 | | virtual void set_block_origin(size_t i0, size_t j0) = 0; |
45 | | |
46 | 0 | virtual ~SIMDResultHandler() {} |
47 | | }; |
48 | | |
49 | | /* Result handler that will return float resutls eventually */ |
50 | | struct SIMDResultHandlerToFloat : SIMDResultHandler { |
51 | | size_t nq; // number of queries |
52 | | size_t ntotal; // ignore excess elements after ntotal |
53 | | |
54 | | /// these fields are used mainly for the IVF variants (with_id_map=true) |
55 | | const idx_t* id_map = nullptr; // map offset in invlist to vector id |
56 | | const int* q_map = nullptr; // map q to global query |
57 | | const uint16_t* dbias = |
58 | | nullptr; // table of biases to add to each query (for IVF L2 search) |
59 | | const float* normalizers = nullptr; // size 2 * nq, to convert |
60 | | |
61 | | SIMDResultHandlerToFloat(size_t nq, size_t ntotal) |
62 | 0 | : nq(nq), ntotal(ntotal) {} |
63 | | |
64 | 0 | virtual void begin(const float* norms) { |
65 | 0 | normalizers = norms; |
66 | 0 | } |
67 | | |
68 | | // called at end of search to convert int16 distances to float, before |
69 | | // normalizers are deallocated |
70 | 0 | virtual void end() { |
71 | 0 | normalizers = nullptr; |
72 | 0 | } |
73 | | }; |
74 | | |
75 | | FAISS_API extern bool simd_result_handlers_accept_virtual; |
76 | | |
77 | | namespace simd_result_handlers { |
78 | | |
79 | | /** Dummy structure that just computes a chqecksum on results |
80 | | * (to avoid the computation to be optimized away) */ |
81 | | struct DummyResultHandler : SIMDResultHandler { |
82 | | size_t cs = 0; |
83 | | |
84 | 0 | void handle(size_t q, size_t b, simd16uint16 d0, simd16uint16 d1) final { |
85 | 0 | cs += q * 123 + b * 789 + d0.get_scalar_0() + d1.get_scalar_0(); |
86 | 0 | } |
87 | | |
88 | 0 | void set_block_origin(size_t, size_t) final {} |
89 | | |
90 | 0 | ~DummyResultHandler() {} |
91 | | }; |
92 | | |
93 | | /** memorize results in a nq-by-nb matrix. |
94 | | * |
95 | | * j0 is the current upper-left block of the matrix |
96 | | */ |
97 | | struct StoreResultHandler : SIMDResultHandler { |
98 | | uint16_t* data; |
99 | | size_t ld; // total number of columns |
100 | | size_t i0 = 0; |
101 | | size_t j0 = 0; |
102 | | |
103 | 0 | StoreResultHandler(uint16_t* data, size_t ld) : data(data), ld(ld) {} |
104 | | |
105 | 0 | void handle(size_t q, size_t b, simd16uint16 d0, simd16uint16 d1) final { |
106 | 0 | size_t ofs = (q + i0) * ld + j0 + b * 32; |
107 | 0 | d0.store(data + ofs); |
108 | 0 | d1.store(data + ofs + 16); |
109 | 0 | } |
110 | | |
111 | 0 | void set_block_origin(size_t i0_in, size_t j0_in) final { |
112 | 0 | this->i0 = i0_in; |
113 | 0 | this->j0 = j0_in; |
114 | 0 | } |
115 | | }; |
116 | | |
117 | | /** stores results in fixed-size matrix. */ |
118 | | template <int NQ, int BB> |
119 | | struct FixedStorageHandler : SIMDResultHandler { |
120 | | simd16uint16 dis[NQ][BB]; |
121 | | int i0 = 0; |
122 | | |
123 | 0 | void handle(size_t q, size_t b, simd16uint16 d0, simd16uint16 d1) final { |
124 | 0 | dis[q + i0][2 * b] = d0; |
125 | 0 | dis[q + i0][2 * b + 1] = d1; |
126 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE6handleEmmNS_12simd16uint16ES3_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE6handleEmmNS_12simd16uint16ES3_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE6handleEmmNS_12simd16uint16ES3_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE6handleEmmNS_12simd16uint16ES3_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE6handleEmmNS_12simd16uint16ES3_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE6handleEmmNS_12simd16uint16ES3_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE6handleEmmNS_12simd16uint16ES3_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE6handleEmmNS_12simd16uint16ES3_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE6handleEmmNS_12simd16uint16ES3_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE6handleEmmNS_12simd16uint16ES3_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE6handleEmmNS_12simd16uint16ES3_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE6handleEmmNS_12simd16uint16ES3_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE6handleEmmNS_12simd16uint16ES3_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE6handleEmmNS_12simd16uint16ES3_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE6handleEmmNS_12simd16uint16ES3_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE6handleEmmNS_12simd16uint16ES3_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE6handleEmmNS_12simd16uint16ES3_ |
127 | | |
128 | 0 | void set_block_origin(size_t i0_in, size_t j0_in) final { |
129 | 0 | this->i0 = i0_in; |
130 | 0 | assert(j0_in == 0); |
131 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16set_block_originEmm |
132 | | |
133 | | template <class OtherResultHandler> |
134 | 0 | void to_other_handler(OtherResultHandler& other) const { |
135 | 0 | for (int q = 0; q < NQ; q++) { |
136 | 0 | for (int b = 0; b < BB; b += 2) { |
137 | 0 | other.handle(q, b / 2, dis[q][b], dis[q][b + 1]); |
138 | 0 | } |
139 | 0 | } |
140 | 0 | } Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_18StoreResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_18DummyResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS_17SIMDResultHandlerEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItiEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMaxItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb1EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_19SingleResultHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_11HeapHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ Unexecuted instantiation: _ZNK5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EE16to_other_handlerINS0_16ReservoirHandlerINS_4CMinItlEELb0EEEEEvRT_ |
141 | | |
142 | 0 | virtual ~FixedStorageHandler() {}Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi2EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi4EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi6EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi8EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi1ELi10EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi2EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi2ELi4EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi3ELi2EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi4ELi2EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi12ELi2EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi11ELi2EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi10ELi2EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi9ELi2EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi8ELi2EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi7ELi2EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi6ELi2EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers19FixedStorageHandlerILi5ELi2EED2Ev |
143 | | }; |
144 | | |
145 | | /** Result handler that compares distances to check if they need to be kept */ |
146 | | template <class C, bool with_id_map> |
147 | | struct ResultHandlerCompare : SIMDResultHandlerToFloat { |
148 | | using TI = typename C::TI; |
149 | | |
150 | | bool disable = false; |
151 | | |
152 | | int64_t i0 = 0; // query origin |
153 | | int64_t j0 = 0; // db origin |
154 | | |
155 | | const IDSelector* sel; |
156 | | |
157 | | ResultHandlerCompare(size_t nq, size_t ntotal, const IDSelector* sel_in) |
158 | 0 | : SIMDResultHandlerToFloat(nq, ntotal), sel{sel_in} { |
159 | 0 | this->is_CMax = C::is_max; |
160 | 0 | this->sizeof_ids = sizeof(typename C::TI); |
161 | 0 | this->with_fields = with_id_map; |
162 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItiEELb0EEC2EmmPKNS_10IDSelectorE Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItiEELb0EEC2EmmPKNS_10IDSelectorE Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItlEELb1EEC2EmmPKNS_10IDSelectorE Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItlEELb1EEC2EmmPKNS_10IDSelectorE |
163 | | |
164 | 0 | void set_block_origin(size_t i0_in, size_t j0_in) final { |
165 | 0 | this->i0 = i0_in; |
166 | 0 | this->j0 = j0_in; |
167 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItiEELb0EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItiEELb0EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItlEELb1EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItlEELb1EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItiEELb1EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItiEELb1EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItlEELb0EE16set_block_originEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItlEELb0EE16set_block_originEmm |
168 | | |
169 | | // adjust handler data for IVF. |
170 | 0 | void adjust_with_origin(size_t& q, simd16uint16& d0, simd16uint16& d1) { |
171 | 0 | q += i0; |
172 | |
|
173 | 0 | if (dbias) { |
174 | 0 | simd16uint16 dbias16(dbias[q]); |
175 | 0 | d0 += dbias16; |
176 | 0 | d1 += dbias16; |
177 | 0 | } |
178 | |
|
179 | 0 | if (with_id_map) { // FIXME test on q_map instead |
180 | 0 | q = q_map[q]; |
181 | 0 | } |
182 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItiEELb0EE18adjust_with_originERmRNS_12simd16uint16ES7_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItiEELb0EE18adjust_with_originERmRNS_12simd16uint16ES7_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItlEELb1EE18adjust_with_originERmRNS_12simd16uint16ES7_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItlEELb1EE18adjust_with_originERmRNS_12simd16uint16ES7_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItiEELb1EE18adjust_with_originERmRNS_12simd16uint16ES7_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItiEELb1EE18adjust_with_originERmRNS_12simd16uint16ES7_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItlEELb0EE18adjust_with_originERmRNS_12simd16uint16ES7_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItlEELb0EE18adjust_with_originERmRNS_12simd16uint16ES7_ |
183 | | |
184 | | // compute and adjust idx |
185 | 0 | int64_t adjust_id(size_t b, size_t j) { |
186 | 0 | int64_t idx = j0 + 32 * b + j; |
187 | 0 | if (with_id_map) { |
188 | 0 | idx = id_map[idx]; |
189 | 0 | } |
190 | 0 | return idx; |
191 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItiEELb0EE9adjust_idEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItiEELb0EE9adjust_idEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItlEELb1EE9adjust_idEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItlEELb1EE9adjust_idEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItiEELb1EE9adjust_idEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItiEELb1EE9adjust_idEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItlEELb0EE9adjust_idEmm Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItlEELb0EE9adjust_idEmm |
192 | | |
193 | | /// return binary mask of elements below thr in (d0, d1) |
194 | | /// inverse_test returns elements above |
195 | | uint32_t get_lt_mask( |
196 | | uint16_t thr, |
197 | | size_t b, |
198 | | simd16uint16 d0, |
199 | 0 | simd16uint16 d1) { |
200 | 0 | simd16uint16 thr16(thr); |
201 | 0 | uint32_t lt_mask; |
202 | |
|
203 | 0 | constexpr bool keep_min = C::is_max; |
204 | 0 | if (keep_min) { |
205 | 0 | lt_mask = ~cmp_ge32(d0, d1, thr16); |
206 | 0 | } else { |
207 | 0 | lt_mask = ~cmp_le32(d0, d1, thr16); |
208 | 0 | } |
209 | |
|
210 | 0 | if (lt_mask == 0) { |
211 | 0 | return 0; |
212 | 0 | } |
213 | 0 | uint64_t idx = j0 + b * 32; |
214 | 0 | if (idx + 32 > ntotal) { |
215 | 0 | if (idx >= ntotal) { |
216 | 0 | return 0; |
217 | 0 | } |
218 | 0 | int nbit = (ntotal - idx); |
219 | 0 | lt_mask &= (uint32_t(1) << nbit) - 1; |
220 | 0 | } |
221 | 0 | return lt_mask; |
222 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItiEELb0EE11get_lt_maskEtmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItiEELb0EE11get_lt_maskEtmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItlEELb1EE11get_lt_maskEtmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItlEELb1EE11get_lt_maskEtmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItiEELb1EE11get_lt_maskEtmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItiEELb1EE11get_lt_maskEtmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItlEELb0EE11get_lt_maskEtmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItlEELb0EE11get_lt_maskEtmNS_12simd16uint16ES5_ |
223 | | |
224 | 0 | virtual ~ResultHandlerCompare() {}Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItiEELb0EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItiEELb0EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMaxItlEELb1EED2Ev Unexecuted instantiation: _ZN5faiss20simd_result_handlers20ResultHandlerCompareINS_4CMinItlEELb1EED2Ev |
225 | | }; |
226 | | |
227 | | /** Special version for k=1 */ |
228 | | template <class C, bool with_id_map = false> |
229 | | struct SingleResultHandler : ResultHandlerCompare<C, with_id_map> { |
230 | | using T = typename C::T; |
231 | | using TI = typename C::TI; |
232 | | using RHC = ResultHandlerCompare<C, with_id_map>; |
233 | | using RHC::normalizers; |
234 | | |
235 | | std::vector<int16_t> idis; |
236 | | float* dis; |
237 | | int64_t* ids; |
238 | | |
239 | | SingleResultHandler( |
240 | | size_t nq, |
241 | | size_t ntotal, |
242 | | float* dis, |
243 | | int64_t* ids, |
244 | | const IDSelector* sel_in) |
245 | 0 | : RHC(nq, ntotal, sel_in), idis(nq), dis(dis), ids(ids) { |
246 | 0 | for (size_t i = 0; i < nq; i++) { |
247 | 0 | ids[i] = -1; |
248 | 0 | idis[i] = C::neutral(); |
249 | 0 | } |
250 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers19SingleResultHandlerINS_4CMaxItiEELb0EEC2EmmPfPlPKNS_10IDSelectorE Unexecuted instantiation: _ZN5faiss20simd_result_handlers19SingleResultHandlerINS_4CMinItiEELb0EEC2EmmPfPlPKNS_10IDSelectorE Unexecuted instantiation: _ZN5faiss20simd_result_handlers19SingleResultHandlerINS_4CMaxItlEELb1EEC2EmmPfPlPKNS_10IDSelectorE Unexecuted instantiation: _ZN5faiss20simd_result_handlers19SingleResultHandlerINS_4CMinItlEELb1EEC2EmmPfPlPKNS_10IDSelectorE |
251 | | |
252 | 0 | void handle(size_t q, size_t b, simd16uint16 d0, simd16uint16 d1) final { |
253 | 0 | if (this->disable) { |
254 | 0 | return; |
255 | 0 | } |
256 | | |
257 | 0 | this->adjust_with_origin(q, d0, d1); |
258 | |
|
259 | 0 | uint32_t lt_mask = this->get_lt_mask(idis[q], b, d0, d1); |
260 | 0 | if (!lt_mask) { |
261 | 0 | return; |
262 | 0 | } |
263 | | |
264 | 0 | ALIGNED(32) uint16_t d32tab[32]; |
265 | 0 | d0.store(d32tab); |
266 | 0 | d1.store(d32tab + 16); |
267 | |
|
268 | 0 | if (this->sel != nullptr) { |
269 | 0 | while (lt_mask) { |
270 | | // find first non-zero |
271 | 0 | int j = __builtin_ctz(lt_mask); |
272 | 0 | auto real_idx = this->adjust_id(b, j); |
273 | 0 | lt_mask -= 1 << j; |
274 | 0 | if (this->sel->is_member(real_idx)) { |
275 | 0 | T d = d32tab[j]; |
276 | 0 | if (C::cmp(idis[q], d)) { |
277 | 0 | idis[q] = d; |
278 | 0 | ids[q] = real_idx; |
279 | 0 | } |
280 | 0 | } |
281 | 0 | } |
282 | 0 | } else { |
283 | 0 | while (lt_mask) { |
284 | | // find first non-zero |
285 | 0 | int j = __builtin_ctz(lt_mask); |
286 | 0 | lt_mask -= 1 << j; |
287 | 0 | T d = d32tab[j]; |
288 | 0 | if (C::cmp(idis[q], d)) { |
289 | 0 | idis[q] = d; |
290 | 0 | ids[q] = this->adjust_id(b, j); |
291 | 0 | } |
292 | 0 | } |
293 | 0 | } |
294 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers19SingleResultHandlerINS_4CMaxItiEELb0EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19SingleResultHandlerINS_4CMinItiEELb0EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19SingleResultHandlerINS_4CMaxItlEELb1EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19SingleResultHandlerINS_4CMinItlEELb1EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19SingleResultHandlerINS_4CMaxItiEELb1EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19SingleResultHandlerINS_4CMinItiEELb1EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19SingleResultHandlerINS_4CMaxItlEELb0EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers19SingleResultHandlerINS_4CMinItlEELb0EE6handleEmmNS_12simd16uint16ES5_ |
295 | | |
296 | 0 | void end() { |
297 | 0 | for (size_t q = 0; q < this->nq; q++) { |
298 | 0 | if (!normalizers) { |
299 | 0 | dis[q] = idis[q]; |
300 | 0 | } else { |
301 | 0 | float one_a = 1 / normalizers[2 * q]; |
302 | 0 | float b = normalizers[2 * q + 1]; |
303 | 0 | dis[q] = b + idis[q] * one_a; |
304 | 0 | } |
305 | 0 | } |
306 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers19SingleResultHandlerINS_4CMaxItiEELb0EE3endEv Unexecuted instantiation: _ZN5faiss20simd_result_handlers19SingleResultHandlerINS_4CMinItiEELb0EE3endEv Unexecuted instantiation: _ZN5faiss20simd_result_handlers19SingleResultHandlerINS_4CMaxItlEELb1EE3endEv Unexecuted instantiation: _ZN5faiss20simd_result_handlers19SingleResultHandlerINS_4CMinItlEELb1EE3endEv |
307 | | }; |
308 | | |
309 | | /** Structure that collects results in a min- or max-heap */ |
310 | | template <class C, bool with_id_map = false> |
311 | | struct HeapHandler : ResultHandlerCompare<C, with_id_map> { |
312 | | using T = typename C::T; |
313 | | using TI = typename C::TI; |
314 | | using RHC = ResultHandlerCompare<C, with_id_map>; |
315 | | using RHC::normalizers; |
316 | | |
317 | | std::vector<uint16_t> idis; |
318 | | std::vector<TI> iids; |
319 | | float* dis; |
320 | | int64_t* ids; |
321 | | |
322 | | int64_t k; // number of results to keep |
323 | | |
324 | | HeapHandler( |
325 | | size_t nq, |
326 | | size_t ntotal, |
327 | | int64_t k, |
328 | | float* dis, |
329 | | int64_t* ids, |
330 | | const IDSelector* sel_in) |
331 | 0 | : RHC(nq, ntotal, sel_in), |
332 | 0 | idis(nq * k), |
333 | 0 | iids(nq * k), |
334 | 0 | dis(dis), |
335 | 0 | ids(ids), |
336 | 0 | k(k) { |
337 | 0 | heap_heapify<C>(k * nq, idis.data(), iids.data()); |
338 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers11HeapHandlerINS_4CMaxItiEELb0EEC2EmmlPfPlPKNS_10IDSelectorE Unexecuted instantiation: _ZN5faiss20simd_result_handlers11HeapHandlerINS_4CMinItiEELb0EEC2EmmlPfPlPKNS_10IDSelectorE Unexecuted instantiation: _ZN5faiss20simd_result_handlers11HeapHandlerINS_4CMaxItlEELb1EEC2EmmlPfPlPKNS_10IDSelectorE Unexecuted instantiation: _ZN5faiss20simd_result_handlers11HeapHandlerINS_4CMinItlEELb1EEC2EmmlPfPlPKNS_10IDSelectorE |
339 | | |
340 | 0 | void handle(size_t q, size_t b, simd16uint16 d0, simd16uint16 d1) final { |
341 | 0 | if (this->disable) { |
342 | 0 | return; |
343 | 0 | } |
344 | | |
345 | 0 | this->adjust_with_origin(q, d0, d1); |
346 | |
|
347 | 0 | T* heap_dis = idis.data() + q * k; |
348 | 0 | TI* heap_ids = iids.data() + q * k; |
349 | |
|
350 | 0 | uint16_t cur_thresh = |
351 | 0 | heap_dis[0] < 65536 ? (uint16_t)(heap_dis[0]) : 0xffff; |
352 | | |
353 | | // here we handle the reverse comparison case as well |
354 | 0 | uint32_t lt_mask = this->get_lt_mask(cur_thresh, b, d0, d1); |
355 | |
|
356 | 0 | if (!lt_mask) { |
357 | 0 | return; |
358 | 0 | } |
359 | | |
360 | 0 | ALIGNED(32) uint16_t d32tab[32]; |
361 | 0 | d0.store(d32tab); |
362 | 0 | d1.store(d32tab + 16); |
363 | |
|
364 | 0 | if (this->sel != nullptr) { |
365 | 0 | while (lt_mask) { |
366 | | // find first non-zero |
367 | 0 | int j = __builtin_ctz(lt_mask); |
368 | 0 | auto real_idx = this->adjust_id(b, j); |
369 | 0 | lt_mask -= 1 << j; |
370 | 0 | if (this->sel->is_member(real_idx)) { |
371 | 0 | T dis_2 = d32tab[j]; |
372 | 0 | if (C::cmp(heap_dis[0], dis_2)) { |
373 | 0 | heap_replace_top<C>( |
374 | 0 | k, heap_dis, heap_ids, dis_2, real_idx); |
375 | 0 | } |
376 | 0 | } |
377 | 0 | } |
378 | 0 | } else { |
379 | 0 | while (lt_mask) { |
380 | | // find first non-zero |
381 | 0 | int j = __builtin_ctz(lt_mask); |
382 | 0 | lt_mask -= 1 << j; |
383 | 0 | T dis_2 = d32tab[j]; |
384 | 0 | if (C::cmp(heap_dis[0], dis_2)) { |
385 | 0 | int64_t idx = this->adjust_id(b, j); |
386 | 0 | heap_replace_top<C>(k, heap_dis, heap_ids, dis_2, idx); |
387 | 0 | } |
388 | 0 | } |
389 | 0 | } |
390 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers11HeapHandlerINS_4CMaxItiEELb0EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers11HeapHandlerINS_4CMinItiEELb0EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers11HeapHandlerINS_4CMaxItlEELb1EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers11HeapHandlerINS_4CMinItlEELb1EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers11HeapHandlerINS_4CMaxItiEELb1EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers11HeapHandlerINS_4CMinItiEELb1EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers11HeapHandlerINS_4CMaxItlEELb0EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers11HeapHandlerINS_4CMinItlEELb0EE6handleEmmNS_12simd16uint16ES5_ |
391 | | |
392 | 0 | void end() override { |
393 | 0 | for (size_t q = 0; q < this->nq; q++) { |
394 | 0 | T* heap_dis_in = idis.data() + q * k; |
395 | 0 | TI* heap_ids_in = iids.data() + q * k; |
396 | 0 | heap_reorder<C>(k, heap_dis_in, heap_ids_in); |
397 | 0 | float* heap_dis = dis + q * k; |
398 | 0 | int64_t* heap_ids = ids + q * k; |
399 | |
|
400 | 0 | float one_a = 1.0, b = 0.0; |
401 | 0 | if (normalizers) { |
402 | 0 | one_a = 1 / normalizers[2 * q]; |
403 | 0 | b = normalizers[2 * q + 1]; |
404 | 0 | } |
405 | 0 | for (int j = 0; j < k; j++) { |
406 | 0 | heap_dis[j] = heap_dis_in[j] * one_a + b; |
407 | 0 | heap_ids[j] = heap_ids_in[j]; |
408 | 0 | } |
409 | 0 | } |
410 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers11HeapHandlerINS_4CMaxItiEELb0EE3endEv Unexecuted instantiation: _ZN5faiss20simd_result_handlers11HeapHandlerINS_4CMinItiEELb0EE3endEv Unexecuted instantiation: _ZN5faiss20simd_result_handlers11HeapHandlerINS_4CMaxItlEELb1EE3endEv Unexecuted instantiation: _ZN5faiss20simd_result_handlers11HeapHandlerINS_4CMinItlEELb1EE3endEv |
411 | | }; |
412 | | |
413 | | /** Simple top-N implementation using a reservoir. |
414 | | * |
415 | | * Results are stored when they are below the threshold until the capacity is |
416 | | * reached. Then a partition sort is used to update the threshold. */ |
417 | | |
418 | | /** Handler built from several ReservoirTopN (one per query) */ |
419 | | template <class C, bool with_id_map = false> |
420 | | struct ReservoirHandler : ResultHandlerCompare<C, with_id_map> { |
421 | | using T = typename C::T; |
422 | | using TI = typename C::TI; |
423 | | using RHC = ResultHandlerCompare<C, with_id_map>; |
424 | | using RHC::normalizers; |
425 | | |
426 | | size_t capacity; // rounded up to multiple of 16 |
427 | | |
428 | | // where the final results will be written |
429 | | float* dis; |
430 | | int64_t* ids; |
431 | | |
432 | | std::vector<TI> all_ids; |
433 | | AlignedTable<T> all_vals; |
434 | | std::vector<ReservoirTopN<C>> reservoirs; |
435 | | |
436 | | ReservoirHandler( |
437 | | size_t nq, |
438 | | size_t ntotal, |
439 | | size_t k, |
440 | | size_t cap, |
441 | | float* dis, |
442 | | int64_t* ids, |
443 | | const IDSelector* sel_in) |
444 | 0 | : RHC(nq, ntotal, sel_in), |
445 | 0 | capacity((cap + 15) & ~15), |
446 | 0 | dis(dis), |
447 | 0 | ids(ids) { |
448 | 0 | assert(capacity % 16 == 0); |
449 | 0 | all_ids.resize(nq * capacity); |
450 | 0 | all_vals.resize(nq * capacity); |
451 | 0 | for (size_t q = 0; q < nq; q++) { |
452 | 0 | reservoirs.emplace_back( |
453 | 0 | k, |
454 | 0 | capacity, |
455 | 0 | all_vals.get() + q * capacity, |
456 | 0 | all_ids.data() + q * capacity); |
457 | 0 | } |
458 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMaxItiEELb0EEC2EmmmmPfPlPKNS_10IDSelectorE Unexecuted instantiation: _ZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMinItiEELb0EEC2EmmmmPfPlPKNS_10IDSelectorE Unexecuted instantiation: _ZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMaxItlEELb1EEC2EmmmmPfPlPKNS_10IDSelectorE Unexecuted instantiation: _ZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMinItlEELb1EEC2EmmmmPfPlPKNS_10IDSelectorE |
459 | | |
460 | 0 | void handle(size_t q, size_t b, simd16uint16 d0, simd16uint16 d1) final { |
461 | 0 | if (this->disable) { |
462 | 0 | return; |
463 | 0 | } |
464 | 0 | this->adjust_with_origin(q, d0, d1); |
465 | |
|
466 | 0 | ReservoirTopN<C>& res = reservoirs[q]; |
467 | 0 | uint32_t lt_mask = this->get_lt_mask(res.threshold, b, d0, d1); |
468 | |
|
469 | 0 | if (!lt_mask) { |
470 | 0 | return; |
471 | 0 | } |
472 | 0 | ALIGNED(32) uint16_t d32tab[32]; |
473 | 0 | d0.store(d32tab); |
474 | 0 | d1.store(d32tab + 16); |
475 | |
|
476 | 0 | if (this->sel != nullptr) { |
477 | 0 | while (lt_mask) { |
478 | | // find first non-zero |
479 | 0 | int j = __builtin_ctz(lt_mask); |
480 | 0 | auto real_idx = this->adjust_id(b, j); |
481 | 0 | lt_mask -= 1 << j; |
482 | 0 | if (this->sel->is_member(real_idx)) { |
483 | 0 | T dis_2 = d32tab[j]; |
484 | 0 | res.add(dis_2, real_idx); |
485 | 0 | } |
486 | 0 | } |
487 | 0 | } else { |
488 | 0 | while (lt_mask) { |
489 | | // find first non-zero |
490 | 0 | int j = __builtin_ctz(lt_mask); |
491 | 0 | lt_mask -= 1 << j; |
492 | 0 | T dis_2 = d32tab[j]; |
493 | 0 | res.add(dis_2, this->adjust_id(b, j)); |
494 | 0 | } |
495 | 0 | } |
496 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMaxItiEELb0EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMinItiEELb0EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMaxItlEELb1EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMinItlEELb1EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMaxItiEELb1EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMinItiEELb1EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMaxItlEELb0EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMinItlEELb0EE6handleEmmNS_12simd16uint16ES5_ |
497 | | |
498 | 0 | void end() override { |
499 | 0 | using Cf = typename std::conditional< |
500 | 0 | C::is_max, |
501 | 0 | CMax<float, int64_t>, |
502 | 0 | CMin<float, int64_t>>::type; |
503 | |
|
504 | 0 | std::vector<int> perm(reservoirs[0].n); |
505 | 0 | for (size_t q = 0; q < reservoirs.size(); q++) { |
506 | 0 | ReservoirTopN<C>& res = reservoirs[q]; |
507 | 0 | size_t n = res.n; |
508 | |
|
509 | 0 | if (res.i > res.n) { |
510 | 0 | res.shrink(); |
511 | 0 | } |
512 | 0 | int64_t* heap_ids = ids + q * n; |
513 | 0 | float* heap_dis = dis + q * n; |
514 | |
|
515 | 0 | float one_a = 1.0, b = 0.0; |
516 | 0 | if (normalizers) { |
517 | 0 | one_a = 1 / normalizers[2 * q]; |
518 | 0 | b = normalizers[2 * q + 1]; |
519 | 0 | } |
520 | 0 | for (size_t i = 0; i < res.i; i++) { |
521 | 0 | perm[i] = i; |
522 | 0 | } |
523 | | // indirect sort of result arrays |
524 | 0 | std::sort(perm.begin(), perm.begin() + res.i, [&res](int i, int j) { |
525 | 0 | return C::cmp(res.vals[j], res.vals[i]); |
526 | 0 | }); Unexecuted instantiation: _ZZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMaxItiEELb0EE3endEvENKUliiE_clEii Unexecuted instantiation: _ZZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMinItiEELb0EE3endEvENKUliiE_clEii Unexecuted instantiation: _ZZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMaxItlEELb1EE3endEvENKUliiE_clEii Unexecuted instantiation: _ZZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMinItlEELb1EE3endEvENKUliiE_clEii |
527 | 0 | for (size_t i = 0; i < res.i; i++) { |
528 | 0 | heap_dis[i] = res.vals[perm[i]] * one_a + b; |
529 | 0 | heap_ids[i] = res.ids[perm[i]]; |
530 | 0 | } |
531 | | |
532 | | // possibly add empty results |
533 | 0 | heap_heapify<Cf>(n - res.i, heap_dis + res.i, heap_ids + res.i); |
534 | 0 | } |
535 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMaxItiEELb0EE3endEv Unexecuted instantiation: _ZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMinItiEELb0EE3endEv Unexecuted instantiation: _ZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMaxItlEELb1EE3endEv Unexecuted instantiation: _ZN5faiss20simd_result_handlers16ReservoirHandlerINS_4CMinItlEELb1EE3endEv |
536 | | }; |
537 | | |
538 | | /** Result handler for range search. The difficulty is that the range distances |
539 | | * have to be scaled using the scaler. |
540 | | */ |
541 | | |
542 | | template <class C, bool with_id_map = false> |
543 | | struct RangeHandler : ResultHandlerCompare<C, with_id_map> { |
544 | | using T = typename C::T; |
545 | | using TI = typename C::TI; |
546 | | using RHC = ResultHandlerCompare<C, with_id_map>; |
547 | | using RHC::normalizers; |
548 | | using RHC::nq; |
549 | | |
550 | | RangeSearchResult& rres; |
551 | | float radius; |
552 | | std::vector<uint16_t> thresholds; |
553 | | std::vector<size_t> n_per_query; |
554 | | size_t q0 = 0; |
555 | | |
556 | | // we cannot use the RangeSearchPartialResult interface because queries can |
557 | | // be performed by batches |
558 | | struct Triplet { |
559 | | idx_t q; |
560 | | idx_t b; |
561 | | uint16_t dis; |
562 | | }; |
563 | | std::vector<Triplet> triplets; |
564 | | |
565 | | RangeHandler( |
566 | | RangeSearchResult& rres, |
567 | | float radius, |
568 | | size_t ntotal, |
569 | | const IDSelector* sel_in) |
570 | 0 | : RHC(rres.nq, ntotal, sel_in), rres(rres), radius(radius) { |
571 | 0 | thresholds.resize(nq); |
572 | 0 | n_per_query.resize(nq + 1); |
573 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers12RangeHandlerINS_4CMaxItlEELb1EEC2ERNS_17RangeSearchResultEfmPKNS_10IDSelectorE Unexecuted instantiation: _ZN5faiss20simd_result_handlers12RangeHandlerINS_4CMinItlEELb1EEC2ERNS_17RangeSearchResultEfmPKNS_10IDSelectorE |
574 | | |
575 | 0 | virtual void begin(const float* norms) override { |
576 | 0 | normalizers = norms; |
577 | 0 | for (int q = 0; q < nq; ++q) { |
578 | 0 | thresholds[q] = |
579 | 0 | int(normalizers[2 * q] * (radius - normalizers[2 * q + 1])); |
580 | 0 | } |
581 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers12RangeHandlerINS_4CMaxItlEELb1EE5beginEPKf Unexecuted instantiation: _ZN5faiss20simd_result_handlers12RangeHandlerINS_4CMinItlEELb1EE5beginEPKf |
582 | | |
583 | 0 | void handle(size_t q, size_t b, simd16uint16 d0, simd16uint16 d1) final { |
584 | 0 | if (this->disable) { |
585 | 0 | return; |
586 | 0 | } |
587 | 0 | this->adjust_with_origin(q, d0, d1); |
588 | |
|
589 | 0 | uint32_t lt_mask = this->get_lt_mask(thresholds[q], b, d0, d1); |
590 | |
|
591 | 0 | if (!lt_mask) { |
592 | 0 | return; |
593 | 0 | } |
594 | 0 | ALIGNED(32) uint16_t d32tab[32]; |
595 | 0 | d0.store(d32tab); |
596 | 0 | d1.store(d32tab + 16); |
597 | |
|
598 | 0 | if (this->sel != nullptr) { |
599 | 0 | while (lt_mask) { |
600 | | // find first non-zero |
601 | 0 | int j = __builtin_ctz(lt_mask); |
602 | 0 | lt_mask -= 1 << j; |
603 | |
|
604 | 0 | auto real_idx = this->adjust_id(b, j); |
605 | 0 | if (this->sel->is_member(real_idx)) { |
606 | 0 | T dis = d32tab[j]; |
607 | 0 | n_per_query[q]++; |
608 | 0 | triplets.push_back({idx_t(q + q0), real_idx, dis}); |
609 | 0 | } |
610 | 0 | } |
611 | 0 | } else { |
612 | 0 | while (lt_mask) { |
613 | | // find first non-zero |
614 | 0 | int j = __builtin_ctz(lt_mask); |
615 | 0 | lt_mask -= 1 << j; |
616 | 0 | T dis = d32tab[j]; |
617 | 0 | n_per_query[q]++; |
618 | 0 | triplets.push_back({idx_t(q + q0), this->adjust_id(b, j), dis}); |
619 | 0 | } |
620 | 0 | } |
621 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers12RangeHandlerINS_4CMaxItlEELb1EE6handleEmmNS_12simd16uint16ES5_ Unexecuted instantiation: _ZN5faiss20simd_result_handlers12RangeHandlerINS_4CMinItlEELb1EE6handleEmmNS_12simd16uint16ES5_ |
622 | | |
623 | 0 | void end() override { |
624 | 0 | memcpy(rres.lims, n_per_query.data(), sizeof(n_per_query[0]) * nq); |
625 | 0 | rres.do_allocation(); |
626 | 0 | for (auto it = triplets.begin(); it != triplets.end(); ++it) { |
627 | 0 | size_t& l = rres.lims[it->q]; |
628 | 0 | rres.distances[l] = it->dis; |
629 | 0 | rres.labels[l] = it->b; |
630 | 0 | l++; |
631 | 0 | } |
632 | 0 | memmove(rres.lims + 1, rres.lims, sizeof(*rres.lims) * rres.nq); |
633 | 0 | rres.lims[0] = 0; |
634 | |
|
635 | 0 | for (int q = 0; q < nq; q++) { |
636 | 0 | float one_a = 1 / normalizers[2 * q]; |
637 | 0 | float b = normalizers[2 * q + 1]; |
638 | 0 | for (size_t i = rres.lims[q]; i < rres.lims[q + 1]; i++) { |
639 | 0 | rres.distances[i] = rres.distances[i] * one_a + b; |
640 | 0 | } |
641 | 0 | } |
642 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers12RangeHandlerINS_4CMaxItlEELb1EE3endEv Unexecuted instantiation: _ZN5faiss20simd_result_handlers12RangeHandlerINS_4CMinItlEELb1EE3endEv |
643 | | }; |
644 | | |
645 | | #ifndef SWIG |
646 | | |
647 | | // handler for a subset of queries |
648 | | template <class C, bool with_id_map = false> |
649 | | struct PartialRangeHandler : RangeHandler<C, with_id_map> { |
650 | | using T = typename C::T; |
651 | | using TI = typename C::TI; |
652 | | using RHC = RangeHandler<C, with_id_map>; |
653 | | using RHC::normalizers; |
654 | | using RHC::nq, RHC::q0, RHC::triplets, RHC::n_per_query; |
655 | | |
656 | | RangeSearchPartialResult& pres; |
657 | | |
658 | | PartialRangeHandler( |
659 | | RangeSearchPartialResult& pres, |
660 | | float radius, |
661 | | size_t ntotal, |
662 | | size_t q0, |
663 | | size_t q1, |
664 | | const IDSelector* sel_in) |
665 | 0 | : RangeHandler<C, with_id_map>(*pres.res, radius, ntotal, sel_in), |
666 | 0 | pres(pres) { |
667 | 0 | nq = q1 - q0; |
668 | 0 | this->q0 = q0; |
669 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers19PartialRangeHandlerINS_4CMaxItlEELb1EEC2ERNS_24RangeSearchPartialResultEfmmmPKNS_10IDSelectorE Unexecuted instantiation: _ZN5faiss20simd_result_handlers19PartialRangeHandlerINS_4CMinItlEELb1EEC2ERNS_24RangeSearchPartialResultEfmmmPKNS_10IDSelectorE |
670 | | |
671 | | // shift left n_per_query |
672 | 0 | void shift_n_per_query() { |
673 | 0 | memmove(n_per_query.data() + 1, |
674 | 0 | n_per_query.data(), |
675 | 0 | nq * sizeof(n_per_query[0])); |
676 | 0 | n_per_query[0] = 0; |
677 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers19PartialRangeHandlerINS_4CMaxItlEELb1EE17shift_n_per_queryEv Unexecuted instantiation: _ZN5faiss20simd_result_handlers19PartialRangeHandlerINS_4CMinItlEELb1EE17shift_n_per_queryEv |
678 | | |
679 | | // commit to partial result instead of full RangeResult |
680 | 0 | void end() override { |
681 | 0 | std::vector<typename RHC::Triplet> sorted_triplets(triplets.size()); |
682 | 0 | for (int q = 0; q < nq; q++) { |
683 | 0 | n_per_query[q + 1] += n_per_query[q]; |
684 | 0 | } |
685 | 0 | shift_n_per_query(); |
686 | |
|
687 | 0 | for (size_t i = 0; i < triplets.size(); i++) { |
688 | 0 | sorted_triplets[n_per_query[triplets[i].q - q0]++] = triplets[i]; |
689 | 0 | } |
690 | 0 | shift_n_per_query(); |
691 | |
|
692 | 0 | size_t* lims = n_per_query.data(); |
693 | |
|
694 | 0 | for (int q = 0; q < nq; q++) { |
695 | 0 | float one_a = 1 / normalizers[2 * q]; |
696 | 0 | float b = normalizers[2 * q + 1]; |
697 | 0 | RangeQueryResult& qres = pres.new_result(q + q0); |
698 | 0 | for (size_t i = lims[q]; i < lims[q + 1]; i++) { |
699 | 0 | qres.add( |
700 | 0 | sorted_triplets[i].dis * one_a + b, |
701 | 0 | sorted_triplets[i].b); |
702 | 0 | } |
703 | 0 | } |
704 | 0 | } Unexecuted instantiation: _ZN5faiss20simd_result_handlers19PartialRangeHandlerINS_4CMaxItlEELb1EE3endEv Unexecuted instantiation: _ZN5faiss20simd_result_handlers19PartialRangeHandlerINS_4CMinItlEELb1EE3endEv |
705 | | }; |
706 | | |
707 | | #endif |
708 | | |
709 | | /******************************************************************************** |
710 | | * Dynamic dispatching function. The consumer should have a templatized method f |
711 | | * that will be replaced with the actual SIMDResultHandler that is determined |
712 | | * dynamically. |
713 | | */ |
714 | | |
715 | | template <class C, bool W, class Consumer, class... Types> |
716 | | void dispatch_SIMDResultHandler_fixedCW( |
717 | | SIMDResultHandler& res, |
718 | | Consumer& consumer, |
719 | 0 | Types... args) { |
720 | 0 | if (auto resh = dynamic_cast<SingleResultHandler<C, W>*>(&res)) { |
721 | 0 | consumer.template f<SingleResultHandler<C, W>>(*resh, args...); |
722 | 0 | } else if (auto resh_2 = dynamic_cast<HeapHandler<C, W>*>(&res)) { |
723 | 0 | consumer.template f<HeapHandler<C, W>>(*resh_2, args...); |
724 | 0 | } else if (auto resh_2 = dynamic_cast<ReservoirHandler<C, W>*>(&res)) { |
725 | 0 | consumer.template f<ReservoirHandler<C, W>>(*resh_2, args...); |
726 | 0 | } else { // generic handler -- will not be inlined |
727 | 0 | FAISS_THROW_IF_NOT_FMT( |
728 | 0 | simd_result_handlers_accept_virtual, |
729 | 0 | "Running vitrual handler for %s", |
730 | 0 | typeid(res).name()); |
731 | 0 | consumer.template f<SIMDResultHandler>(res, args...); |
732 | 0 | } |
733 | 0 | } Unexecuted instantiation: pq4_fast_scan_search_1.cpp:_ZN5faiss20simd_result_handlers34dispatch_SIMDResultHandler_fixedCWINS_4CMaxItiEELb1ENS_12_GLOBAL__N_123Run_pq4_accumulate_loopEJimiiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT1_DpT2_ Unexecuted instantiation: pq4_fast_scan_search_1.cpp:_ZN5faiss20simd_result_handlers34dispatch_SIMDResultHandler_fixedCWINS_4CMaxItiEELb0ENS_12_GLOBAL__N_123Run_pq4_accumulate_loopEJimiiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT1_DpT2_ Unexecuted instantiation: pq4_fast_scan_search_1.cpp:_ZN5faiss20simd_result_handlers34dispatch_SIMDResultHandler_fixedCWINS_4CMinItiEELb1ENS_12_GLOBAL__N_123Run_pq4_accumulate_loopEJimiiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT1_DpT2_ Unexecuted instantiation: pq4_fast_scan_search_1.cpp:_ZN5faiss20simd_result_handlers34dispatch_SIMDResultHandler_fixedCWINS_4CMinItiEELb0ENS_12_GLOBAL__N_123Run_pq4_accumulate_loopEJimiiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT1_DpT2_ Unexecuted instantiation: pq4_fast_scan_search_1.cpp:_ZN5faiss20simd_result_handlers34dispatch_SIMDResultHandler_fixedCWINS_4CMaxItlEELb1ENS_12_GLOBAL__N_123Run_pq4_accumulate_loopEJimiiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT1_DpT2_ Unexecuted instantiation: pq4_fast_scan_search_1.cpp:_ZN5faiss20simd_result_handlers34dispatch_SIMDResultHandler_fixedCWINS_4CMaxItlEELb0ENS_12_GLOBAL__N_123Run_pq4_accumulate_loopEJimiiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT1_DpT2_ Unexecuted instantiation: pq4_fast_scan_search_1.cpp:_ZN5faiss20simd_result_handlers34dispatch_SIMDResultHandler_fixedCWINS_4CMinItlEELb1ENS_12_GLOBAL__N_123Run_pq4_accumulate_loopEJimiiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT1_DpT2_ Unexecuted instantiation: pq4_fast_scan_search_1.cpp:_ZN5faiss20simd_result_handlers34dispatch_SIMDResultHandler_fixedCWINS_4CMinItlEELb0ENS_12_GLOBAL__N_123Run_pq4_accumulate_loopEJimiiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT1_DpT2_ Unexecuted instantiation: pq4_fast_scan_search_qbs.cpp:_ZN5faiss20simd_result_handlers34dispatch_SIMDResultHandler_fixedCWINS_4CMaxItiEELb1ENS_12_GLOBAL__N_127Run_pq4_accumulate_loop_qbsEJimiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT1_DpT2_ Unexecuted instantiation: pq4_fast_scan_search_qbs.cpp:_ZN5faiss20simd_result_handlers34dispatch_SIMDResultHandler_fixedCWINS_4CMaxItiEELb0ENS_12_GLOBAL__N_127Run_pq4_accumulate_loop_qbsEJimiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT1_DpT2_ Unexecuted instantiation: pq4_fast_scan_search_qbs.cpp:_ZN5faiss20simd_result_handlers34dispatch_SIMDResultHandler_fixedCWINS_4CMinItiEELb1ENS_12_GLOBAL__N_127Run_pq4_accumulate_loop_qbsEJimiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT1_DpT2_ Unexecuted instantiation: pq4_fast_scan_search_qbs.cpp:_ZN5faiss20simd_result_handlers34dispatch_SIMDResultHandler_fixedCWINS_4CMinItiEELb0ENS_12_GLOBAL__N_127Run_pq4_accumulate_loop_qbsEJimiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT1_DpT2_ Unexecuted instantiation: pq4_fast_scan_search_qbs.cpp:_ZN5faiss20simd_result_handlers34dispatch_SIMDResultHandler_fixedCWINS_4CMaxItlEELb1ENS_12_GLOBAL__N_127Run_pq4_accumulate_loop_qbsEJimiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT1_DpT2_ Unexecuted instantiation: pq4_fast_scan_search_qbs.cpp:_ZN5faiss20simd_result_handlers34dispatch_SIMDResultHandler_fixedCWINS_4CMaxItlEELb0ENS_12_GLOBAL__N_127Run_pq4_accumulate_loop_qbsEJimiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT1_DpT2_ Unexecuted instantiation: pq4_fast_scan_search_qbs.cpp:_ZN5faiss20simd_result_handlers34dispatch_SIMDResultHandler_fixedCWINS_4CMinItlEELb1ENS_12_GLOBAL__N_127Run_pq4_accumulate_loop_qbsEJimiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT1_DpT2_ Unexecuted instantiation: pq4_fast_scan_search_qbs.cpp:_ZN5faiss20simd_result_handlers34dispatch_SIMDResultHandler_fixedCWINS_4CMinItlEELb0ENS_12_GLOBAL__N_127Run_pq4_accumulate_loop_qbsEJimiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT1_DpT2_ |
734 | | |
735 | | template <class C, class Consumer, class... Types> |
736 | | void dispatch_SIMDResultHandler_fixedC( |
737 | | SIMDResultHandler& res, |
738 | | Consumer& consumer, |
739 | 0 | Types... args) { |
740 | 0 | if (res.with_fields) { |
741 | 0 | dispatch_SIMDResultHandler_fixedCW<C, true>(res, consumer, args...); |
742 | 0 | } else { |
743 | 0 | dispatch_SIMDResultHandler_fixedCW<C, false>(res, consumer, args...); |
744 | 0 | } |
745 | 0 | } Unexecuted instantiation: pq4_fast_scan_search_1.cpp:_ZN5faiss20simd_result_handlers33dispatch_SIMDResultHandler_fixedCINS_4CMaxItiEENS_12_GLOBAL__N_123Run_pq4_accumulate_loopEJimiiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT0_DpT1_ Unexecuted instantiation: pq4_fast_scan_search_1.cpp:_ZN5faiss20simd_result_handlers33dispatch_SIMDResultHandler_fixedCINS_4CMinItiEENS_12_GLOBAL__N_123Run_pq4_accumulate_loopEJimiiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT0_DpT1_ Unexecuted instantiation: pq4_fast_scan_search_1.cpp:_ZN5faiss20simd_result_handlers33dispatch_SIMDResultHandler_fixedCINS_4CMaxItlEENS_12_GLOBAL__N_123Run_pq4_accumulate_loopEJimiiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT0_DpT1_ Unexecuted instantiation: pq4_fast_scan_search_1.cpp:_ZN5faiss20simd_result_handlers33dispatch_SIMDResultHandler_fixedCINS_4CMinItlEENS_12_GLOBAL__N_123Run_pq4_accumulate_loopEJimiiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT0_DpT1_ Unexecuted instantiation: pq4_fast_scan_search_qbs.cpp:_ZN5faiss20simd_result_handlers33dispatch_SIMDResultHandler_fixedCINS_4CMaxItiEENS_12_GLOBAL__N_127Run_pq4_accumulate_loop_qbsEJimiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT0_DpT1_ Unexecuted instantiation: pq4_fast_scan_search_qbs.cpp:_ZN5faiss20simd_result_handlers33dispatch_SIMDResultHandler_fixedCINS_4CMinItiEENS_12_GLOBAL__N_127Run_pq4_accumulate_loop_qbsEJimiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT0_DpT1_ Unexecuted instantiation: pq4_fast_scan_search_qbs.cpp:_ZN5faiss20simd_result_handlers33dispatch_SIMDResultHandler_fixedCINS_4CMaxItlEENS_12_GLOBAL__N_127Run_pq4_accumulate_loop_qbsEJimiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT0_DpT1_ Unexecuted instantiation: pq4_fast_scan_search_qbs.cpp:_ZN5faiss20simd_result_handlers33dispatch_SIMDResultHandler_fixedCINS_4CMinItlEENS_12_GLOBAL__N_127Run_pq4_accumulate_loop_qbsEJimiPKhS7_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT0_DpT1_ |
746 | | |
747 | | template <class Consumer, class... Types> |
748 | | void dispatch_SIMDResultHandler( |
749 | | SIMDResultHandler& res, |
750 | | Consumer& consumer, |
751 | 0 | Types... args) { |
752 | 0 | if (res.sizeof_ids == 0) { |
753 | 0 | if (auto resh = dynamic_cast<StoreResultHandler*>(&res)) { |
754 | 0 | consumer.template f<StoreResultHandler>(*resh, args...); |
755 | 0 | } else if (auto resh_2 = dynamic_cast<DummyResultHandler*>(&res)) { |
756 | 0 | consumer.template f<DummyResultHandler>(*resh_2, args...); |
757 | 0 | } else { // generic path |
758 | 0 | FAISS_THROW_IF_NOT_FMT( |
759 | 0 | simd_result_handlers_accept_virtual, |
760 | 0 | "Running vitrual handler for %s", |
761 | 0 | typeid(res).name()); |
762 | 0 | consumer.template f<SIMDResultHandler>(res, args...); |
763 | 0 | } |
764 | 0 | } else if (res.sizeof_ids == sizeof(int)) { |
765 | 0 | if (res.is_CMax) { |
766 | 0 | dispatch_SIMDResultHandler_fixedC<CMax<uint16_t, int>>( |
767 | 0 | res, consumer, args...); |
768 | 0 | } else { |
769 | 0 | dispatch_SIMDResultHandler_fixedC<CMin<uint16_t, int>>( |
770 | 0 | res, consumer, args...); |
771 | 0 | } |
772 | 0 | } else if (res.sizeof_ids == sizeof(int64_t)) { |
773 | 0 | if (res.is_CMax) { |
774 | 0 | dispatch_SIMDResultHandler_fixedC<CMax<uint16_t, int64_t>>( |
775 | 0 | res, consumer, args...); |
776 | 0 | } else { |
777 | 0 | dispatch_SIMDResultHandler_fixedC<CMin<uint16_t, int64_t>>( |
778 | 0 | res, consumer, args...); |
779 | 0 | } |
780 | 0 | } else { |
781 | 0 | FAISS_THROW_FMT("Unknown id size %d", res.sizeof_ids); |
782 | 0 | } |
783 | 0 | } Unexecuted instantiation: pq4_fast_scan_search_1.cpp:_ZN5faiss20simd_result_handlers26dispatch_SIMDResultHandlerINS_12_GLOBAL__N_123Run_pq4_accumulate_loopEJimiiPKhS5_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT_DpT0_ Unexecuted instantiation: pq4_fast_scan_search_qbs.cpp:_ZN5faiss20simd_result_handlers26dispatch_SIMDResultHandlerINS_12_GLOBAL__N_127Run_pq4_accumulate_loop_qbsEJimiPKhS5_PKNS_15NormTableScalerEEEEvRNS_17SIMDResultHandlerERT_DpT0_ |
784 | | |
785 | | } // namespace simd_result_handlers |
786 | | |
787 | | } // namespace faiss |