--- 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