Я всегда предполагал, что следующий тест всегда будет иметь успех для конечных значений (без INF, NAN) somefloat
:
assert(somefloat*0.0==0.0);
В Умножение на 0 оптимизация было указано, что double a=0.0
и double a=-0.0
не являются, строго говоря, одной и той же.
Поэтому мне было интересно, может ли это привести к проблемам на некоторых платформах, например. может ли результат вышеуказанного теста зависеть от a
от положительного или отрицательного.