code: protected double getGain(ImpurityScore origScore, ClassificationDataSet source, List<IntList> aSplit)
      {
          
          ImpurityScore[] scores = getSplitScores(source, aSplit);
         
          return ImpurityScore.gain(origScore, scores);
      }
docs: From the score for the original set that is being split, this computes
  the gain as the improvement in classification from the original split.
  @param origScore the score of the unsplit set
  @param source
  @param aSplit the splitting of the data points
  @return the gain score for this split