1 /* w_sinhf.c -- float version of w_sinh.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 sinhf(x)
18 */
19
20 #include <math.h>
21 #include "math_private.h"
22
23 float
sinhf(float x)24 sinhf (float x)
25 {
26 #if defined(__UCLIBC_HAS_FENV__)
27 float z = (float) __ieee754_sinh ((double) x);
28 if (__builtin_expect (!isfinite (z), 0) && isfinite (x)
29 && _LIB_VERSION != _IEEE_)
30 return __kernel_standard_f (x, x, 125); /* sinhf overflow */
31
32 return z;
33 #else
34 return (float) __ieee754_sinh ((double) x);
35 #endif
36 }
37
38