Поддерживает ли JVM только надлежащее подмножество необходимых функций IEEE 754? - PullRequest
2 голосов
/ 08 сентября 2011

По следующим ссылкам:

http://sonic.net/~jddarcy/Borneo/

http://www.cs.berkeley.edu/~wkahan/JAVAhurt.pdf

Java поддерживает только надлежащее подмножество стандартов IEEE 754.Означает ли это, что это относится ко всем языкам JVM?(Решается ли проблема на уровне байт-кода?) Если я хочу использовать оборудование, поддерживающее эти функции, есть ли способ сделать это на JVM Oracle?Если нет, то существует ли разветвление?

Ответы [ 2 ]

5 голосов
/ 08 сентября 2011

Да, это относится ко всем языкам JVM. Глобальных флагов просто нет. Нет, это не исправить.

Что более важно, нет, вы не должны. Хотя профессор Кахан может быть экспертом в области цифровых вычислений, он не занимается разработкой программного обеспечения. Он также не может предсказать будущее. Глобальное состояние FP - это очень плохая идея в современном многоядерном мире. Для обеспечения соответствия вы должны искусственно объединить состояние FP каждого потока в единое глобальное состояние, и тогда вы больше не сможете надежно справляться с отдельными ошибками, поэтому вам просто нужно выручить. Просто отлично.

0 голосов
/ 08 сентября 2011

Если вы хотите использовать специфичные для оборудования функции, которые JVM не использует, вам, вероятно, придется использовать C или сборку и вызывать ее через JNI.Большая часть вашего кода все еще может быть на Java, но это не должно решить все.(иногда намного медленнее)

...