void compareIndices(const std::vector<float>& queryVecs, faiss::Index& refIndex, faiss::Index& testIndex, int numQuery, int dim, int k, const std::string& configMsg, float maxRelativeError, float pctMaxDiff1, float pctMaxDiffN) { // Compare std::vector<float> refDistance(numQuery * k, 0); std::vector<faiss::Index::idx_t> refIndices(numQuery * k, -1); refIndex.search(numQuery, queryVecs.data(), k, refDistance.data(), refIndices.data()); std::vector<float> testDistance(numQuery * k, 0); std::vector<faiss::Index::idx_t> testIndices(numQuery * k, -1); testIndex.search(numQuery, queryVecs.data(), k, testDistance.data(), testIndices.data()); faiss::gpu::compareLists(refDistance.data(), refIndices.data(), testDistance.data(), testIndices.data(), numQuery, k, configMsg, true, false, true, maxRelativeError, pctMaxDiff1, pctMaxDiffN); }
void PannerNode::setRefDistance(double distance) { if (refDistance() == distance) return; // This synchronizes with process(). MutexLocker processLocker(m_processLock); m_distanceEffect.setRefDistance(distance); markPannerAsDirty(PannerNode::DistanceConeGainDirty); }