From 559de8f5f06da9022cbba70e22e14a710eb74513 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Sat, 7 Mar 2015 11:00:37 +0100 Subject: fix FLT_ROUNDS to reflect the current rounding mode Implemented as a wrapper around fegetround introducing a new function to the ABI: __flt_rounds. (fegetround cannot be used directly from float.h) --- src/fenv/__flt_rounds.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/fenv/__flt_rounds.c (limited to 'src/fenv') diff --git a/src/fenv/__flt_rounds.c b/src/fenv/__flt_rounds.c new file mode 100644 index 00000000..ec0b3689 --- /dev/null +++ b/src/fenv/__flt_rounds.c @@ -0,0 +1,19 @@ +#include +#include + +int __flt_rounds() +{ + switch (fegetround()) { +#ifdef FE_TOWARDZERO + case FE_TOWARDZERO: return 0; +#endif + case FE_TONEAREST: return 1; +#ifdef FE_UPWARD + case FE_UPWARD: return 2; +#endif +#ifdef FE_DOWNWARD + case FE_DOWNWARD: return 3; +#endif + } + return -1; +} -- cgit v1.2.1