Andrew Spott wrote:
So, for the following code, I get something I think is a little off.
I get the same value for all three variable types. I'm kind of new
to this, but I would think that a 32 bit would give me a different
"smallest value" than a 64 bit or 80 bit (if real even evaluates to
80 bit on my machine).
What am I doing wrong, or is this a bug?
The expression: (ep + n != n) is evaluated at 80 bit precision,
regardless of the size of its operands. The idea is that the floating
point sizes only specify a minimum precision, and the compiler (where it
makes sense) can use a larger precision to do constant folding and/or
for intermediate values.
If you need the epsilon values, use float.epsilon, double.epsilon, and
real.epsilon.