xref: /netbsd-src/external/gpl3/gcc.old/dist/libquadmath/math/ldexpq.c (revision 627f7eb200a4419d89b531d55fccd2ee3ffdcde0)
1*627f7eb2Smrg /* @(#)s_ldexp.c 5.1 93/09/24 */
2*627f7eb2Smrg /*
3*627f7eb2Smrg  * ====================================================
4*627f7eb2Smrg  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
5*627f7eb2Smrg  *
6*627f7eb2Smrg  * Developed at SunPro, a Sun Microsystems, Inc. business.
7*627f7eb2Smrg  * Permission to use, copy, modify, and distribute this
8*627f7eb2Smrg  * software is freely granted, provided that this notice
9*627f7eb2Smrg  * is preserved.
10*627f7eb2Smrg  * ====================================================
11*627f7eb2Smrg  */
12*627f7eb2Smrg 
13*627f7eb2Smrg #if defined(LIBM_SCCS) && !defined(lint)
14*627f7eb2Smrg static char rcsid[] = "NetBSD: s_ldexp.c,v 1.6 1995/05/10 20:47:40 jtc Exp ";
15*627f7eb2Smrg #endif
16*627f7eb2Smrg 
17*627f7eb2Smrg #include "quadmath-imp.h"
18*627f7eb2Smrg 
19*627f7eb2Smrg __float128
ldexpq(__float128 value,int exp)20*627f7eb2Smrg ldexpq (__float128 value, int exp)
21*627f7eb2Smrg {
22*627f7eb2Smrg 	if(!finiteq(value)||value==0) return value + value;
23*627f7eb2Smrg 	value = scalbnq(value,exp);
24*627f7eb2Smrg 	if(!finiteq(value)||value==0) errno = ERANGE;
25*627f7eb2Smrg 	return value;
26*627f7eb2Smrg }
27*627f7eb2Smrg 
28*627f7eb2Smrg 
29*627f7eb2Smrg 
30*627f7eb2Smrg 
31*627f7eb2Smrg 
32*627f7eb2Smrg /* Note, versioning issues are punted to ldbl-opt in this case.  */
33