12c336fad49d7d94fac1b5037ff7d0ec6bc45462
[platform/upstream/linaro-glibc.git] / sysdeps / generic / s_ldexp.c
1 /* @(#)s_ldexp.c 5.1 93/09/24 */
2 /*
3  * ====================================================
4  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
5  *
6  * Developed at SunPro, a Sun Microsystems, Inc. business.
7  * Permission to use, copy, modify, and distribute this
8  * software is freely granted, provided that this notice
9  * is preserved.
10  * ====================================================
11  */
12
13 #if defined(LIBM_SCCS) && !defined(lint)
14 static char rcsid[] = "$NetBSD: s_ldexp.c,v 1.6 1995/05/10 20:47:40 jtc Exp $";
15 #endif
16
17 #include "math.h"
18 #include "math_private.h"
19 #include <errno.h>
20
21 #ifdef __STDC__
22         double __ldexp(double value, int exp)
23 #else
24         double __ldexp(value, exp)
25         double value; int exp;
26 #endif
27 {
28         if(!__finite(value)||value==0.0) return value;
29         value = __scalbn(value,exp);
30         if(!__finite(value)||value==0.0) __set_errno (ERANGE);
31         return value;
32 }
33 weak_alias (__ldexp, ldexp)
34 #ifdef NO_LONG_DOUBLE
35 strong_alias (__ldexp, __ldexpl)
36 weak_alias (__ldexp, ldexpl)
37 #endif