Войти
ФлеймФорумОбщее

Как у вас дела с движками? (59 стр)

Страницы: 158 59 60 61124 Следующая »
#870
16:16, 5 апр. 2019

Ivashka
А ты думал, что движок это аки сказочный пегас?
Движох это и есть все эти утиэф8, std::to_string и прочее.


#871
16:18, 5 апр. 2019

beejah
> Для round-trip correctly-rounded (на уровне представления чисел) не достаточно.
Что такое "на уровне представления чисел"? Correctly-rounded - это свойство функций (преобразований), а не представлений.
В общем случае - да, недостаточно. Ну т. е. очевидно, точность участвующих типов влияет.
Конкретно в float->string->float, кстати, достаточно, в случае string неограниченного размера (там что-то около 40к максимум, на практике), но это так, к слову; на практике дампить точное десятичное значение плавучки - это особое развлечение.
Т. е. round-trip требует промежуточный тип "достаточного размера", да.
Можно найти точность промежуточной десятички которой достаточно (9 и 17 десятичных значащих цифр для float и double соответственно).
Для decimal->float->decimal будет round-trip для всех шестизнаков (decimal), насколько я помню.

> У тебя вполне себе представимые и детерминированные числа могут превратить прикладную систему в осциллятор только так.
Эм, какое это имеет отношение конкретно к string<->float?

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

> Т.е на самом деле то - задача тот еще хардкор.
А ещё, она несколько раз решена, и существуют готовые реализации.

#872
(Правка: 16:24) 16:20, 5 апр. 2019

Как вообще так получилось, что быстрый как понос locale-independent, non-allocating, and non-throwing std::to_chars работает с даблами только в богомерзкой студии, а в GCC/Clang можно только 42 им преобразовать. Что они себе позволяют?!

#873
(Правка: 16:35) 16:35, 5 апр. 2019

Ivashka
Это и есть процесс движкописания, сделать все по уму, а не "як як и в продахшн".

#874
16:36, 5 апр. 2019
ключевая фраза "ДвижкоПисание", ударение каждый ставит, где хочет )
#875
16:37, 5 апр. 2019

entryway
> non-allocating
Насколько я помню, отсутствие временных аллокаций внутри не гарантируется. Т. е. это только про возврат результата.

beejah
> у которого сегодня это число - 1.0, завтра - 0.999999, и всегда "это разные числа, они же пишутся по разному!!! дайте мне детерминизм!!!".
Вот когда введёт целиком 0.9999999... - тогда пусть и жалуется.

#876
16:38, 5 апр. 2019

nes
> сделать все по уму
А т.к. это невозможно по определению, то служит хорошей отмазкой для всякого рода ниосиляторов (вторая фаза форумной деградации).

#877
16:43, 5 апр. 2019

Ivashka
Обычно после як як уже нет никакого желания браться за старое.

gudleifr
Чаще всего да, но не в моем случае, конечно )

#878
(Правка: 16:47) 16:45, 5 апр. 2019

FordPerfect
> А ещё, она несколько раз решена, и существуют готовые реализации.
Вот ты сам ничего предрассудительного в этом утверждении не находишь? Я нахожу.

> Вот когда введёт целиком 0.9999999... - тогда пусть и жалуется.
К сожалению, флоты, которые только вводятся и выводятся, никому даром не нужны.
И ограничения вида "можно делить единицу на три, но умножать результат этого деления на три ни в коем случае нельзя!!!" правомочно сворачиваются в трубочку и запихиваются в задницу.

А потом просто пишется class Rational, и вся эта несколько раз решенная бесполезная плавающая чушь выкидывается на помойку за ненадобностью.
#879
16:50, 5 апр. 2019

Кстати, если кому интересно, текущая спека для printf/scanf (Annex F Стандарта C) отсылает к IEEE-754 (естественно, в предположении, что у нас именно он), который говорит, что  гарантируется correctly-rounded для всех десятичных не более H+3 знаков, где H - минимальное количество, достаточное для round-trip.

#880
(Правка: 17:01) 16:52, 5 апр. 2019

Калькулятор в режиме "для домохозяек". Тоже написали свой движок, между прочим.

Изображение

#881
17:00, 5 апр. 2019

beejah
> Вот ты сам ничего предрассудительного в этом утверждении не находишь? Я нахожу.
Гм, а чего? Сам факт существования нескольких реализаций? Так это может быть по куче причин, например лицензионной несовместимости.

> А потом просто пишется class Rational, и вся эта несколько раз решенная бесполезная плавающая чушь выкидывается на помойку за ненадобностью.
"А потом изобрели аспирин. Популярное лекарство от того, от чего помогает аспирин." (c)
Как оно помогает от sin(Rational) - неочевидно.
Вон и в Microsoft есть: https://twitter.com/fatlimey/status/1104155156713594880 .

Так-то в Scheme, насколько помню, всё на Rational, благо плавучка - его частный случай.

#882
17:09, 5 апр. 2019

FordPerfect
Вот именно.

#883
18:54, 5 апр. 2019

nes
> Чаще всего да, но не в моем случае, конечно

Игра, повторю, это:

Изображение

И Ваш движок - это только высосанный из пальца предпоследний столбец. Набор кубиков для висящей в воздухе Машины #999. Любая попытка прицепить эту Машину к игре приведет к отправке движка на свалку.

#884
19:20, 5 апр. 2019

Ivashka
Ты сводишь все к коммерции, в таком движке не будет души.

gudleifr
Это я засарказмил немного, я то понимаю, что сейчас из моего движка даже суп не сварить.
Если я когда-нибудь доведу его до состояния какого-нибудь HGE, то считаю можно начать пилить марьё.

Страницы: 158 59 60 61124 Следующая »
ФлеймФорумОбщее