code: public UBench addDoubleTask(String name, DoubleSupplier task, DoublePredicate check) {
          return putTask(name, () -> {
              long start = System.nanoTime();
              double result = task.getAsDouble();
              long time = System.nanoTime() - start;
              if (check != null && !check.test(result)) {
                  throw new UBenchRuntimeException(String.format("Task %s failed Result: %f", name, result));
              }
              return time;
          });
      }
docs: Include a double-specialized named task (and validator) in to the
  benchmark.
  
  @param name
  The name of the task. Only one task with any one name is
  allowed.
  @param task
  The task to perform
  @param check
  The check of the results from the task.
  @return The same object, for chaining calls.