Я занимаюсь высокоточными научными вычислениями. В поисках лучшего представления различных эффектов, я продолжаю придумывать причины, чтобы получить следующий более высокий (или более низкий) номер двойной точности. По сути, я хочу добавить один из наименее значимых бит во внутреннее представление двойника.следующий более высокий/нижний номер IEEE двойной точности
Сложность в том, что формат IEEE не является полностью однородным. Если бы кто-то использовал низкоуровневый код и фактически добавлял один из наименее значимых бит, результирующий формат мог бы не быть следующим доступным двойным. Например, это может быть номер специального случая, например PositiveInfinity или NaN. Существуют также суб нормальные значения, которые я не утверждаю, чтобы понять, но которые, похоже, имеют определенные битовые шаблоны, отличные от «нормального» шаблона.
Значение «эпсилон» доступно, но я никогда не понимал его определения. Поскольку двойные значения не равномерно распределены, ни одно значение не может быть добавлено к двойному, чтобы привести к следующему более высокому значению.
Я действительно не понимаю, почему IEEE не указала функцию для получения следующего более высокого или более низкого значения. Я не могу быть единственным, кому это нужно.
Есть ли способ получить следующее значение (без какого-либо цикла, который пытается добавить меньшие и меньшие значения).
IEEE-754 * указал * такие функции - 'nextUp' и' nextDown', как требуется в разделе 5.3.1 пересмотренного стандарта (2008), и более раннюю функцию 'nextafter', рекомендованную оригиналом (1985) стандарт и требуется на C99. –