Вы не можете измерить ошибку с дробными ULP в той же системе нумерации, к которой применяется ULP.Но вы можете, например, если вы вычисляете значение float
, но используете double
для промежуточных вычислений.В этом случае двойное значение будет (более) точным значением, а число с плавающей точкой будет округленным значением.Разница между ними будет меньше, чем ULP для чисел с плавающей запятой.
Это относится к Math.sinh()
, потому что это часть API основного языка, и поэтому Javadoc служит спецификацией, которой должны придерживаться все совместимые реализациик.Реализация JDK Oracle делегирует вычисления нативному методу.По сути, Javadoc говорит: «Вы можете свободно внедрять этот метод, однако выбираете, если можете гарантировать, что он всегда возвращает достаточно хорошее значение».