summaryrefslogtreecommitdiff
path: root/src/math/signbit.h
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2020-08-16 16:14:04 -0400
committerJakob Kaivo <jkk@ung.org>2020-08-16 16:14:04 -0400
commit661f59838235815b5073a0ef95f410003639519e (patch)
tree28eb14bc8053bb32abd7c103c4078ab4f81b6129 /src/math/signbit.h
parente223e635cc53fa11e473cdbc864eb69a3da5f290 (diff)
rename non-compiled files to *.h
Diffstat (limited to 'src/math/signbit.h')
-rw-r--r--src/math/signbit.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/math/signbit.h b/src/math/signbit.h
new file mode 100644
index 00000000..77cc3977
--- /dev/null
+++ b/src/math/signbit.h
@@ -0,0 +1,23 @@
+#include <math.h>
+
+#define signbit(__x) \
+ (sizeof(__x) == sizeof(long double) ? \
+ ((((union { \
+ long double __f; \
+ char __c[sizeof(__x)]; \
+ }){.__f = (__x)}).__c[sizeof(__x)-1] & 0x80) == 0x80 ? 1 : 0) : \
+ sizeof(__x) == sizeof(double) ? \
+ ((((union { \
+ double __f; \
+ char __c[sizeof(__x)]; \
+ }){.__f = (__x)}).__c[sizeof(__x)-1] & 0x80) == 0x80 ? 1 : 0) : \
+ (((union { \
+ float __f; \
+ char __c[sizeof(__x)]; \
+ }){.__f = (__x)}).__c[sizeof(__x)-1] & 0x80) == 0x80 ? 1 : 0)
+
+
+/*
+STDC(199901)
+LINK(m)
+*/