/**
   * Make the experiment jobs
   *
   * @param entries the entries
   * @param data the data
   * @param logger the logger
   * @return the jobs, or {@code null} if none were found
   * @throws Exception if something goes wrong
   */
  private static final _PseudoJob[] __makeExperimentsJobs(
      final ArrayList<_ModuleEntry> entries, final IExperimentSet data, final Logger logger)
      throws Exception {
    final int size;
    final ArrayListView<? extends IExperiment> list;
    final _PseudoJob[] singleExperiments;
    IExperiment experiment;
    int i;

    if ((entries == null) || (entries.size() <= 0)) {
      return null;
    }

    if ((data == null) || ((list = data.getData()) == null) || ((size = list.size()) <= 0)) {
      return null;
    }

    singleExperiments = new _PseudoJob[size];
    for (i = size; (--i) >= 0; ) {
      experiment = list.get(i);
      singleExperiments[i] =
          new _ExperimentJob(
              experiment,
              data,
              logger,
              _ModuleEntry.__makeExperimentJobs(entries, experiment, logger));
    }

    return singleExperiments;
  }
  /**
   * 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);
  }