protected boolean scoreCluster(LSHVectorFactory vectorFactory,
		List<DescriptionManager> vec2Functions, List<VectorResult> vectors,
		int hitcount, int pairThreshold) {
		List<FunctionPair> pairs =
			pairFunctions(vectorFactory, vec2Functions, vectors, hitcount, pairThreshold);
		if (pairs == null) {
			return false;
		}
		Collections.sort(pairs);
		int i = 0;
		while (i < pairs.size()) {
			ExecutableRecord rec1 = pairs.get(i).funcA.getExecutableRecord();
			ExecutableRecord rec2 = pairs.get(i).funcB.getExecutableRecord();
			int j = i + 1;
			while (j < pairs.size()) {
				FunctionPair currentPair = pairs.get(j);
				if (!rec2.equals(currentPair.funcB.getExecutableRecord()) ||
					!rec1.equals(currentPair.funcA.getExecutableRecord())) {
					break;
				}
				j += 1;
			}
			scoreAcrossExecutablePair(pairs, i, j);
			i = j;
		}
		return true;
	}
Given a cluster of vectors, the set of functions associated with each vector,
a similarity threshold, and total number of functions in the cluster,
let each pair of function contribute to the score matrix
@param vectorFactory is a factory for computing significance scores
@param vec2Functions is the list of sets of functions
@param vectors is the list of vectors
@param hitcount is the number of functions in the cluster
@param pairThreshold is maximum number of pairs allowed
@return true if the number of pairs was not exceeded
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/client/ExecutableScorer.java