diff options
author | David Schultz <das@FreeBSD.org> | 2009-01-28 04:36:34 +0000 |
---|---|---|
committer | David Schultz <das@FreeBSD.org> | 2009-01-28 04:36:34 +0000 |
commit | 4848dd0858385db46fa4e0192a134605ee42ab01 (patch) | |
tree | c4d28a7b5d5d1902de89c3a33988ed7f5638277b /contrib/gdtoa/gdtoa_fltrnds.h | |
parent | d568fa54dbafa992ebdb5e912b8f5f790f9094bd (diff) | |
parent | 9ea4d2a87415d5928272c15f22583103f2ccfe30 (diff) | |
download | src-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.h | 18 |
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; + } |