summaryrefslogtreecommitdiff
path: root/sysdeps/libm-ieee754
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/libm-ieee754')
-rw-r--r--sysdeps/libm-ieee754/e_atanhl.c6
-rw-r--r--sysdeps/libm-ieee754/e_coshl.c94
-rw-r--r--sysdeps/libm-ieee754/s_asinh.c4
-rw-r--r--sysdeps/libm-ieee754/s_asinhl.c2
-rw-r--r--sysdeps/libm-ieee754/s_atan.c20
-rw-r--r--sysdeps/libm-ieee754/s_cbrt.c16
-rw-r--r--sysdeps/libm-ieee754/s_ceil.c10
-rw-r--r--sysdeps/libm-ieee754/s_copysign.c6
-rw-r--r--sysdeps/libm-ieee754/s_cos.c12
-rw-r--r--sysdeps/libm-ieee754/s_erf.c30
-rw-r--r--sysdeps/libm-ieee754/s_expm1.c52
-rw-r--r--sysdeps/libm-ieee754/s_fabs.c6
-rw-r--r--sysdeps/libm-ieee754/s_finite.c6
-rw-r--r--sysdeps/libm-ieee754/s_floor.c10
-rw-r--r--sysdeps/libm-ieee754/s_frexp.c12
-rw-r--r--sysdeps/libm-ieee754/s_ilogb.c8
-rw-r--r--sysdeps/libm-ieee754/s_ldexp.c4
-rw-r--r--sysdeps/libm-ieee754/s_log1p.c44
-rw-r--r--sysdeps/libm-ieee754/s_logb.c10
-rw-r--r--sysdeps/libm-ieee754/s_modf.c8
-rw-r--r--sysdeps/libm-ieee754/s_nextafter.c14
-rw-r--r--sysdeps/libm-ieee754/s_rint.c10
-rw-r--r--sysdeps/libm-ieee754/s_scalbn.c4
-rw-r--r--sysdeps/libm-ieee754/s_significand.c6
-rw-r--r--sysdeps/libm-ieee754/s_sin.c12
-rw-r--r--sysdeps/libm-ieee754/s_tan.c12
-rw-r--r--sysdeps/libm-ieee754/s_tanh.c8
-rw-r--r--sysdeps/libm-ieee754/s_tanhl.c9
-rw-r--r--sysdeps/libm-ieee754/w_acos.c6
-rw-r--r--sysdeps/libm-ieee754/w_acosh.c8
-rw-r--r--sysdeps/libm-ieee754/w_asin.c8
-rw-r--r--sysdeps/libm-ieee754/w_atan2.c8
-rw-r--r--sysdeps/libm-ieee754/w_atanh.c10
-rw-r--r--sysdeps/libm-ieee754/w_cabs.c6
-rw-r--r--sysdeps/libm-ieee754/w_cosh.c10
-rw-r--r--sysdeps/libm-ieee754/w_drem.c6
-rw-r--r--sysdeps/libm-ieee754/w_exp.c10
-rw-r--r--sysdeps/libm-ieee754/w_fmod.c8
-rw-r--r--sysdeps/libm-ieee754/w_gamma.c4
-rw-r--r--sysdeps/libm-ieee754/w_gamma_r.c10
-rw-r--r--sysdeps/libm-ieee754/w_hypot.c6
-rw-r--r--sysdeps/libm-ieee754/w_j0.c11
-rw-r--r--sysdeps/libm-ieee754/w_j1.c15
-rw-r--r--sysdeps/libm-ieee754/w_jn.c15
-rw-r--r--sysdeps/libm-ieee754/w_lgamma.c8
-rw-r--r--sysdeps/libm-ieee754/w_lgamma_r.c10
-rw-r--r--sysdeps/libm-ieee754/w_log.c8
-rw-r--r--sysdeps/libm-ieee754/w_log10.c10
-rw-r--r--sysdeps/libm-ieee754/w_pow.c18
-rw-r--r--sysdeps/libm-ieee754/w_remainder.c10
-rw-r--r--sysdeps/libm-ieee754/w_scalb.c4
-rw-r--r--sysdeps/libm-ieee754/w_sinh.c10
-rw-r--r--sysdeps/libm-ieee754/w_sqrt.c8
53 files changed, 482 insertions, 180 deletions
diff --git a/sysdeps/libm-ieee754/e_atanhl.c b/sysdeps/libm-ieee754/e_atanhl.c
index d74db481d0..0e6dadd602 100644
--- a/sysdeps/libm-ieee754/e_atanhl.c
+++ b/sysdeps/libm-ieee754/e_atanhl.c
@@ -40,9 +40,9 @@ static char rcsid[] = "$NetBSD: $";
#include "math_private.h"
#ifdef __STDC__
-static const long double one = 1.0, huge = 1e16380;
+static const long double one = 1.0, huge = 1e4900L;
#else
-static long double one = 1.0, huge = 1e16380;
+static long double one = 1.0, huge = 1e4900L;
#endif
#ifdef __STDC__
@@ -61,7 +61,7 @@ static double long zero = 0.0;
long double t;
int32_t ix;
u_int32_t se,i0,i1;
- EXTRACT_LDOUBLE_WORDS(se,i0,i1,x);
+ GET_LDOUBLE_WORDS(se,i0,i1,x);
ix = se&0x7fff;
if ((ix+((((i0&0x7fffffff)|i1)|(-((i0&0x7fffffff)|i1)))>>31))>0x3fff)
/* |x|>1 */
diff --git a/sysdeps/libm-ieee754/e_coshl.c b/sysdeps/libm-ieee754/e_coshl.c
new file mode 100644
index 0000000000..6af846cb2d
--- /dev/null
+++ b/sysdeps/libm-ieee754/e_coshl.c
@@ -0,0 +1,94 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: e_cosh.c,v 1.7 1995/05/10 20:44:58 jtc Exp $";
+#endif
+
+/* __ieee754_coshl(x)
+ * Method :
+ * mathematically coshl(x) if defined to be (exp(x)+exp(-x))/2
+ * 1. Replace x by |x| (coshl(x) = coshl(-x)).
+ * 2.
+ * [ exp(x) - 1 ]^2
+ * 0 <= x <= ln2/2 : coshl(x) := 1 + -------------------
+ * 2*exp(x)
+ *
+ * exp(x) + 1/exp(x)
+ * ln2/2 <= x <= 22 : coshl(x) := -------------------
+ * 2
+ * 22 <= x <= lnovft : coshl(x) := expl(x)/2
+ * lnovft <= x <= ln2ovft: coshl(x) := expl(x/2)/2 * expl(x/2)
+ * ln2ovft < x : coshl(x) := huge*huge (overflow)
+ *
+ * Special cases:
+ * coshl(x) is |x| if x is +INF, -INF, or NaN.
+ * only coshl(0)=1 is exact for finite x.
+ */
+
+#include "math.h"
+#include "math_private.h"
+
+#ifdef __STDC__
+static const long double one = 1.0, half=0.5, huge = 1.0e4900L;
+#else
+static long double one = 1.0, half=0.5, huge = 1.0e4900L;
+#endif
+
+#ifdef __STDC__
+ long double __ieee754_coshl(long double x)
+#else
+ long double __ieee754_coshl(x)
+ long double x;
+#endif
+{
+ long double t,w;
+ int32_t ex;
+ u_int32_t mx,lx;
+
+ /* High word of |x|. */
+ GET_LDOUBLE_WORDS(ex,mx,lx,x);
+ ex &= 0x7fff;
+
+ /* x is INF or NaN */
+ if(ex==0x7fff) return x*x;
+
+ /* |x| in [0,0.5*ln2], return 1+expm1l(|x|)^2/(2*expl(|x|)) */
+ if(ex < 0x3ffd || (ex == 0x3ffd && mx < 0xb17217f7u)) {
+ t = __expm1l(fabsl(x));
+ w = one+t;
+ if (ex<0x3fbc) return w; /* cosh(tiny) = 1 */
+ return one+(t*t)/(w+w);
+ }
+
+ /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */
+ if (ex < 0x4003 || (ex == 0x4003 && mx < 0xb0000000u)) {
+ t = __ieee754_expl(fabsl(x));
+ return half*t+half/t;
+ }
+
+ /* |x| in [22, ln(maxdouble)] return half*exp(|x|) */
+ if (ex < 0x400c || (ex == 0x400c && mx < 0xb1700000u))
+ return half*__ieee754_expl(fabsl(x));
+
+ /* |x| in [log(maxdouble), overflowthresold] */
+ if (ex < 0x400d
+ || (ex == 0x400d && (mx < 0xb170b513u
+ || (mx == 0xb170b513u && lx < 0xa1dfd60cu))))
+ {
+ w = __ieee754_expl(half*fabsl(x));
+ t = half*w;
+ return t*w;
+ }
+
+ /* |x| > overflowthresold, cosh(x) overflow */
+ return huge*huge;
+}
diff --git a/sysdeps/libm-ieee754/s_asinh.c b/sysdeps/libm-ieee754/s_asinh.c
index bb3c495dfc..985cfe32e1 100644
--- a/sysdeps/libm-ieee754/s_asinh.c
+++ b/sysdeps/libm-ieee754/s_asinh.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -16,7 +16,7 @@ static char rcsid[] = "$NetBSD: s_asinh.c,v 1.9 1995/05/12 04:57:37 jtc Exp $";
/* asinh(x)
* Method :
- * Based
+ * Based on
* asinh(x) = sign(x) * log [ |x| + sqrt(x*x+1) ]
* we have
* asinh(x) := x if 1+x*x=1,
diff --git a/sysdeps/libm-ieee754/s_asinhl.c b/sysdeps/libm-ieee754/s_asinhl.c
index 823288a1a0..865bc31052 100644
--- a/sysdeps/libm-ieee754/s_asinhl.c
+++ b/sysdeps/libm-ieee754/s_asinhl.c
@@ -39,7 +39,7 @@ static long double
#endif
one = 1.000000000000000000000e+00L, /* 0x3FFF, 0x00000000, 0x00000000 */
ln2 = 6.931471805599453094287e-01L, /* 0x3FFE, 0xB17217F7, 0xD1CF79AC */
-huge= 1.000000000000000000e+16380L;
+huge= 1.000000000000000000e+4900L;
#ifdef __STDC__
long double __asinhl(long double x)
diff --git a/sysdeps/libm-ieee754/s_atan.c b/sysdeps/libm-ieee754/s_atan.c
index 2f3c545a33..6657b15cda 100644
--- a/sysdeps/libm-ieee754/s_atan.c
+++ b/sysdeps/libm-ieee754/s_atan.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -28,9 +28,9 @@ static char rcsid[] = "$NetBSD: s_atan.c,v 1.8 1995/05/10 20:46:45 jtc Exp $";
* [39/16,INF] atan(x) = atan(INF) + atan( -1/t )
*
* Constants:
- * The hexadecimal values are the intended ones for the following
- * constants. The decimal values may be used, provided that the
- * compiler will convert from decimal to binary accurately enough
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
* to produce the hexadecimal values shown.
*/
@@ -78,9 +78,9 @@ static double aT[] = {
};
#ifdef __STDC__
- static const double
+ static const double
#else
- static double
+ static double
#endif
one = 1.0,
huge = 1.0e300;
@@ -114,9 +114,9 @@ huge = 1.0e300;
x = fabs(x);
if (ix < 0x3ff30000) { /* |x| < 1.1875 */
if (ix < 0x3fe60000) { /* 7/16 <=|x|<11/16 */
- id = 0; x = (2.0*x-one)/(2.0+x);
+ id = 0; x = (2.0*x-one)/(2.0+x);
} else { /* 11/16<=|x|< 19/16 */
- id = 1; x = (x-one)/(x+one);
+ id = 1; x = (x-one)/(x+one);
}
} else {
if (ix < 0x40038000) { /* |x| < 2.4375 */
@@ -138,3 +138,7 @@ huge = 1.0e300;
}
}
weak_alias (__atan, atan)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__atan, __atanl)
+weak_alias (__atan, atanl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_cbrt.c b/sysdeps/libm-ieee754/s_cbrt.c
index cf72f4c2fa..24a9c9adbd 100644
--- a/sysdeps/libm-ieee754/s_cbrt.c
+++ b/sysdeps/libm-ieee754/s_cbrt.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -40,9 +40,9 @@ F = 1.60714285714285720630e+00, /* 45/28 = 0x3FF9B6DB, 0x6DB6DB6E */
G = 3.57142857142857150787e-01; /* 5/14 = 0x3FD6DB6D, 0xB6DB6DB7 */
#ifdef __STDC__
- double __cbrt(double x)
+ double __cbrt(double x)
#else
- double __cbrt(x)
+ double __cbrt(x)
double x;
#endif
{
@@ -56,7 +56,7 @@ G = 3.57142857142857150787e-01; /* 5/14 = 0x3FD6DB6D, 0xB6DB6DB7 */
hx ^=sign;
if(hx>=0x7ff00000) return(x+x); /* cbrt(NaN,INF) is itself */
GET_LOW_WORD(low,x);
- if((hx|low)==0)
+ if((hx|low)==0)
return(x); /* cbrt(0) is itself */
SET_HIGH_WORD(x,hx); /* x <- |x| */
@@ -72,9 +72,9 @@ G = 3.57142857142857150787e-01; /* 5/14 = 0x3FD6DB6D, 0xB6DB6DB7 */
/* new cbrt to 23 bits, may be implemented in single precision */
r=t*t/x;
s=C+r*t;
- t*=G+F/(s+E+D/s);
+ t*=G+F/(s+E+D/s);
- /* chopped to 20 bits and make it larger than cbrt(x) */
+ /* chopped to 20 bits and make it larger than cbrt(x) */
GET_HIGH_WORD(high,t);
INSERT_WORDS(t,high+0x00000001,0);
@@ -92,3 +92,7 @@ G = 3.57142857142857150787e-01; /* 5/14 = 0x3FD6DB6D, 0xB6DB6DB7 */
return(t);
}
weak_alias (__cbrt, cbrt)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__cbrt, __cbrtl)
+weak_alias (__cbrt, cbrtl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_ceil.c b/sysdeps/libm-ieee754/s_ceil.c
index 9c878f74bd..1b352a679e 100644
--- a/sysdeps/libm-ieee754/s_ceil.c
+++ b/sysdeps/libm-ieee754/s_ceil.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -46,7 +46,7 @@ static double huge = 1.0e300;
if(j0<20) {
if(j0<0) { /* raise inexact if x != 0 */
if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */
- if(i0<0) {i0=0x80000000;i1=0;}
+ if(i0<0) {i0=0x80000000;i1=0;}
else if((i0|i1)!=0) { i0=0x3ff00000;i1=0;}
}
} else {
@@ -65,7 +65,7 @@ static double huge = 1.0e300;
if((i1&i)==0) return x; /* x is integral */
if(huge+x>0.0) { /* raise inexact flag */
if(i0>0) {
- if(j0==20) i0+=1;
+ if(j0==20) i0+=1;
else {
j = i1 + (1<<(52-j0));
if(j<i1) i0+=1; /* got a carry */
@@ -79,3 +79,7 @@ static double huge = 1.0e300;
return x;
}
weak_alias (__ceil, ceil)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__ceil, __ceill)
+weak_alias (__ceil, ceill)
+#endif
diff --git a/sysdeps/libm-ieee754/s_copysign.c b/sysdeps/libm-ieee754/s_copysign.c
index b86ac76013..5e35e6943c 100644
--- a/sysdeps/libm-ieee754/s_copysign.c
+++ b/sysdeps/libm-ieee754/s_copysign.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -37,3 +37,7 @@ static char rcsid[] = "$NetBSD: s_copysign.c,v 1.8 1995/05/10 20:46:57 jtc Exp $
return x;
}
weak_alias (__copysign, copysign)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__copysign, __copysignl)
+weak_alias (__copysign, copysignl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_cos.c b/sysdeps/libm-ieee754/s_cos.c
index 33a7316a02..7edb5deafe 100644
--- a/sysdeps/libm-ieee754/s_cos.c
+++ b/sysdeps/libm-ieee754/s_cos.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -23,8 +23,8 @@ static char rcsid[] = "$NetBSD: s_cos.c,v 1.7 1995/05/10 20:47:02 jtc Exp $";
* __ieee754_rem_pio2 ... argument reduction routine
*
* Method.
- * Let S,C and T denote the sin, cos and tan respectively on
- * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ * Let S,C and T denote the sin, cos and tan respectively on
+ * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
* in [-pi/4 , +pi/4], and let n = k mod 4.
* We have
*
@@ -42,7 +42,7 @@ static char rcsid[] = "$NetBSD: s_cos.c,v 1.7 1995/05/10 20:47:02 jtc Exp $";
* trig(NaN) is that NaN;
*
* Accuracy:
- * TRIG(x) returns trig(x) nearly rounded
+ * TRIG(x) returns trig(x) nearly rounded
*/
#include "math.h"
@@ -81,3 +81,7 @@ static char rcsid[] = "$NetBSD: s_cos.c,v 1.7 1995/05/10 20:47:02 jtc Exp $";
}
}
weak_alias (__cos, cos)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__cos, __cosl)
+weak_alias (__cos, cosl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_erf.c b/sysdeps/libm-ieee754/s_erf.c
index d3377a5036..022cf11abe 100644
--- a/sysdeps/libm-ieee754/s_erf.c
+++ b/sysdeps/libm-ieee754/s_erf.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -19,11 +19,11 @@ static char rcsid[] = "$NetBSD: s_erf.c,v 1.8 1995/05/10 20:47:05 jtc Exp $";
* x
* 2 |\
* erf(x) = --------- | exp(-t*t)dt
- * sqrt(pi) \|
+ * sqrt(pi) \|
* 0
*
* erfc(x) = 1-erf(x)
- * Note that
+ * Note that
* erf(-x) = -erf(x)
* erfc(-x) = 2 - erfc(x)
*
@@ -36,7 +36,7 @@ static char rcsid[] = "$NetBSD: s_erf.c,v 1.8 1995/05/10 20:47:05 jtc Exp $";
* Q is an odd poly of degree 10.
* -57.90
* | R - (erf(x)-x)/x | <= 2
- *
+ *
*
* Remark. The formula is derived by noting
* erf(x) = (2/sqrt(pi))*(x - x^3/3 + x^5/10 - x^7/42 + ....)
@@ -59,14 +59,14 @@ static char rcsid[] = "$NetBSD: s_erf.c,v 1.8 1995/05/10 20:47:05 jtc Exp $";
* That is, we use rational approximation to approximate
* erf(1+s) - (c = (single)0.84506291151)
* Note that |P1/Q1|< 0.078 for x in [0.84375,1.25]
- * where
+ * where
* P1(s) = degree 6 poly in s
* Q1(s) = degree 6 poly in s
*
- * 3. For x in [1.25,1/0.35(~2.857143)],
+ * 3. For x in [1.25,1/0.35(~2.857143)],
* erfc(x) = (1/x)*exp(-x*x-0.5625+R1/S1)
* erf(x) = 1 - erfc(x)
- * where
+ * where
* R1(z) = degree 7 poly in z, (z=1/x^2)
* S1(z) = degree 8 poly in z
*
@@ -84,7 +84,7 @@ static char rcsid[] = "$NetBSD: s_erf.c,v 1.8 1995/05/10 20:47:05 jtc Exp $";
* To compute exp(-x*x-0.5625+R/S), let s be a single
* precision number and s := x; then
* -x*x = -s*s + (s-x)*(s+x)
- * exp(-x*x-0.5626+R/S) =
+ * exp(-x*x-0.5626+R/S) =
* exp(-s*s-0.5625)*exp((s-x)*(s+x)+R/S);
* Note2:
* Here 4 and 5 make use of the asymptotic series
@@ -104,7 +104,7 @@ static char rcsid[] = "$NetBSD: s_erf.c,v 1.8 1995/05/10 20:47:05 jtc Exp $";
*
* 7. Special case:
* erf(0) = 0, erf(inf) = 1, erf(-inf) = -1,
- * erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2,
+ * erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2,
* erfc/erf(NaN) is NaN
*/
@@ -139,7 +139,7 @@ qq3 = 5.08130628187576562776e-03, /* 0x3F74D022, 0xC4D36B0F */
qq4 = 1.32494738004321644526e-04, /* 0x3F215DC9, 0x221C1A10 */
qq5 = -3.96022827877536812320e-06, /* 0xBED09C43, 0x42A26120 */
/*
- * Coefficients for approximation to erf in [0.84375,1.25]
+ * Coefficients for approximation to erf in [0.84375,1.25]
*/
pa0 = -2.36211856075265944077e-03, /* 0xBF6359B8, 0xBEF77538 */
pa1 = 4.14856118683748331666e-01, /* 0x3FDA8D00, 0xAD92B34D */
@@ -209,7 +209,7 @@ sb7 = -2.24409524465858183362e+01; /* 0xC03670E2, 0x42712D62 */
if(ix < 0x3feb0000) { /* |x|<0.84375 */
if(ix < 0x3e300000) { /* |x|<2**-28 */
- if (ix < 0x00800000)
+ if (ix < 0x00800000)
return 0.125*(8.0*x+efx8*x); /*avoid underflow */
return x + efx*x;
}
@@ -241,7 +241,7 @@ sb7 = -2.24409524465858183362e+01; /* 0xC03670E2, 0x42712D62 */
S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
sb5+s*(sb6+s*sb7))))));
}
- z = x;
+ z = x;
SET_LOW_WORD(z,0);
r = __ieee754_exp(-z*z-0.5625)*__ieee754_exp((z-x)*(z+x)+R/S);
if(hx>=0) return one-r/x; else return r/x-one;
@@ -284,7 +284,7 @@ weak_alias (__erf, erf)
P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
if(hx>=0) {
- z = one-erx; return z - P/Q;
+ z = one-erx; return z - P/Q;
} else {
z = erx+P/Q; return one+z;
}
@@ -314,3 +314,7 @@ weak_alias (__erf, erf)
}
}
weak_alias (__erfc, erfc)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__erfc, __erfcl)
+weak_alias (__erfc, erfcl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_expm1.c b/sysdeps/libm-ieee754/s_expm1.c
index a88ec295d3..c8354b7262 100644
--- a/sysdeps/libm-ieee754/s_expm1.c
+++ b/sysdeps/libm-ieee754/s_expm1.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -21,9 +21,9 @@ static char rcsid[] = "$NetBSD: s_expm1.c,v 1.8 1995/05/10 20:47:09 jtc Exp $";
* 1. Argument reduction:
* Given x, find r and integer k such that
*
- * x = k*ln2 + r, |r| <= 0.5*ln2 ~ 0.34658
+ * x = k*ln2 + r, |r| <= 0.5*ln2 ~ 0.34658
*
- * Here a correction term c will be computed to compensate
+ * Here a correction term c will be computed to compensate
* the error in r when rounded to a floating-point number.
*
* 2. Approximating expm1(r) by a special rational function on
@@ -36,9 +36,9 @@ static char rcsid[] = "$NetBSD: s_expm1.c,v 1.8 1995/05/10 20:47:09 jtc Exp $";
* R1(r**2) = 6/r *((exp(r)+1)/(exp(r)-1) - 2/r)
* = 6/r * ( 1 + 2.0*(1/(exp(r)-1) - 1/r))
* = 1 - r^2/60 + r^4/2520 - r^6/100800 + ...
- * We use a special Reme algorithm on [0,0.347] to generate
- * a polynomial of degree 5 in r*r to approximate R1. The
- * maximum error of this polynomial approximation is bounded
+ * We use a special Reme algorithm on [0,0.347] to generate
+ * a polynomial of degree 5 in r*r to approximate R1. The
+ * maximum error of this polynomial approximation is bounded
* by 2**-61. In other words,
* R1(z) ~ 1.0 + Q1*z + Q2*z**2 + Q3*z**3 + Q4*z**4 + Q5*z**5
* where Q1 = -1.6666666666666567384E-2,
@@ -49,28 +49,28 @@ static char rcsid[] = "$NetBSD: s_expm1.c,v 1.8 1995/05/10 20:47:09 jtc Exp $";
* (where z=r*r, and the values of Q1 to Q5 are listed below)
* with error bounded by
* | 5 | -61
- * | 1.0+Q1*z+...+Q5*z - R1(z) | <= 2
+ * | 1.0+Q1*z+...+Q5*z - R1(z) | <= 2
* | |
- *
- * expm1(r) = exp(r)-1 is then computed by the following
- * specific way which minimize the accumulation rounding error:
+ *
+ * expm1(r) = exp(r)-1 is then computed by the following
+ * specific way which minimize the accumulation rounding error:
* 2 3
* r r [ 3 - (R1 + R1*r/2) ]
* expm1(r) = r + --- + --- * [--------------------]
* 2 2 [ 6 - r*(3 - R1*r/2) ]
- *
+ *
* To compensate the error in the argument reduction, we use
- * expm1(r+c) = expm1(r) + c + expm1(r)*c
- * ~ expm1(r) + c + r*c
+ * expm1(r+c) = expm1(r) + c + expm1(r)*c
+ * ~ expm1(r) + c + r*c
* Thus c+r*c will be added in as the correction terms for
- * expm1(r+c). Now rearrange the term to avoid optimization
+ * expm1(r+c). Now rearrange the term to avoid optimization
* screw up:
* ( 2 2 )
* ({ ( r [ R1 - (3 - R1*r/2) ] ) } r )
* expm1(r+c)~r - ({r*(--- * [--------------------]-c)-c} - --- )
* ({ ( 2 [ 6 - r*(3 - R1*r/2) ] ) } 2 )
* ( )
- *
+ *
* = r - E
* 3. Scale back to obtain expm1(x):
* From step 1, we have
@@ -87,7 +87,7 @@ static char rcsid[] = "$NetBSD: s_expm1.c,v 1.8 1995/05/10 20:47:09 jtc Exp $";
* else return 1.0+2.0*(r-E);
* (v) if (k<-2||k>56) return 2^k(1-(E-r)) - 1 (or exp(x)-1)
* (vi) if k <= 20, return 2^k((1-2^-k)-(E-r)), else
- * (vii) return 2^k(1-((E+2^-k)-r))
+ * (vii) return 2^k(1-((E+2^-k)-r))
*
* Special cases:
* expm1(INF) is INF, expm1(NaN) is NaN;
@@ -99,12 +99,12 @@ static char rcsid[] = "$NetBSD: s_expm1.c,v 1.8 1995/05/10 20:47:09 jtc Exp $";
* 1 ulp (unit in the last place).
*
* Misc. info.
- * For IEEE double
+ * For IEEE double
* if x > 7.09782712893383973096e+02 then expm1(x) overflow
*
* Constants:
- * The hexadecimal values are the intended ones for the following
- * constants. The decimal values may be used, provided that the
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
* compiler will convert from decimal to binary accurately enough
* to produce the hexadecimal values shown.
*/
@@ -153,7 +153,7 @@ Q5 = -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */
if(hx>=0x7ff00000) {
u_int32_t low;
GET_LOW_WORD(low,x);
- if(((hx&0xfffff)|low)!=0)
+ if(((hx&0xfffff)|low)!=0)
return x+x; /* NaN */
else return (xsb==0)? x:-1.0;/* exp(+-inf)={inf,-1} */
}
@@ -166,7 +166,7 @@ Q5 = -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */
}
/* argument reduction */
- if(hx > 0x3fd62e42) { /* if |x| > 0.5 ln2 */
+ if(hx > 0x3fd62e42) { /* if |x| > 0.5 ln2 */
if(hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */
if(xsb==0)
{hi = x - ln2_hi; lo = ln2_lo; k = 1;}
@@ -180,10 +180,10 @@ Q5 = -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */
}
x = hi - lo;
c = (hi-x)-lo;
- }
+ }
else if(hx < 0x3c900000) { /* when |x|<2**-54, return x */
t = huge+x; /* return x with inexact flags when x!=0 */
- return x - (t-(huge+x));
+ return x - (t-(huge+x));
}
else k = 0;
@@ -198,7 +198,7 @@ Q5 = -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */
e = (x*(e-c)-c);
e -= hxs;
if(k== -1) return 0.5*(x-e)-0.5;
- if(k==1)
+ if(k==1)
if(x < -0.25) return -2.0*(e-(x+0.5));
else return one+2.0*(x-e);
if (k <= -2 || k>56) { /* suffice to return exp(x)-1 */
@@ -227,3 +227,7 @@ Q5 = -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */
return y;
}
weak_alias (__expm1, expm1)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__expm1, __expm1l)
+weak_alias (__expm1, expm1l)
+#endif
diff --git a/sysdeps/libm-ieee754/s_fabs.c b/sysdeps/libm-ieee754/s_fabs.c
index 1b9437c66a..1abe9432a3 100644
--- a/sysdeps/libm-ieee754/s_fabs.c
+++ b/sysdeps/libm-ieee754/s_fabs.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -34,3 +34,7 @@ static char rcsid[] = "$NetBSD: s_fabs.c,v 1.7 1995/05/10 20:47:13 jtc Exp $";
return x;
}
weak_alias (__fabs, fabs)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__fabs, __fabsl)
+weak_alias (__fabs, fabsl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_finite.c b/sysdeps/libm-ieee754/s_finite.c
index c2c428595c..b12ff42360 100644
--- a/sysdeps/libm-ieee754/s_finite.c
+++ b/sysdeps/libm-ieee754/s_finite.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -34,3 +34,7 @@ static char rcsid[] = "$NetBSD: s_finite.c,v 1.8 1995/05/10 20:47:17 jtc Exp $";
return (int)((u_int32_t)((hx&0x7fffffff)-0x7ff00000)>>31);
}
weak_alias (__finite, finite)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__finite, __finitel)
+weak_alias (__finite, finitel)
+#endif
diff --git a/sysdeps/libm-ieee754/s_floor.c b/sysdeps/libm-ieee754/s_floor.c
index 4dabc77a78..77db9ef392 100644
--- a/sysdeps/libm-ieee754/s_floor.c
+++ b/sysdeps/libm-ieee754/s_floor.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -46,7 +46,7 @@ static double huge = 1.0e300;
if(j0<20) {
if(j0<0) { /* raise inexact if x != 0 */
if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */
- if(i0>=0) {i0=i1=0;}
+ if(i0>=0) {i0=i1=0;}
else if(((i0&0x7fffffff)|i1)!=0)
{ i0=0xbff00000;i1=0;}
}
@@ -66,7 +66,7 @@ static double huge = 1.0e300;
if((i1&i)==0) return x; /* x is integral */
if(huge+x>0.0) { /* raise inexact flag */
if(i0<0) {
- if(j0==20) i0+=1;
+ if(j0==20) i0+=1;
else {
j = i1+(1<<(52-j0));
if(j<i1) i0 +=1 ; /* got a carry */
@@ -80,3 +80,7 @@ static double huge = 1.0e300;
return x;
}
weak_alias (__floor, floor)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__floor, __floorl)
+weak_alias (__floor, floorl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_frexp.c b/sysdeps/libm-ieee754/s_frexp.c
index 1f3bfcef5b..7dbddfde06 100644
--- a/sysdeps/libm-ieee754/s_frexp.c
+++ b/sysdeps/libm-ieee754/s_frexp.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -15,13 +15,13 @@ static char rcsid[] = "$NetBSD: s_frexp.c,v 1.9 1995/05/10 20:47:24 jtc Exp $";
#endif
/*
- * for non-zero x
+ * for non-zero x
* x = frexp(arg,&exp);
* return a double fp quantity x such that 0.5 <= |x| <1.0
* and the corresponding binary exponent "exp". That is
* arg = x*2^exp.
- * If arg is inf, 0.0, or NaN, then frexp(arg,&exp) returns arg
- * with *exp=0.
+ * If arg is inf, 0.0, or NaN, then frexp(arg,&exp) returns arg
+ * with *exp=0.
*/
#include "math.h"
@@ -58,3 +58,7 @@ two54 = 1.80143985094819840000e+16; /* 0x43500000, 0x00000000 */
return x;
}
weak_alias (__frexp, frexp)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__frexp, __frexpl)
+weak_alias (__frexp, frexpl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_ilogb.c b/sysdeps/libm-ieee754/s_ilogb.c
index 9cdcdb7c3e..0c28b689b9 100644
--- a/sysdeps/libm-ieee754/s_ilogb.c
+++ b/sysdeps/libm-ieee754/s_ilogb.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -36,7 +36,7 @@ static char rcsid[] = "$NetBSD: s_ilogb.c,v 1.9 1995/05/10 20:47:28 jtc Exp $";
hx &= 0x7fffffff;
if(hx<0x00100000) {
GET_LOW_WORD(lx,x);
- if((hx|lx)==0)
+ if((hx|lx)==0)
return 0x80000001; /* ilogb(0) = 0x80000001 */
else /* subnormal x */
if(hx==0) {
@@ -50,3 +50,7 @@ static char rcsid[] = "$NetBSD: s_ilogb.c,v 1.9 1995/05/10 20:47:28 jtc Exp $";
else return 0x7fffffff;
}
weak_alias (__ilogb, ilogb)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__ilogb, __ilogbl)
+weak_alias (__ilogb, ilogbl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_ldexp.c b/sysdeps/libm-ieee754/s_ldexp.c
index 94a93fc063..12c336fad4 100644
--- a/sysdeps/libm-ieee754/s_ldexp.c
+++ b/sysdeps/libm-ieee754/s_ldexp.c
@@ -31,3 +31,7 @@ static char rcsid[] = "$NetBSD: s_ldexp.c,v 1.6 1995/05/10 20:47:40 jtc Exp $";
return value;
}
weak_alias (__ldexp, ldexp)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__ldexp, __ldexpl)
+weak_alias (__ldexp, ldexpl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_log1p.c b/sysdeps/libm-ieee754/s_log1p.c
index 1e58ccb039..cc380a1091 100644
--- a/sysdeps/libm-ieee754/s_log1p.c
+++ b/sysdeps/libm-ieee754/s_log1p.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -16,9 +16,9 @@ static char rcsid[] = "$NetBSD: s_log1p.c,v 1.8 1995/05/10 20:47:46 jtc Exp $";
/* double log1p(double x)
*
- * Method :
- * 1. Argument Reduction: find k and f such that
- * 1+x = 2^k * (1+f),
+ * Method :
+ * 1. Argument Reduction: find k and f such that
+ * 1+x = 2^k * (1+f),
* where sqrt(2)/2 < 1+f < sqrt(2) .
*
* Note. If k=0, then f=x is exact. However, if k!=0, then f
@@ -32,8 +32,8 @@ static char rcsid[] = "$NetBSD: s_log1p.c,v 1.8 1995/05/10 20:47:46 jtc Exp $";
* Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s)
* = 2s + 2/3 s**3 + 2/5 s**5 + .....,
* = 2s + s*R
- * We use a special Reme algorithm on [0,0.1716] to generate
- * a polynomial of degree 14 to approximate R The maximum error
+ * We use a special Reme algorithm on [0,0.1716] to generate
+ * a polynomial of degree 14 to approximate R The maximum error
* of this polynomial approximation is bounded by 2**-58.45. In
* other words,
* 2 4 6 8 10 12 14
@@ -41,21 +41,21 @@ static char rcsid[] = "$NetBSD: s_log1p.c,v 1.8 1995/05/10 20:47:46 jtc Exp $";
* (the values of Lp1 to Lp7 are listed in the program)
* and
* | 2 14 | -58.45
- * | Lp1*s +...+Lp7*s - R(z) | <= 2
+ * | Lp1*s +...+Lp7*s - R(z) | <= 2
* | |
* Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2.
* In order to guarantee error in log below 1ulp, we compute log
* by
* log1p(f) = f - (hfsq - s*(hfsq+R)).
- *
- * 3. Finally, log1p(x) = k*ln2 + log1p(f).
+ *
+ * 3. Finally, log1p(x) = k*ln2 + log1p(f).
* = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo)))
- * Here ln2 is split into two floating point number:
+ * Here ln2 is split into two floating point number:
* ln2_hi + ln2_lo,
* where n*ln2_hi is always exact for |n| < 2000.
*
* Special cases:
- * log1p(x) is NaN with signal if x < -1 (including -INF) ;
+ * log1p(x) is NaN with signal if x < -1 (including -INF) ;
* log1p(+INF) is +INF; log1p(-1) is -INF with signal;
* log1p(NaN) is that NaN with no signal.
*
@@ -64,14 +64,14 @@ static char rcsid[] = "$NetBSD: s_log1p.c,v 1.8 1995/05/10 20:47:46 jtc Exp $";
* 1 ulp (unit in the last place).
*
* Constants:
- * The hexadecimal values are the intended ones for the following
- * constants. The decimal values may be used, provided that the
- * compiler will convert from decimal to binary accurately enough
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
* to produce the hexadecimal values shown.
*
* Note: Assuming log() return accurate answer, the following
* algorithm can be used to compute log1p(x) to within a few ULP:
- *
+ *
* u = 1+x;
* if(u==1.0) return x ; else
* return log(u)*(x/(u-1.0));
@@ -132,11 +132,11 @@ static double zero = 0.0;
}
if(hx>0||hx<=((int32_t)0xbfd2bec3)) {
k=0;f=x;hu=1;} /* -0.2929<x<0.41422 */
- }
+ }
if (hx >= 0x7ff00000) return x+x;
if(k!=0) {
if(hx<0x43400000) {
- u = 1.0+x;
+ u = 1.0+x;
GET_HIGH_WORD(hu,u);
k = (hu>>20)-1023;
c = (k>0)? 1.0-(u-x):x-(u-1.0);/* correction term */
@@ -151,7 +151,7 @@ static double zero = 0.0;
if(hu<0x6a09e) {
SET_HIGH_WORD(u,hu|0x3ff00000); /* normalize u */
} else {
- k += 1;
+ k += 1;
SET_HIGH_WORD(u,hu|0x3fe00000); /* normalize u/2 */
hu = (0x00100000-hu)>>2;
}
@@ -159,16 +159,20 @@ static double zero = 0.0;
}
hfsq=0.5*f*f;
if(hu==0) { /* |f| < 2**-20 */
- if(f==zero) if(k==0) return zero;
+ if(f==zero) if(k==0) return zero;
else {c += k*ln2_lo; return k*ln2_hi+c;}
R = hfsq*(1.0-0.66666666666666666*f);
if(k==0) return f-R; else
return k*ln2_hi-((R-(k*ln2_lo+c))-f);
}
- s = f/(2.0+f);
+ s = f/(2.0+f);
z = s*s;
R = z*(Lp1+z*(Lp2+z*(Lp3+z*(Lp4+z*(Lp5+z*(Lp6+z*Lp7))))));
if(k==0) return f-(hfsq-s*(hfsq+R)); else
return k*ln2_hi-((hfsq-(s*(hfsq+R)+(k*ln2_lo+c)))-f);
}
weak_alias (__log1p, log1p)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__log1p, __log1pl)
+weak_alias (__log1p, log1pl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_logb.c b/sysdeps/libm-ieee754/s_logb.c
index 4fd43fc5a6..4668cf78f8 100644
--- a/sysdeps/libm-ieee754/s_logb.c
+++ b/sysdeps/libm-ieee754/s_logb.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -36,8 +36,12 @@ static char rcsid[] = "$NetBSD: s_logb.c,v 1.8 1995/05/10 20:47:50 jtc Exp $";
if((ix|lx)==0) return -1.0/fabs(x);
if(ix>=0x7ff00000) return x*x;
if((ix>>=20)==0) /* IEEE 754 logb */
- return -1022.0;
+ return -1022.0;
else
- return (double) (ix-1023);
+ return (double) (ix-1023);
}
weak_alias (__logb, logb)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__logb, __logbl)
+weak_alias (__logb, logbl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_modf.c b/sysdeps/libm-ieee754/s_modf.c
index 8e09128cd7..8075c5f813 100644
--- a/sysdeps/libm-ieee754/s_modf.c
+++ b/sysdeps/libm-ieee754/s_modf.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -15,7 +15,7 @@ static char rcsid[] = "$NetBSD: s_modf.c,v 1.8 1995/05/10 20:47:55 jtc Exp $";
#endif
/*
- * modf(double x, double *iptr)
+ * modf(double x, double *iptr)
* return fraction part of x, and return x's integral part in *iptr.
* Method:
* Bit twiddling.
@@ -82,3 +82,7 @@ static double one = 1.0;
}
}
weak_alias (__modf, modf)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__modf, __modfl)
+weak_alias (__modf, modfl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_nextafter.c b/sysdeps/libm-ieee754/s_nextafter.c
index 359ed8cc53..ee973bcee8 100644
--- a/sysdeps/libm-ieee754/s_nextafter.c
+++ b/sysdeps/libm-ieee754/s_nextafter.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -39,15 +39,15 @@ static char rcsid[] = "$NetBSD: s_nextafter.c,v 1.8 1995/05/10 20:47:58 jtc Exp
ix = hx&0x7fffffff; /* |x| */
iy = hy&0x7fffffff; /* |y| */
- if(((ix>=0x7ff00000)&&((ix-0x7ff00000)|lx)!=0) || /* x is nan */
- ((iy>=0x7ff00000)&&((iy-0x7ff00000)|ly)!=0)) /* y is nan */
- return x+y;
+ if(((ix>=0x7ff00000)&&((ix-0x7ff00000)|lx)!=0) || /* x is nan */
+ ((iy>=0x7ff00000)&&((iy-0x7ff00000)|ly)!=0)) /* y is nan */
+ return x+y;
if(x==y) return x; /* x=y, return x */
if((ix|lx)==0) { /* x == 0 */
INSERT_WORDS(x,hy&0x80000000,1); /* return +-minsubnormal */
y = x*x;
if(y==x) return y; else return x; /* raise underflow flag */
- }
+ }
if(hx>=0) { /* x > 0 */
if(hx>hy||((hx==hy)&&(lx>ly))) { /* x > y, x -= ulp */
if(lx==0) hx -= 1;
@@ -78,3 +78,7 @@ static char rcsid[] = "$NetBSD: s_nextafter.c,v 1.8 1995/05/10 20:47:58 jtc Exp
return x;
}
weak_alias (__nextafter, nextafter)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__nextafter, __nextafterl)
+weak_alias (__nextafter, nextafterl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_rint.c b/sysdeps/libm-ieee754/s_rint.c
index e24feaf1ac..e5f241291c 100644
--- a/sysdeps/libm-ieee754/s_rint.c
+++ b/sysdeps/libm-ieee754/s_rint.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -30,7 +30,7 @@ static char rcsid[] = "$NetBSD: s_rint.c,v 1.8 1995/05/10 20:48:04 jtc Exp $";
#ifdef __STDC__
static const double
#else
-static double
+static double
#endif
TWO52[2]={
4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
@@ -51,7 +51,7 @@ TWO52[2]={
sx = (i0>>31)&1;
j0 = ((i0>>20)&0x7ff)-0x3ff;
if(j0<20) {
- if(j0<0) {
+ if(j0<0) {
if(((i0&0x7fffffff)|i1)==0) return x;
i1 |= (i0&0x0fffff);
i0 &= 0xfffe0000;
@@ -85,3 +85,7 @@ TWO52[2]={
return w-TWO52[sx];
}
weak_alias (__rint, rint)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__rint, __rintl)
+weak_alias (__rint, rintl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_scalbn.c b/sysdeps/libm-ieee754/s_scalbn.c
index 6efaec07ac..439b966e69 100644
--- a/sysdeps/libm-ieee754/s_scalbn.c
+++ b/sysdeps/libm-ieee754/s_scalbn.c
@@ -65,3 +65,7 @@ tiny = 1.0e-300;
return x*twom54;
}
weak_alias (__scalbn, scalbn)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__scalbn, __scalbnl)
+weak_alias (__scalbn, scalbnl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_significand.c b/sysdeps/libm-ieee754/s_significand.c
index 72265d397f..4ab078c473 100644
--- a/sysdeps/libm-ieee754/s_significand.c
+++ b/sysdeps/libm-ieee754/s_significand.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -33,3 +33,7 @@ static char rcsid[] = "$NetBSD: s_significand.c,v 1.6 1995/05/10 20:48:11 jtc Ex
return __ieee754_scalb(x,(double) -ilogb(x));
}
weak_alias (__significand, significand)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__significand, __significandl)
+weak_alias (__significand, significandl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_sin.c b/sysdeps/libm-ieee754/s_sin.c
index efcf774158..376c69ed00 100644
--- a/sysdeps/libm-ieee754/s_sin.c
+++ b/sysdeps/libm-ieee754/s_sin.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -23,8 +23,8 @@ static char rcsid[] = "$NetBSD: s_sin.c,v 1.7 1995/05/10 20:48:15 jtc Exp $";
* __ieee754_rem_pio2 ... argument reduction routine
*
* Method.
- * Let S,C and T denote the sin, cos and tan respectively on
- * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ * Let S,C and T denote the sin, cos and tan respectively on
+ * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
* in [-pi/4 , +pi/4], and let n = k mod 4.
* We have
*
@@ -42,7 +42,7 @@ static char rcsid[] = "$NetBSD: s_sin.c,v 1.7 1995/05/10 20:48:15 jtc Exp $";
* trig(NaN) is that NaN;
*
* Accuracy:
- * TRIG(x) returns trig(x) nearly rounded
+ * TRIG(x) returns trig(x) nearly rounded
*/
#include "math.h"
@@ -81,3 +81,7 @@ static char rcsid[] = "$NetBSD: s_sin.c,v 1.7 1995/05/10 20:48:15 jtc Exp $";
}
}
weak_alias (__sin, sin)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__sin, __sinl)
+weak_alias (__sin, sinl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_tan.c b/sysdeps/libm-ieee754/s_tan.c
index dcd9d506a6..714cf27dd2 100644
--- a/sysdeps/libm-ieee754/s_tan.c
+++ b/sysdeps/libm-ieee754/s_tan.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -22,8 +22,8 @@ static char rcsid[] = "$NetBSD: s_tan.c,v 1.7 1995/05/10 20:48:18 jtc Exp $";
* __ieee754_rem_pio2 ... argument reduction routine
*
* Method.
- * Let S,C and T denote the sin, cos and tan respectively on
- * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ * Let S,C and T denote the sin, cos and tan respectively on
+ * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
* in [-pi/4 , +pi/4], and let n = k mod 4.
* We have
*
@@ -41,7 +41,7 @@ static char rcsid[] = "$NetBSD: s_tan.c,v 1.7 1995/05/10 20:48:18 jtc Exp $";
* trig(NaN) is that NaN;
*
* Accuracy:
- * TRIG(x) returns trig(x) nearly rounded
+ * TRIG(x) returns trig(x) nearly rounded
*/
#include "math.h"
@@ -75,3 +75,7 @@ static char rcsid[] = "$NetBSD: s_tan.c,v 1.7 1995/05/10 20:48:18 jtc Exp $";
}
}
weak_alias (__tan, tan)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__tan, __tanl)
+weak_alias (__tan, tanl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_tanh.c b/sysdeps/libm-ieee754/s_tanh.c
index 22d064bc5d..208b459b35 100644
--- a/sysdeps/libm-ieee754/s_tanh.c
+++ b/sysdeps/libm-ieee754/s_tanh.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -62,7 +62,7 @@ static double one=1.0, two=2.0, tiny = 1.0e-300;
ix = jx&0x7fffffff;
/* x is INF or NaN */
- if(ix>=0x7ff00000) {
+ if(ix>=0x7ff00000) {
if (jx>=0) return one/x+one; /* tanh(+-inf)=+-1 */
else return one/x-one; /* tanh(NaN) = NaN */
}
@@ -85,3 +85,7 @@ static double one=1.0, two=2.0, tiny = 1.0e-300;
return (jx>=0)? z: -z;
}
weak_alias (__tanh, tanh)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__tanh, __tanhl)
+weak_alias (__tanh, tanhl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_tanhl.c b/sysdeps/libm-ieee754/s_tanhl.c
index 984f67108b..9863af62a5 100644
--- a/sysdeps/libm-ieee754/s_tanhl.c
+++ b/sysdeps/libm-ieee754/s_tanhl.c
@@ -46,9 +46,9 @@ static char rcsid[] = "$NetBSD: $";
#include "math_private.h"
#ifdef __STDC__
-static const long double one=1.0, two=2.0, tiny = 1.0e-16380L;
+static const long double one=1.0, two=2.0, tiny = 1.0e-4900L;
#else
-static long double one=1.0, two=2.0, tiny = 1.0e-16380L;
+static long double one=1.0, two=2.0, tiny = 1.0e-4900L;
#endif
#ifdef __STDC__
@@ -59,7 +59,8 @@ static long double one=1.0, two=2.0, tiny = 1.0e-16380L;
#endif
{
long double t,z;
- int32_t se,j0,j1,ix;
+ int32_t se;
+ u_int32_t j0,j1,ix;
/* High word of |x|. */
GET_LDOUBLE_WORDS(se,j0,j1,x);
@@ -72,7 +73,7 @@ static long double one=1.0, two=2.0, tiny = 1.0e-16380L;
}
/* |x| < 23 */
- if (ix < 0x4003 || (ix == 0x4003 && j0 < 0xb8000000)) { /* |x|<23 */
+ if (ix < 0x4003 || (ix == 0x4003 && j0 < 0xb8000000u)) {/* |x|<23 */
if (ix<0x3fc8) /* |x|<2**-55 */
return x*(one+x); /* tanh(small) = small */
if (ix>=0x3fff) { /* |x|>=1 */
diff --git a/sysdeps/libm-ieee754/w_acos.c b/sysdeps/libm-ieee754/w_acos.c
index d60d1c3202..5a1158ea7a 100644
--- a/sysdeps/libm-ieee754/w_acos.c
+++ b/sysdeps/libm-ieee754/w_acos.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -42,3 +42,7 @@ static char rcsid[] = "$NetBSD: w_acos.c,v 1.6 1995/05/10 20:48:26 jtc Exp $";
#endif
}
weak_alias (__acos, acos)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__acos, __acosl)
+weak_alias (__acos, acosl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_acosh.c b/sysdeps/libm-ieee754/w_acosh.c
index 46f9cf92fc..2b5d60f7ea 100644
--- a/sysdeps/libm-ieee754/w_acosh.c
+++ b/sysdeps/libm-ieee754/w_acosh.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -14,7 +14,7 @@
static char rcsid[] = "$NetBSD: w_acosh.c,v 1.6 1995/05/10 20:48:31 jtc Exp $";
#endif
-/*
+/*
* wrapper acosh(x)
*/
@@ -41,3 +41,7 @@ static char rcsid[] = "$NetBSD: w_acosh.c,v 1.6 1995/05/10 20:48:31 jtc Exp $";
#endif
}
weak_alias (__acosh, acosh)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__acosh, __acoshl)
+weak_alias (__acosh, acoshl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_asin.c b/sysdeps/libm-ieee754/w_asin.c
index 529dd59236..a7ca4ef9fd 100644
--- a/sysdeps/libm-ieee754/w_asin.c
+++ b/sysdeps/libm-ieee754/w_asin.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -14,7 +14,7 @@
static char rcsid[] = "$NetBSD: w_asin.c,v 1.6 1995/05/10 20:48:35 jtc Exp $";
#endif
-/*
+/*
* wrapper asin(x)
*/
@@ -43,3 +43,7 @@ static char rcsid[] = "$NetBSD: w_asin.c,v 1.6 1995/05/10 20:48:35 jtc Exp $";
#endif
}
weak_alias (__asin, asin)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__asin, __asinl)
+weak_alias (__asin, asinl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_atan2.c b/sysdeps/libm-ieee754/w_atan2.c
index abfe64ae61..ec29d55eb9 100644
--- a/sysdeps/libm-ieee754/w_atan2.c
+++ b/sysdeps/libm-ieee754/w_atan2.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -14,7 +14,7 @@
static char rcsid[] = "$NetBSD: w_atan2.c,v 1.6 1995/05/10 20:48:39 jtc Exp $";
#endif
-/*
+/*
* wrapper atan2(y,x)
*/
@@ -42,3 +42,7 @@ static char rcsid[] = "$NetBSD: w_atan2.c,v 1.6 1995/05/10 20:48:39 jtc Exp $";
#endif
}
weak_alias (__atan2, atan2)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__atan2, __atan2l)
+weak_alias (__atan2, atan2l)
+#endif
diff --git a/sysdeps/libm-ieee754/w_atanh.c b/sysdeps/libm-ieee754/w_atanh.c
index 43f5ff79fd..e7995b1830 100644
--- a/sysdeps/libm-ieee754/w_atanh.c
+++ b/sysdeps/libm-ieee754/w_atanh.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -14,7 +14,7 @@
static char rcsid[] = "$NetBSD: w_atanh.c,v 1.6 1995/05/10 20:48:43 jtc Exp $";
#endif
-/*
+/*
* wrapper atanh(x)
*/
@@ -39,10 +39,14 @@ static char rcsid[] = "$NetBSD: w_atanh.c,v 1.6 1995/05/10 20:48:43 jtc Exp $";
if(y>=1.0) {
if(y>1.0)
return __kernel_standard(x,x,30); /* atanh(|x|>1) */
- else
+ else
return __kernel_standard(x,x,31); /* atanh(|x|==1) */
} else
return z;
#endif
}
weak_alias (__atanh, atanh)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__atanh, __atanhl)
+weak_alias (__atanh, atanhl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_cabs.c b/sysdeps/libm-ieee754/w_cabs.c
index ccacf67363..6c67436c6a 100644
--- a/sysdeps/libm-ieee754/w_cabs.c
+++ b/sysdeps/libm-ieee754/w_cabs.c
@@ -1,6 +1,6 @@
/*
* cabs() wrapper for hypot().
- *
+ *
* Written by J.T. Conklin, <jtc@wimsey.com>
* Placed into the Public Domain, 1994.
*/
@@ -14,3 +14,7 @@ __cabs(z)
return __hypot(z.x, z.y);
}
weak_alias (__cabs, cabs)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__cabs, __cabsl)
+weak_alias (__cabs, cabsl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_cosh.c b/sysdeps/libm-ieee754/w_cosh.c
index 651dee14d5..8db25c868c 100644
--- a/sysdeps/libm-ieee754/w_cosh.c
+++ b/sysdeps/libm-ieee754/w_cosh.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -14,7 +14,7 @@
static char rcsid[] = "$NetBSD: w_cosh.c,v 1.6 1995/05/10 20:48:47 jtc Exp $";
#endif
-/*
+/*
* wrapper cosh(x)
*/
@@ -34,10 +34,14 @@ static char rcsid[] = "$NetBSD: w_cosh.c,v 1.6 1995/05/10 20:48:47 jtc Exp $";
double z;
z = __ieee754_cosh(x);
if(_LIB_VERSION == _IEEE_ || __isnan(x)) return z;
- if(fabs(x)>7.10475860073943863426e+02) {
+ if(fabs(x)>7.10475860073943863426e+02) {
return __kernel_standard(x,x,5); /* cosh overflow */
} else
return z;
#endif
}
weak_alias (__cosh, cosh)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__cosh, __coshl)
+weak_alias (__cosh, coshl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_drem.c b/sysdeps/libm-ieee754/w_drem.c
index 203a7d1c9f..9e2b1e7472 100644
--- a/sysdeps/libm-ieee754/w_drem.c
+++ b/sysdeps/libm-ieee754/w_drem.c
@@ -1,6 +1,6 @@
/*
* drem() wrapper for remainder().
- *
+ *
* Written by J.T. Conklin, <jtc@wimsey.com>
* Placed into the Public Domain, 1994.
*/
@@ -14,3 +14,7 @@ __drem(x, y)
return __remainder(x, y);
}
weak_alias (__drem, drem)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__drem, __dreml)
+weak_alias (__drem, dreml)
+#endif
diff --git a/sysdeps/libm-ieee754/w_exp.c b/sysdeps/libm-ieee754/w_exp.c
index cc39b9086e..445c5788d2 100644
--- a/sysdeps/libm-ieee754/w_exp.c
+++ b/sysdeps/libm-ieee754/w_exp.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -14,7 +14,7 @@
static char rcsid[] = "$NetBSD: w_exp.c,v 1.6 1995/05/10 20:48:51 jtc Exp $";
#endif
-/*
+/*
* wrapper exp(x)
*/
@@ -47,8 +47,12 @@ u_threshold= -7.45133219101941108420e+02; /* 0xc0874910, 0xD52D3051 */
return __kernel_standard(x,x,6); /* exp overflow */
else if(x<u_threshold)
return __kernel_standard(x,x,7); /* exp underflow */
- }
+ }
return z;
#endif
}
weak_alias (__exp, exp)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__exp, __expl)
+weak_alias (__exp, expl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_fmod.c b/sysdeps/libm-ieee754/w_fmod.c
index 2102ba215c..0ceeb98c55 100644
--- a/sysdeps/libm-ieee754/w_fmod.c
+++ b/sysdeps/libm-ieee754/w_fmod.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -14,7 +14,7 @@
static char rcsid[] = "$NetBSD: w_fmod.c,v 1.6 1995/05/10 20:48:55 jtc Exp $";
#endif
-/*
+/*
* wrapper fmod(x,y)
*/
@@ -42,3 +42,7 @@ static char rcsid[] = "$NetBSD: w_fmod.c,v 1.6 1995/05/10 20:48:55 jtc Exp $";
#endif
}
weak_alias (__fmod, fmod)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__fmod, __fmodl)
+weak_alias (__fmod, fmodl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_gamma.c b/sysdeps/libm-ieee754/w_gamma.c
index 8a0a18079a..49e4bcf3c3 100644
--- a/sysdeps/libm-ieee754/w_gamma.c
+++ b/sysdeps/libm-ieee754/w_gamma.c
@@ -48,3 +48,7 @@ extern int signgam;
#endif
}
weak_alias (__gamma, gamma)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__gamma, __gammal)
+weak_alias (__gamma, gammal)
+#endif
diff --git a/sysdeps/libm-ieee754/w_gamma_r.c b/sysdeps/libm-ieee754/w_gamma_r.c
index 103dbabf63..f9efc8cf2e 100644
--- a/sysdeps/libm-ieee754/w_gamma_r.c
+++ b/sysdeps/libm-ieee754/w_gamma_r.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -14,7 +14,7 @@
static char rcsid[] = "$NetBSD: w_gamma_r.c,v 1.7 1995/11/20 22:06:45 jtc Exp $";
#endif
-/*
+/*
* wrapper double gamma_r(double x, int *signgamp)
*/
@@ -43,5 +43,9 @@ static char rcsid[] = "$NetBSD: w_gamma_r.c,v 1.7 1995/11/20 22:06:45 jtc Exp $"
} else
return y;
#endif
-}
+}
weak_alias (__gamma_r, gamma_r)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__gamma_r, __gammal_r)
+weak_alias (__gamma_r, gammal_r)
+#endif
diff --git a/sysdeps/libm-ieee754/w_hypot.c b/sysdeps/libm-ieee754/w_hypot.c
index 1fd8f12fa6..e91db17083 100644
--- a/sysdeps/libm-ieee754/w_hypot.c
+++ b/sysdeps/libm-ieee754/w_hypot.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -42,3 +42,7 @@ static char rcsid[] = "$NetBSD: w_hypot.c,v 1.6 1995/05/10 20:49:07 jtc Exp $";
#endif
}
weak_alias (__hypot, hypot)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__hypot, __hypotl)
+weak_alias (__hypot, hypotl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_j0.c b/sysdeps/libm-ieee754/w_j0.c
index 1486c14cfd..c327e1c98f 100644
--- a/sysdeps/libm-ieee754/w_j0.c
+++ b/sysdeps/libm-ieee754/w_j0.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -40,6 +40,11 @@ static char rcsid[] = "$NetBSD: w_j0.c,v 1.6 1995/05/10 20:49:11 jtc Exp $";
#endif
}
weak_alias (__j0, j0)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__j0, __j0l)
+weak_alias (__j0, j0l)
+#endif
+
#ifdef __STDC__
double __y0(double x) /* wrapper y0 */
@@ -69,3 +74,7 @@ weak_alias (__j0, j0)
#endif
}
weak_alias (__y0, y0)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__y0, __y0l)
+weak_alias (__y0, y0l)
+#endif
diff --git a/sysdeps/libm-ieee754/w_j1.c b/sysdeps/libm-ieee754/w_j1.c
index 9d09f0d080..ae6e9b5537 100644
--- a/sysdeps/libm-ieee754/w_j1.c
+++ b/sysdeps/libm-ieee754/w_j1.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -14,8 +14,8 @@
static char rcsid[] = "$NetBSD: w_j1.c,v 1.6 1995/05/10 20:49:15 jtc Exp $";
#endif
-/*
- * wrapper of j1,y1
+/*
+ * wrapper of j1,y1
*/
#include "math.h"
@@ -41,6 +41,11 @@ static char rcsid[] = "$NetBSD: w_j1.c,v 1.6 1995/05/10 20:49:15 jtc Exp $";
#endif
}
weak_alias (__j1, j1)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__j1, __j1l)
+weak_alias (__j1, j1l)
+#endif
+
#ifdef __STDC__
double __y1(double x) /* wrapper y1 */
@@ -70,3 +75,7 @@ weak_alias (__j1, j1)
#endif
}
weak_alias (__y1, y1)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__y1, __y1l)
+weak_alias (__y1, y1l)
+#endif
diff --git a/sysdeps/libm-ieee754/w_jn.c b/sysdeps/libm-ieee754/w_jn.c
index 9f5506b229..ecd86c0d8b 100644
--- a/sysdeps/libm-ieee754/w_jn.c
+++ b/sysdeps/libm-ieee754/w_jn.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_jn.c,v 1.6 1995/05/10 20:49:19 jtc Exp $";
* wrapper jn(int n, double x), yn(int n, double x)
* floating point Bessel's function of the 1st and 2nd kind
* of order n
- *
+ *
* Special cases:
* y0(0)=y1(0)=yn(n,0) = -inf with division by zero signal;
* y0(-ve)=y1(-ve)=yn(n,-ve) are NaN with invalid signal.
@@ -37,7 +37,7 @@ static char rcsid[] = "$NetBSD: w_jn.c,v 1.6 1995/05/10 20:49:19 jtc Exp $";
* yn(n,x) is similar in all respects, except
* that forward recursion is used for all
* values of n>1.
- *
+ *
*/
#include "math.h"
@@ -63,6 +63,11 @@ static char rcsid[] = "$NetBSD: w_jn.c,v 1.6 1995/05/10 20:49:19 jtc Exp $";
#endif
}
weak_alias (__jn, jn)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__jn, __jnl)
+weak_alias (__jn, jnl)
+#endif
+
#ifdef __STDC__
double __yn(int n, double x) /* wrapper yn */
@@ -92,3 +97,7 @@ weak_alias (__jn, jn)
#endif
}
weak_alias (__yn, yn)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__yn, __ynl)
+weak_alias (__yn, ynl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_lgamma.c b/sysdeps/libm-ieee754/w_lgamma.c
index 2563d28f8d..be8a174742 100644
--- a/sysdeps/libm-ieee754/w_lgamma.c
+++ b/sysdeps/libm-ieee754/w_lgamma.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -46,5 +46,9 @@ extern int signgam;
} else
return y;
#endif
-}
+}
weak_alias (__lgamma, lgamma)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__lgamma, __lgammal)
+weak_alias (__lgamma, lgammal)
+#endif
diff --git a/sysdeps/libm-ieee754/w_lgamma_r.c b/sysdeps/libm-ieee754/w_lgamma_r.c
index c5c5edc94a..f3e7d821e2 100644
--- a/sysdeps/libm-ieee754/w_lgamma_r.c
+++ b/sysdeps/libm-ieee754/w_lgamma_r.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -14,7 +14,7 @@
static char rcsid[] = "$NetBSD: w_lgamma_r.c,v 1.6 1995/05/10 20:49:27 jtc Exp $";
#endif
-/*
+/*
* wrapper double lgamma_r(double x, int *signgamp)
*/
@@ -43,5 +43,9 @@ static char rcsid[] = "$NetBSD: w_lgamma_r.c,v 1.6 1995/05/10 20:49:27 jtc Exp $
} else
return y;
#endif
-}
+}
weak_alias (__lgamma_r, lgamma_r)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__lgamma_r, __lgammal_r)
+weak_alias (__lgamma_r, lgammal_r)
+#endif
diff --git a/sysdeps/libm-ieee754/w_log.c b/sysdeps/libm-ieee754/w_log.c
index d1713eb398..5f0af79731 100644
--- a/sysdeps/libm-ieee754/w_log.c
+++ b/sysdeps/libm-ieee754/w_log.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -37,8 +37,12 @@ static char rcsid[] = "$NetBSD: w_log.c,v 1.6 1995/05/10 20:49:33 jtc Exp $";
if(_LIB_VERSION == _IEEE_ || __isnan(x) || x > 0.0) return z;
if(x==0.0)
return __kernel_standard(x,x,16); /* log(0) */
- else
+ else
return __kernel_standard(x,x,17); /* log(x<0) */
#endif
}
weak_alias (__log, log)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__log, __logl)
+weak_alias (__log, logl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_log10.c b/sysdeps/libm-ieee754/w_log10.c
index 46334cefb9..fc35607644 100644
--- a/sysdeps/libm-ieee754/w_log10.c
+++ b/sysdeps/libm-ieee754/w_log10.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -14,7 +14,7 @@
static char rcsid[] = "$NetBSD: w_log10.c,v 1.6 1995/05/10 20:49:35 jtc Exp $";
#endif
-/*
+/*
* wrapper log10(X)
*/
@@ -38,10 +38,14 @@ static char rcsid[] = "$NetBSD: w_log10.c,v 1.6 1995/05/10 20:49:35 jtc Exp $";
if(x<=0.0) {
if(x==0.0)
return __kernel_standard(x,x,18); /* log10(0) */
- else
+ else
return __kernel_standard(x,x,19); /* log10(x<0) */
} else
return z;
#endif
}
weak_alias (__log10, log10)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__log10, __log10l)
+weak_alias (__log10, log10)
+#endif
diff --git a/sysdeps/libm-ieee754/w_pow.c b/sysdeps/libm-ieee754/w_pow.c
index adc1b2b0b7..ea19e1f554 100644
--- a/sysdeps/libm-ieee754/w_pow.c
+++ b/sysdeps/libm-ieee754/w_pow.c
@@ -7,12 +7,12 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
-/*
+/*
* wrapper pow(x,y) return x**y
*/
@@ -34,12 +34,12 @@
z=__ieee754_pow(x,y);
if(_LIB_VERSION == _IEEE_|| __isnan(y)) return z;
if(__isnan(x)) {
- if(y==0.0)
+ if(y==0.0)
return __kernel_standard(x,y,42); /* pow(NaN,0.0) */
- else
+ else
return z;
}
- if(x==0.0){
+ if(x==0.0){
if(y==0.0)
return __kernel_standard(x,y,20); /* pow(0.0,0.0) */
if(__finite(y)&&y<0.0)
@@ -50,13 +50,17 @@
if(__finite(x)&&__finite(y)) {
if(__isnan(z))
return __kernel_standard(x,y,24); /* pow neg**non-int */
- else
+ else
return __kernel_standard(x,y,21); /* pow overflow */
}
- }
+ }
if(z==0.0&&__finite(x)&&__finite(y))
return __kernel_standard(x,y,22); /* pow underflow */
return z;
#endif
}
weak_alias (__pow, pow)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__pow, __powl)
+weak_alias (__pow, powl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_remainder.c b/sysdeps/libm-ieee754/w_remainder.c
index 9fd2952033..d85a3febce 100644
--- a/sysdeps/libm-ieee754/w_remainder.c
+++ b/sysdeps/libm-ieee754/w_remainder.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -14,7 +14,7 @@
static char rcsid[] = "$NetBSD: w_remainder.c,v 1.6 1995/05/10 20:49:44 jtc Exp $";
#endif
-/*
+/*
* wrapper remainder(x,p)
*/
@@ -34,10 +34,14 @@ static char rcsid[] = "$NetBSD: w_remainder.c,v 1.6 1995/05/10 20:49:44 jtc Exp
double z;
z = __ieee754_remainder(x,y);
if(_LIB_VERSION == _IEEE_ || __isnan(y)) return z;
- if(y==0.0)
+ if(y==0.0)
return __kernel_standard(x,y,28); /* remainder(x,0) */
else
return z;
#endif
}
weak_alias (__remainder, remainder)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__remainder, __remainderl)
+weak_alias (__remainder, remainderl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_scalb.c b/sysdeps/libm-ieee754/w_scalb.c
index 53d41144d6..e5c407a435 100644
--- a/sysdeps/libm-ieee754/w_scalb.c
+++ b/sysdeps/libm-ieee754/w_scalb.c
@@ -59,3 +59,7 @@ static char rcsid[] = "$NetBSD: w_scalb.c,v 1.6 1995/05/10 20:49:48 jtc Exp $";
#endif
}
weak_alias (__scalb, scalb)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__scalb, __scalbl)
+weak_alias (__scalb, scalbl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_sinh.c b/sysdeps/libm-ieee754/w_sinh.c
index 9ecc4c5ab7..9b34cd1873 100644
--- a/sysdeps/libm-ieee754/w_sinh.c
+++ b/sysdeps/libm-ieee754/w_sinh.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -14,7 +14,7 @@
static char rcsid[] = "$NetBSD: w_sinh.c,v 1.6 1995/05/10 20:49:51 jtc Exp $";
#endif
-/*
+/*
* wrapper sinh(x)
*/
@@ -31,7 +31,7 @@ static char rcsid[] = "$NetBSD: w_sinh.c,v 1.6 1995/05/10 20:49:51 jtc Exp $";
#ifdef _IEEE_LIBM
return __ieee754_sinh(x);
#else
- double z;
+ double z;
z = __ieee754_sinh(x);
if(_LIB_VERSION == _IEEE_) return z;
if(!__finite(z)&&__finite(x)) {
@@ -41,3 +41,7 @@ static char rcsid[] = "$NetBSD: w_sinh.c,v 1.6 1995/05/10 20:49:51 jtc Exp $";
#endif
}
weak_alias (__sinh, sinh)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__sinh, __sinhl)
+weak_alias (__sinh, sinhl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_sqrt.c b/sysdeps/libm-ieee754/w_sqrt.c
index 6351732bf0..be15d959ea 100644
--- a/sysdeps/libm-ieee754/w_sqrt.c
+++ b/sysdeps/libm-ieee754/w_sqrt.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -14,7 +14,7 @@
static char rcsid[] = "$NetBSD: w_sqrt.c,v 1.6 1995/05/10 20:49:55 jtc Exp $";
#endif
-/*
+/*
* wrapper sqrt(x)
*/
@@ -41,3 +41,7 @@ static char rcsid[] = "$NetBSD: w_sqrt.c,v 1.6 1995/05/10 20:49:55 jtc Exp $";
#endif
}
weak_alias (__sqrt, sqrt)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__sqrt, __sqrtl)
+weak_alias (__sqrt, sqrtl)
+#endif