diff options
Diffstat (limited to 'lib/mlibc/options/ansi/musl-generic-math/hypotf.c')
-rw-r--r-- | lib/mlibc/options/ansi/musl-generic-math/hypotf.c | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/lib/mlibc/options/ansi/musl-generic-math/hypotf.c b/lib/mlibc/options/ansi/musl-generic-math/hypotf.c deleted file mode 100644 index 2fc214b..0000000 --- a/lib/mlibc/options/ansi/musl-generic-math/hypotf.c +++ /dev/null @@ -1,35 +0,0 @@ -#include <math.h> -#include <stdint.h> - -float hypotf(float x, float y) -{ - union {float f; uint32_t i;} ux = {x}, uy = {y}, ut; - float_t z; - - ux.i &= -1U>>1; - uy.i &= -1U>>1; - if (ux.i < uy.i) { - ut = ux; - ux = uy; - uy = ut; - } - - x = ux.f; - y = uy.f; - if (uy.i == 0xff<<23) - return y; - if (ux.i >= 0xff<<23 || uy.i == 0 || ux.i - uy.i >= 25<<23) - return x + y; - - z = 1; - if (ux.i >= (0x7f+60)<<23) { - z = 0x1p90f; - x *= 0x1p-90f; - y *= 0x1p-90f; - } else if (uy.i < (0x7f-60)<<23) { - z = 0x1p-90f; - x *= 0x1p90f; - y *= 0x1p90f; - } - return z*sqrtf((double)x*x + (double)y*y); -} |