in cpp/src/hnswalg.h [993:1009]
dist_t getDistanceByLabels(labeltype labelA, labeltype labelB) {
tableint internalIDA, internalIDB;
auto search = label_lookup_.find(labelA);
if (search == label_lookup_.end() || isMarkedDeleted(search->second)) {
throw std::runtime_error("Label not found");
}
internalIDA = search->second;
search = label_lookup_.find(labelB);
if (search == label_lookup_.end() || isMarkedDeleted(search->second)) {
throw std::runtime_error("Label not found");
}
internalIDB = search->second;
return fstdistfunc_(getDataByInternalId(internalIDA),
getDataByInternalId(internalIDB), dist_func_param_);
}