В https://github.com/numpy/numpy/issues/6428 основной причиной ошибки является то, что в simd.inc.src:543
, компилятор оптимизирует !(tmp == 0.)
до tmp != 0.
.
Комментарий говорит, что это "совсем не то же самое". Но не уточняет никаких деталей. NaNs упоминаются далее, но тест показывает, что NaN сравнивается с 0.
ожидаемым способом.
Каковы случаи, когда ==
и !=
могут возвращать true/false?
Или расхождение находится в другом поле - например. возвращающие значения, которые имеют одинаковое значение истинности, но различаются как int (но тестирование показывает, что это даже не похоже) ?