code: private double[] energyVector(double[][] distanceMatrix) {
      // Ignore the set (maxSize + 1)'th archive member since it's the new
      // solution that is tested for eligibility of replacement.
      double[] energyVector = new double[distanceMatrix.length - 1];
      for (int i = 0; i < energyVector.length - 1; i++) {
        for (int j = i + 1; j < energyVector.length; j++) {
          energyVector[i] += scalarization.getAttribute(archive.get(j)) / distanceMatrix[i][j];
          energyVector[j] += scalarization.getAttribute(archive.get(i)) / distanceMatrix[i][j];
        }
        energyVector[i] *= scalarization.getAttribute(archive.get(i));
      }
      return energyVector;
    }
docs: Computes the energy contribution of each archive member. Note that the
  archive member at position maxSize + 1 is the new solution that is tested
  for eligibility of replacement.
  
  @param distanceMatrix Distance between archive members
  @return The amount of energy that each member contributes to the archive.