docs: public static List<double[]> op(@javax.annotation.Nonnull final List<double[]> a, @javax.annotation.Nonnull final List<double[]> b, @javax.annotation.Nonnull final DoubleBinaryOperator fn) {
      assert a.size() == b.size();
      return IntStream.range(0, a.size()).parallel().mapToObj(i -> {
        assert a.get(i).length == b.get(i).length;
        @javax.annotation.Nonnull final double[] c = new double[a.get(i).length];
        for (int j = 0; j < a.get(i).length; j++) {
          c[j] = fn.applyAsDouble(a.get(i)[j], b.get(i)[j]);
        }
        return c;
      }).collect(Collectors.toList());
    }