1 /* w_hypotf.c -- float version of w_hypot.c.
2  * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
3  */
4 
5 /*
6  * ====================================================
7  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
8  *
9  * Developed at SunPro, a Sun Microsystems, Inc. business.
10  * Permission to use, copy, modify, and distribute this
11  * software is freely granted, provided that this notice
12  * is preserved.
13  * ====================================================
14  */
15 
16 /*
17  * wrapper hypotf(x,y)
18  */
19 
20 #include <math.h>
21 #include "math_private.h"
22 
23 float
hypotf(float x,float y)24 hypotf(float x, float y)
25 {
26 #if defined(__UCLIBC_HAS_FENV__)
27 	float z = (float) __ieee754_hypot((double) x, (double) y);
28 	if(__builtin_expect(!isfinite(z), 0)
29 	   && isfinite(x) && isfinite(y) && _LIB_VERSION != _IEEE_)
30 	    /* hypot overflow */
31 	    return __kernel_standard_f(x, y, 104);
32 
33 	return z;
34 #else
35 	return (float) __ieee754_hypot((double) x, (double) y);
36 #endif
37 }
38