private static double adjustConfidenceScore(double conf, FunctionNode a, FunctionNode b) {
		final int childrenSize = b.getChildren().size();
		double ratio = (childrenSize == 0 ? 0 : (double) a.getChildren().size() / childrenSize);
		final double kidRatio = Math.min(ratio, 1 / ratio);
		final int parentsSize = b.getParents().size();
		ratio = (parentsSize == 0 ? 0 : (double) a.getParents().size() / parentsSize);
		final double rentRatio = Math.min(ratio, 1 / ratio);

		ratio = (double) a.getLen() / b.getLen();
		final double lenRatio = Math.min(ratio, 1 / ratio);
		return 0.25 * conf * lenRatio * (1 + kidRatio) * (1 + rentRatio);
	}
Adjust an original confidence score between functions -a- and -b-
based on the likelihood of children matching and parents matching.
@param conf is the original confidence
@param a is one side of the function pair
@param b is the other side
@return the adjusted score
Ghidra/Features/VersionTrackingBSim/src/main/java/ghidra/feature/vt/api/BSimProgramCorrelatorMatching.java