Index: fusl/src/math/nearbyint.c |
diff --git a/fusl/src/math/nearbyint.c b/fusl/src/math/nearbyint.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f4e8aac4f0118d7d48d1d6a8e4af0fec048ee62a |
--- /dev/null |
+++ b/fusl/src/math/nearbyint.c |
@@ -0,0 +1,20 @@ |
+#include <fenv.h> |
+#include <math.h> |
+ |
+/* nearbyint is the same as rint, but it must not raise the inexact exception */ |
+ |
+double nearbyint(double x) |
+{ |
+#ifdef FE_INEXACT |
+ #pragma STDC FENV_ACCESS ON |
+ int e; |
+ |
+ e = fetestexcept(FE_INEXACT); |
+#endif |
+ x = rint(x); |
+#ifdef FE_INEXACT |
+ if (!e) |
+ feclearexcept(FE_INEXACT); |
+#endif |
+ return x; |
+} |