Is the inverse of std::numeric_limits::infinity() zero?
Is there anything in the C++ standard (or the IEEE 754 floating-point standard) that guarantees that 1./std::numeric_limits<double>::infinity() is zero (or at least a small number)? Yes, according to the GNU C library reference manual (assuming IEEE 754): Infinities propagate through calculations as one would expect: for example, 2 + ∞ = ∞, 4/∞ = 0 https://www.gnu.org/software/libc/manual/html_node/Infinity-and-NaN.html You may want to check if your C++ compiler uses IEEE 754: How to check if C++ compiler uses IEEE 754 floating point standard Any finite number divided by infinity results in zero under IEEE 754 (and therefore the same in most typical C++ implementations). If the sign of the of numerator and denominator differ, the result will be negative zero, which is equal to zero. IEEE 754-2008 6.1 says: The behavior of infinity in floating-point arithmetic is derived from the limiting cases of real arithmetic with operands of arbitrarily large magnitude,...