Существует ли IEEE double x>0 такой, что sqrt(x*x) ≠ x при условии, что вычисление x*x не переполняется или не проходит до Inf, 0 или денормального числа?
Это означает, что sqrt возвращает ближайший представимый результат, и поэтому x*x (оба, как указано в стандарте IEEE, "операция с квадратным корнем вычисляется как бесконечная точность, а затем округляется до одной из два ближайших числа с плавающей запятой заданной точности, которые окружают бесконечно точный результат" ).
В предположении, что если такие двойники будут существовать, то, вероятно, есть примеры, близкие к 1, я написал программу для поиска этих контрпримеров и не смог найти между 1.0 и 1.0000004780981346.
Предыдущий аналогичный вопрос совершенные квадраты и числа с плавающей запятой отвечает на вопрос отрицательным для ситуаций, когда вычисление x*x не предполагает округления. Этот ответ недостаточен для этого вопроса, потому что возможно x*x включать округление в одном направлении, затем sqrt(x*x) включать округление в одном направлении, создавая таким образом ответ, который не является точно x.