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