ShortFloat.st
changeset 25048 500ca1e2ad84
parent 25037 de5003b510c4
child 25050 5977264b0ca4
--- 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