aboutsummaryrefslogtreecommitdiff
path: root/contrib/gdtoa/gdtoa_fltrnds.h
diff options
context:
space:
mode:
authorDavid Schultz <das@FreeBSD.org>2009-01-28 04:36:34 +0000
committerDavid Schultz <das@FreeBSD.org>2009-01-28 04:36:34 +0000
commit4848dd0858385db46fa4e0192a134605ee42ab01 (patch)
treec4d28a7b5d5d1902de89c3a33988ed7f5638277b /contrib/gdtoa/gdtoa_fltrnds.h
parentd568fa54dbafa992ebdb5e912b8f5f790f9094bd (diff)
parent9ea4d2a87415d5928272c15f22583103f2ccfe30 (diff)
downloadsrc-4848dd0858385db46fa4e0192a134605ee42ab01.tar.gz
src-4848dd0858385db46fa4e0192a134605ee42ab01.zip
Vendor import of gdtoa 20081205.
Notes
Notes: svn path=/head/; revision=187808
Diffstat (limited to 'contrib/gdtoa/gdtoa_fltrnds.h')
-rw-r--r--contrib/gdtoa/gdtoa_fltrnds.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/contrib/gdtoa/gdtoa_fltrnds.h b/contrib/gdtoa/gdtoa_fltrnds.h
new file mode 100644
index 000000000000..33e5f9e5342c
--- /dev/null
+++ b/contrib/gdtoa/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;
+ }