Дополнительные форматы чисел с плавающей точкой

eabesea
eabesea

Числа четверной и половинной точности уже поддерживаются некоторыми компиляторами (например __float128 и __fp16 в gcc). Существуют также софтверные библиотеки для поддержки расширенных типов: например Berkeley SoftFloat или half.  Использование библитек для чисел произвольной точности ради 128-биных чисел с плавающей точкой кажется оверкиллом.

Повышенная (четверная или даже восьмерная) точность нередко нужна в научных рассчетах (например, в физике), в то время как числа половинной точности могут улучшить производительность, даже если хардверной поддержки нет, и в последнее время часто используются, например, в нейронных сетях.

5
рейтинг
3 комментария
yndx-antoshkka
Есть предложение на fp16 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0192r0.pdf

Обсудили в Коне, людям понравилось, отправили в EWG.

float128 на последнем собрании не обсуждали, но есть вот такое предложение http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3626.pdf . Если появится кто-nо, кто напишет прототип наподобие прототипа из https://stdcpp.ru/proposals/531b7d66-037b-48b7-8262-eb9c0c1f7535 но для floating-point, то с радостью помогу с написанием proposal.
yndx-antoshkka
yndx-antoshkka
short float обсуждали в Альбукерке, отправили на доработку - хочется чтобы short float работал на экзотических платформах, где в байте не 8 бит.
yndx-antoshkka
Матвей Корнилов

Не следует ли добавить поддержку чисел четверной точности сначала в язык C, а затем унаследовать её оттуда? Не получится ли иначе, что мы будем в конечном счете иметь в C и C++ две различные реализации чисел четверной точности. Не вызовет ли это потом какие-то неожиданные проблемы для людей которые захотят линковать свой код на C++ с чужими библиотеками на C, которые оба используют в четверной точности?

Матвей Корнилов
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения