code: public final void scoreTreeRange(double[] row, int fromIndex, int toIndex, double[] preds) {
          final int clOffset = _nclasses == 1 ? 0 : 1;
          for (int classIndex = 0; classIndex < _ntrees_per_group; classIndex++) {
              int k = clOffset + classIndex;
              int itree = treeIndex(fromIndex, classIndex);
              for (int groupIndex = fromIndex; groupIndex < toIndex; groupIndex++) {
                  if (_compressed_trees[itree] != null) { // Skip all empty trees
                    preds[k] += _scoreTree.scoreTree(_compressed_trees[itree], row, false, _domains);
                  }
                  itree++;
              }
          }
      }
docs: Generates (partial, per-class) predictions using only trees from a given range.
  @param row input row
  @param fromIndex low endpoint (inclusive) of the tree range
  @param toIndex high endpoint (exclusive) of the tree range
  @param preds array of partial predictions.
  To get final predictions pass the result to {@link SharedTreeMojoModel#unifyPreds}.