diff options
Diffstat (limited to 'newlib/libm/common/s_fma.c')
-rw-r--r-- | newlib/libm/common/s_fma.c | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/newlib/libm/common/s_fma.c b/newlib/libm/common/s_fma.c deleted file mode 100644 index 964a8284a..000000000 --- a/newlib/libm/common/s_fma.c +++ /dev/null @@ -1,56 +0,0 @@ -/* -FUNCTION -<<fma>>, <<fmaf>>--floating multiply add -INDEX - fma -INDEX - fmaf - -ANSI_SYNOPSIS - #include <math.h> - double fma(double <[x]>, double <[y]>, double <[z]>); - float fmaf(float <[x]>, float <[y]>, float <[z]>); - -DESCRIPTION -The <<fma>> functions compute (<[x]> * <[y]>) + <[z]>, rounded as one ternary -operation: they compute the value (as if) to infinite precision and round once -to the result format, according to the rounding mode characterized by the value -of FLT_ROUNDS. That is, they are supposed to do this: see below. - -RETURNS -The <<fma>> functions return (<[x]> * <[y]>) + <[z]>, rounded as one ternary -operation. - -BUGS -This implementation does not provide the function that it should, purely -returning "(<[x]> * <[y]>) + <[z]>;" with no attempt at all to provide the -simulated infinite precision intermediates which are required. DO NOT USE THEM. - -If double has enough more precision than float, then <<fmaf>> should provide -the expected numeric results, as it does use double for the calculation. But -since this is not the case for all platforms, this manual cannot determine -if it is so for your case. - -PORTABILITY -ANSI C, POSIX. - -*/ - -#include "fdlibm.h" - -#ifndef _DOUBLE_IS_32BITS - -#ifdef __STDC__ - double fma(double x, double y, double z) -#else - double fma(x,y) - double x; - double y; - double z; -#endif -{ - /* Implementation defined. */ - return (x * y) + z; -} - -#endif /* _DOUBLE_IS_32BITS */ |