double pow10(double);
float pow10f(float);
long double pow10l(long double);
+
+double significand(double);
+float significandf(float);
+long double significandl(long double);
#endif
#ifdef __cplusplus
--- /dev/null
+#define _GNU_SOURCE
+#include <math.h>
+
+double significand(double x)
+{
+ return scalbn(x, -ilogb(x));
+}
--- /dev/null
+#define _GNU_SOURCE
+#include <math.h>
+
+float significandf(float x)
+{
+ return scalbnf(x, -ilogbf(x));
+}
--- /dev/null
+#define _GNU_SOURCE
+#include <math.h>
+
+long double significandl(long double x)
+{
+ return scalbnl(x, -ilogbl(x));
+}