summaryrefslogtreecommitdiff
path: root/lib/libm/fmal.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libm/fmal.c')
-rw-r--r--lib/libm/fmal.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/libm/fmal.c b/lib/libm/fmal.c
index 1eceafd4..8dd0ac61 100644
--- a/lib/libm/fmal.c
+++ b/lib/libm/fmal.c
@@ -25,16 +25,19 @@
* SUCH DAMAGE.
*/
-#include "libm.h"
+#include "libm.h" // for ldshape, ldshape::(anonymous)
+
+#include <float.h> // for LDBL_MANT_DIG, LDBL_MAX_EXP, LDBL_MIN
+#include <math.h> // for nextafterl, scalbnl, frexpl, INFINITY, ilogbl
#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
long double fmal(long double x, long double y, long double z)
{
return fma(x, y, z);
}
#elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
-#include <fenv.h>
+#include <fenv.h> // for feraiseexcept, fesetround, fetestexcept, fecl...
#if LDBL_MANT_DIG == 64
-#define LASTBIT(u) (u.i.m & 1)
+#define LASTBIT(u) ((u).i.m & 1)
#define SPLIT (0x1p32L + 1)
#elif LDBL_MANT_DIG == 113
#define LASTBIT(u) (u.i.lo & 1)
@@ -288,7 +291,6 @@ long double fmal(long double x, long double y, long double z)
adj = add_adjusted(r.lo, xy.lo);
if (spread + ilogbl(r.hi) > -16383)
return scalbnl(r.hi + adj, spread);
- else
- return add_and_denormalize(r.hi, adj, spread);
+ return add_and_denormalize(r.hi, adj, spread);
}
#endif