[C++] Существует ли реализация операций IEEE-754 с открытым исходным кодом c / c ++?


Answers

Я должен вас разочаровать: практически нет.

Хотя технически существуют совместимые с IEEE-754 системы, поскольку они не реализуют необязательные функции, описанные в стандарте, эталонная реализация, позволяющая

  • доступ ко всем режимам округления
  • поддержка сигналов NaNs
  • поддержка захвата всех пяти ловушек

не существует на стандартных языках. Это вызывает повторяющиеся беды Уильяма Кахана, основной силы стандарта и его адаптации к процессорам Intel.

Я не знаю, есть ли какие-то эзотерические языки, которые их поддерживают, но я могу исключить Java, C #, C ++, Fortran.

EDIT: Несмотря на отсутствие поддержки компилятора, я рекомендую реализацию Hausers SoftFloat, данную mctylr. Хаузер знает, что он делает.

http://portal.acm.org/citation.cfm?id=227699.227701&coll=portal&dl=ACM&CFID=77938829&CFTOKEN=18578907

Question

Я ищу справочную реализацию операций IEEE-754. Что-то подобное существует?




одна работа для вас может быть python. python имеет функцию, которая может конвертировать IEEE-754 32/64 бит точности HEX с плавающей точкой

   import struct
   struct.unpack('!f', '41973333'.decode('hex'))[0]

Вы можете либо написать приложение в python, либо просто создать функцию python и вызвать его в C / C ++

Я не уверен, как вызвать python из C / C ++, но это возможно. Вызов функций Python из C ++