floating point verification using is?
Steven Schveighoffer
schveiguy at yahoo.com
Fri Dec 18 11:16:17 PST 2009
On Fri, 18 Dec 2009 12:34:09 -0500, bearophile <bearophileHUGS at lycos.com>
wrote:
> Steven Schveighoffer:
>
>> If I have 2 identical floating point values, how do I ensure they are
>> binary equivalents of eachother?
>
> Try this inside std.math of Phobos2:
> bool isIdentical(real x, real y);
Thanks, that seems to be what I want.
>
>
>> I thought 'a is b' would work, but it just morphs into a == b, which
>> isn't
>> helpful. Why doesn't 'is' just do a bit compare for floating points?
>
> "is" is used to compare references.
to me, is means "ignore semantic meaning, do a bitwise compare" regardless
of reference status.
For example comparing 2 array structs using == will check that all the
data is the same, but using "is" makes it compare bitwise the structs
directly.
I see no difference with floating points, except you can't get at the bits
easily. The existence of isIdentical could be completely replaced by one
or two instructions generated by the compiler when it sees "float is
float".
-Steve
More information about the Digitalmars-d-learn
mailing list