В программе CUDA я недавно переключился с тестирования на бесконечность, используя
return x==INFINITY || x==-INFINITY;
где INFINITY
из math.h, в
return !isfinite(x);
и был очень удивлен, получив разные результаты. gnu.org предполагает, что они на самом деле должны вести себя по аналогии. Я что-то упускаю? Разве нельзя использовать INFINITY
в ядре CUDA?
Изменить: я только что обнаружил isinf
и заметил, что проверка с использованием
return isinf(x);
дает тот же результат, что и проверка БЕСКОНЕЧНОСТИ. Почему нет isfinite(x)==!isinf(x)
?