następny wyższy / niższy numer podwójnej precyzji IEEE

Robię obliczenia naukowe o wysokiej precyzji. Szukając najlepszej reprezentacji różnych efektów, wymyślam powody, by chcieć uzyskać kolejną wyższą (lub niższą) liczbę podwójnej precyzji. Zasadniczo chcę dodać jeden do najmniej znaczącego bitu w wewnętrznej reprezentacji podwójnego.

Trudność polega na tym, że format IEEE nie jest całkowicie jednolity. Gdyby użyć kodu niskiego poziomu i faktycznie dodać jeden do najmniej znaczącego bitu, wynikowy format może nie być kolejnym dostępnym podwójnym. Może to być na przykład specjalny numer sprawy, taki jak PositiveInfinity lub NaN. Istnieją także wartości poniżej normalnych, których nie twierdzę, że są zrozumiałe, ale które wydają się mieć określone wzorce bitowe inne niż „normalny” wzór.

Dostępna jest wartość „epsilon”, ale nigdy nie zrozumiałem jej definicji. Ponieważ podwójne wartości nie są równomiernie rozmieszczone, żadna pojedyncza wartość nie może zostać dodana do podwójnej wartości, aby uzyskać następną wyższą wartość.

Naprawdę nie rozumiem, dlaczego IEEE nie określił funkcji, aby uzyskać następną wyższą lub niższą wartość. Nie mogę być jedynym, który tego potrzebuje.

Czy istnieje sposób na uzyskanie następnej wartości (bez jakiejś pętli, która próbuje dodać coraz mniejsze wartości).

questionAnswers(6)

yourAnswerToTheQuestion