@Override
		public int compareTo(FunctionPair o) {
			int comp = Integer.compare(funcA.getExecutableRecord().getXrefIndex(),
				o.funcA.getExecutableRecord().getXrefIndex());
			if (comp != 0) {		// Compare first by side A executable
				return comp;
			}
			comp = Integer.compare(funcB.getExecutableRecord().getXrefIndex(),
				o.funcB.getExecutableRecord().getXrefIndex());
			if (comp != 0) {		// Compare second by side B executable
				return comp;
			}
			comp = Double.compare(similarity, o.similarity);
			if (comp != 0) {
				return -comp;		// Compare third by similarity, bigger comes earlier
			}
			comp = Long.compare(funcA.getAddress(), o.funcA.getAddress());
			if (comp != 0) {		// Compare fourth by address of side A function
				return comp;
			}
			comp = Long.compare(funcB.getAddress(), o.funcB.getAddress());
			return comp;			// Compare last by address of side B function
		}
Container for a pair of FunctionDescriptions, possibly from different DescriptionManagers
along with similarity/significance information
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/client/ExecutableScorer.java