на каких языках работает IEEE 754? - PullRequest
11 голосов
/ 04 апреля 2009

Я просто потратил неделю на изучение этого предмета и нашел нет языка, который правильно определяет спецификацию IEEE 754.

Даже GCC не уважает соответствующую часть C99 (она игнорирует прагму FENV_ACCESS, и мне сказали, что мои рабочие примеры были просто удачей).

Невозможно (AFAIK) соблюдать спецификацию с библиотечными функциями, вам необходима поддержка языка, потому что некоторые общие оптимизации запрещены при игре с флагами или округлением.

Итак, вот мой реальный вопрос: существуют ли языки (кроме C / C ++ или необработанной сборки), которые дают мне доступ к режимам округления, флагам исключений и исчислению?

Ответы [ 3 ]

2 голосов
/ 04 апреля 2009

Поскольку вы говорите о "сложных" частях IEEE 754, я думаю, что вам лучше всего использовать Fortran . Согласно статье в Википедии, Fortran 2003 поддерживает обработку исключений с плавающей точкой, по крайней мере.

0 голосов
/ 07 октября 2009

Я похож на Фактор , и ссылка утверждает, что D тоже SBCL.

0 голосов
/ 04 апреля 2009

AFAIK, даже аппаратные блоки FPU не полностью реализуют полную спецификацию IEEE-754. Таким образом, в зависимости от того, что вам нужно, вам может не повезло, пытаясь получить его. Может быть, поэтому ни один язык не понимает это полностью правильно.

...