docs: public final void scoreCrossValidation(Job.ValidatedJob job, Frame source, Vec response, Frame[] cv_preds, long[] offsets) {
      assert(offsets[0] == 0);
      assert(offsets[offsets.length-1] == source.numRows());
  
      //Hack to make a frame with the correct dimensions and vector group
      Frame cv_pred = score(source);
  
      // Stitch together the content of cv_pred from cv_preds
      for (int i=0; i<cv_preds.length; ++i) {
        // stitch probabilities (or regression values)
        for (int c=(isClassifier() ? 1 : 0); c<cv_preds[i].numCols(); ++c) {
          Vec.Writer vw = cv_pred.vec(c).open();
          try {
            for (long r=0; r < cv_preds[i].numRows(); ++r) {
              vw.set(offsets[i] + r, cv_preds[i].vec(c).at(r));
            }
          } finally {
            vw.close();
          }
        }
        if (isClassifier()) {
          // make labels
          float[] probs = new float[cv_preds[i].numCols()];
          Vec.Writer vw = cv_pred.vec(0).open();
          try {
            for (long r = 0; r < cv_preds[i].numRows(); ++r) {
              //probs[0] stays 0, is not used in getPrediction
              for (int c = 1; c < cv_preds[i].numCols(); ++c) {
                probs[c] = (float) cv_preds[i].vec(c).at(r);
              }
              final int label = ModelUtils.getPrediction(probs, (int)r);
              vw.set(offsets[i] + r, label);
            }
          } finally {
            vw.close();
          }
        }
      }
  
      // Now score the model on the N folds
      try {
        AUC auc = nclasses() == 2 ? new AUC() : null;
        water.api.ConfusionMatrix cm = new water.api.ConfusionMatrix();
        HitRatio hr = isClassifier() ? new HitRatio() : null;
        double cv_error = calcError(source, response, cv_pred, cv_pred, "cross-validated", true, 10, cm, auc, hr);
        setCrossValidationError(job, cv_error, cm, auc == null ? null : auc.data(), hr);
      } finally {
        // cleanup temporary frame wit predictions
        cv_pred.delete();
      }
    }