diff -r df44d7be428f -r 500ca1e2ad84 ShortFloat.st --- a/ShortFloat.st Tue Dec 03 19:05:09 2019 +0100 +++ b/ShortFloat.st Tue Dec 03 19:07:09 2019 +0100 @@ -76,8 +76,11 @@ */ # ifndef isnan # define isnan(x) \ - ((((unsigned int *)(&x))[0] == 0x00000000) && \ - (((unsigned int *)(&x))[1] == 0xFFF80000)) + ((((unsigned int *)(&x))[1] & 0x7FF80000) == 0x7FF80000) +// old, invalid definition +// # define isnan(x) \ +// ((((unsigned int *)(&x))[0] == 0x00000000) && \ +// (((unsigned int *)(&x))[1] == 0xFFF80000)) # endif # ifndef isPositiveInfinity @@ -104,7 +107,9 @@ # ifndef isnanf # define isnanf(x) \ - (((unsigned int *)(&x))[0] == 0xFFC00000) + (((unsigned int *)(&x))[0] & 0x7FC00000 == 0x7FC00000) +// old, invalid definition +// (((unsigned int *)(&x))[0] == 0xFFC00000) # endif # ifndef isPositiveInfinityf