Предположим (избегая ночных дискуссий о том, почему) я использую -ffast-math и моя программа выполняет десять итераций Ньютона. Они либо сходятся, либо к этому моменту произойдет NaN.
Это то, что я хочу проверить. Теперь чат GPT сообщил мне, что основные математические операции по-прежнему будут заполнять биты моего числа (например, float, double, float128,...) битами, которые выражают значение NaN, но любая попытка определить этот факт потерпит неудачу ( и я не могу понять, как это вообще возможно).
Итак, предположим, что программа скомпилирована с -ffast-math и предположим для простоты, что существует двойной x в моем коде, и я хочу узнать, является ли x NaN. Как мне это сделать? Мне кажется, что я мог бы просто реализовать isnan(x), проверив, находится ли x в определенных пределах.
Я также проверил этот вопрос, и Chat-GPT дал мне реализацию для double, но все эти битовые сдвиги могут не работать независимо от платформы, и я не хочу в конечном итоге испытывать необходимость тестировать реализации isnan.
Подробнее здесь: https://stackoverflow.com/questions/784 ... ffast-math
Проверьте наличие Нана в --ffast-math ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Может ли Clang -ffast -Math оптимизировать сравнение между Quiet_nan и Float?
Anonymous » » в форуме C++ - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-