1 /* wf_hypot.c -- float version of w_hypot.c.
2 * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
6 * ====================================================
7 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
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
13 * ====================================================
24 float hypotf(float x
, float y
) /* wrapper hypotf */
26 float hypotf(x
,y
) /* wrapper hypotf */
31 return __ieee754_hypotf(x
,y
);
35 z
= __ieee754_hypotf(x
,y
);
36 if(_LIB_VERSION
== _IEEE_
) return z
;
37 if((!finitef(z
))&&finitef(x
)&&finitef(y
)) {
38 /* hypotf(finite,finite) overflow */
43 SET_HIGH_WORD(inf
,0x7ff00000); /* set inf to infinite */
50 if (_LIB_VERSION
== _SVID_
)
53 exc
.retval
= HUGE_VAL
;
54 if (_LIB_VERSION
== _POSIX_
)
56 else if (!matherr(&exc
)) {
61 return (float)exc
.retval
;
67 #ifdef _DOUBLE_IS_32BITS
70 double hypot(double x
, double y
)
76 return (double) hypotf((float) x
, (float) y
);
79 #endif /* defined(_DOUBLE_IS_32BITS) */