docs: @javax.annotation.Nonnull
    public Bounds getBounds(@javax.annotation.Nonnull double[][] points) {
      int dim = points[0].length;
      double[] max = IntStream.range(0, dim).mapToDouble(d -> {
        return Arrays.stream(points).mapToDouble(pt -> pt[d]).filter(x -> Double.isFinite(x)).max().orElse(Double.NaN);
      }).toArray();
      double[] min = IntStream.range(0, dim).mapToDouble(d -> {
        return Arrays.stream(points).mapToDouble(pt -> pt[d]).filter(x -> Double.isFinite(x)).min().orElse(Double.NaN);
      }).toArray();
      return new Bounds(max, min);
    }