docs: public static void doubleCenterMatrix(double[] dMatrix, int size) {
      double[] rowMean = new double[size];
      // row sum
      for(int i = 0, c = 0; i < size; i++) {
        for(int j = 0; j < i; j++) {
          double v = dMatrix[c++];
          rowMean[i] += v;
          rowMean[j] += v;
        }
        assert (dMatrix[c] == 0.);
        c++; // Diagonal entry. Must be zero!
      }
      // Normalize averages:
      double matrixMean = 0.;
      for(int i = 0; i < size; i++) {
        matrixMean += rowMean[i];
        rowMean[i] /= size;
      }
      matrixMean /= size * size;
  
      for(int o = 0, c = 0; o < size; o++) {
        // Including row mean!
        for(int p = 0; p <= o; p++) {
          dMatrix[c++] -= rowMean[o] + rowMean[p] - matrixMean;
        }
      }
    }