summaryrefslogtreecommitdiff
path: root/gdtoa_fltrnds.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdtoa_fltrnds.h')
-rw-r--r--gdtoa_fltrnds.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/gdtoa_fltrnds.h b/gdtoa_fltrnds.h
new file mode 100644
index 0000000000000..33e5f9e5342c8
--- /dev/null
+++ b/gdtoa_fltrnds.h
@@ -0,0 +1,18 @@
+ FPI *fpi, fpi1;
+ int Rounding;
+#ifdef Trust_FLT_ROUNDS /*{{ only define this if FLT_ROUNDS really works! */
+ Rounding = Flt_Rounds;
+#else /*}{*/
+ Rounding = 1;
+ switch(fegetround()) {
+ case FE_TOWARDZERO: Rounding = 0; break;
+ case FE_UPWARD: Rounding = 2; break;
+ case FE_DOWNWARD: Rounding = 3;
+ }
+#endif /*}}*/
+ fpi = &fpi0;
+ if (Rounding != 1) {
+ fpi1 = fpi0;
+ fpi = &fpi1;
+ fpi1.rounding = Rounding;
+ }