code: public static double checkInvariantD(
      final double value,
      final DoublePredicate predicate,
      final DoubleFunction<String> describer)
    {
      final boolean ok;
      try {
        ok = predicate.test(value);
      } catch (final Throwable e) {
        final Violations violations = singleViolation(failedPredicate(e));
        throw new InvariantViolationException(
          failedMessage(Double.valueOf(value), violations), e, violations.count());
      }
  
      return innerCheckInvariantD(value, ok, describer);
    }
docs: A {@code double} specialized version of {@link #checkInvariant(Object,
  Predicate, Function)}
  
  @param value     The value
  @param predicate The predicate
  @param describer The describer of the predicate
  
  @return value
  
  @throws InvariantViolationException If the predicate is false