Spec-Zone.ru › Nim

std/private/schubfach

Источник Редактировать

Авторское право 2020 Александр Больц

Распространяется по лицензии Boost Software License, версия 1.0. (См. прилагаемый файл LICENSE_1_0.txt или копию по адресу https://www.boost.org/LICENSE_1_0.txt)

В этом файле реализован алгоритм Schubfach, как описано в

[1] Рафаэлло Джулиетти, «Способ Schubfach для отображения чисел с плавающей точкой», https://drive.google.com/open?id=1luHhyQF9zKlM8yJ1nebU0OgVYhfC6CBN

Возвращает целую часть от (x / 2n).

Технически, сдвиг вправо отрицательных целых чисел определяется реализацией... Должно быть легко оптимизировано в инструкцию SAR (или эквивалент).

Возвращает целую часть от log10(2e)

static inline int32_t FloorLog10Pow2(int32_t e)
{
    SF_ASSERT(e >= -1500);
    SF_ASSERT(e <=  1500);
    return FloorDivPow2(e * 1262611, 22);
}
Возвращает целую часть от log10(3/4 2e)
static inline int32_t FloorLog10ThreeQuartersPow2(int32_t e)
{
    SF_ASSERT(e >= -1500);
    SF_ASSERT(e <=  1500);
    return FloorDivPow2(e * 1262611 - 524031, 22);
}
Возвращает целую часть от log2(10e) Возвращает, делится ли значение на 2e2

ToChars

Импорты

digitsutils

Процедуры

proc float32ToChars(buffer: var openArray[char]; v: float32;
                    forceTrailingDotZero = false): int {.inline, ...raises: [],
    tags: [], forbids: [].}
Источник Редактировать

© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/schubfach.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API