Fix redefinition of _GNU_SOURCE.
[uclibc-ng.git] / libm / w_sinhf.c
bloba2f70f7043260ab8259b07526cedf75cc8f316e1
1 /* w_sinhf.c -- float version of w_sinh.c.
2 * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
3 */
5 /*
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
12 * is preserved.
13 * ====================================================
17 * wrapper sinhf(x)
20 #include <math.h>
21 #include "math_private.h"
23 float
24 sinhf (float x)
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 */
32 return z;
33 #else
34 return (float) __ieee754_sinh ((double) x);
35 #endif