dist_t getDistanceByLabels()

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_);
  }