/**
   * Compute the aggregate per experiment set
   *
   * @param data the data
   * @return the aggregated data
   */
  private final IMatrix __computeExperimentSet(final IExperimentSet data) {
    final ArrayList<IMatrix> matrices;

    matrices = new ArrayList<>();
    for (final IExperiment exp : data.getData()) {
      for (final IInstanceRuns irs : exp.getData()) {
        matrices.add(this.__computeInstanceRuns(irs));
      }
    }

    return this.m_aggregate.aggregate2D(matrices, 0, 1, Identity.INSTANCE);
  }
  /**
   * Compute the aggregate per experiment
   *
   * @param data the data
   * @return the aggregated data
   */
  private final IMatrix __computeExperiment(final IExperiment data) {
    final IMatrix[] matrices;
    final ArrayListView<? extends IInstanceRuns> runs;
    int i;

    runs = data.getData();
    i = runs.size();
    matrices = new IMatrix[i];

    for (; (--i) >= 0; ) {
      matrices[i] = this.__computeInstanceRuns(runs.get(i));
    }

    return this.m_aggregate.aggregate2D(matrices, 0, 1, Identity.INSTANCE);
  }