summaryrefslogtreecommitdiffstats
path: root/lib/msun/src/k_cos.c
diff options
context:
space:
mode:
authordas <das@FreeBSD.org>2005-02-04 18:26:06 +0000
committerdas <das@FreeBSD.org>2005-02-04 18:26:06 +0000
commita47af911ba88a733157f219bcea374aafc0e6a34 (patch)
tree358c37c6dfb32659eea19d2a72397142931bc562 /lib/msun/src/k_cos.c
parente8403b23681c8ac8f2c86499943b43c359a4e301 (diff)
downloadFreeBSD-src-a47af911ba88a733157f219bcea374aafc0e6a34.zip
FreeBSD-src-a47af911ba88a733157f219bcea374aafc0e6a34.tar.gz
Reduce diffs against vendor source (Sun fdlibm 5.3).
Diffstat (limited to 'lib/msun/src/k_cos.c')
-rw-r--r--lib/msun/src/k_cos.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/lib/msun/src/k_cos.c b/lib/msun/src/k_cos.c
index f8fe2fd..ad78f8e 100644
--- a/lib/msun/src/k_cos.c
+++ b/lib/msun/src/k_cos.c
@@ -1,11 +1,12 @@
-/* @(#)k_cos.c 5.1 93/09/24 */
+
+/* @(#)k_cos.c 1.3 95/01/18 */
/*
* ====================================================
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
*
- * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Developed at SunSoft, 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 +19,7 @@ static char rcsid[] = "$FreeBSD$";
* __kernel_cos( x, y )
* kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164
* Input x is assumed to be bounded by ~pi/4 in magnitude.
- * Input y is the tail of x.
+ * Input y is the tail of x.
*
* Algorithm
* 1. Since cos(-x) = cos(x), we need only to consider positive x.
@@ -28,15 +29,15 @@ static char rcsid[] = "$FreeBSD$";
* 4 14
* cos(x) ~ 1 - x*x/2 + C1*x + ... + C6*x
* where the remez error is
- *
+ *
* | 2 4 6 8 10 12 14 | -58
* |cos(x)-(1-.5*x +C1*x +C2*x +C3*x +C4*x +C5*x +C6*x )| <= 2
- * | |
- *
- * 4 6 8 10 12 14
+ * | |
+ *
+ * 4 6 8 10 12 14
* 4. let r = C1*x +C2*x +C3*x +C4*x +C5*x +C6*x , then
* cos(x) = 1 - x*x/2 + r
- * since cos(x+y) ~ cos(x) - sin(x)*y
+ * since cos(x+y) ~ cos(x) - sin(x)*y
* ~ cos(x) - x*y,
* a correction term is necessary in cos(x) and hence
* cos(x+y) = 1 - (x*x/2 - (r - x*y))
@@ -73,7 +74,7 @@ __kernel_cos(double x, double y)
}
z = x*x;
r = z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*C6)))));
- if(ix < 0x3FD33333) /* if |x| < 0.3 */
+ if(ix < 0x3FD33333) /* if |x| < 0.3 */
return one - (0.5*z - (z*r - x*y));
else {
if(ix > 0x3fe90000) { /* x > 0.78125 */
OpenPOWER on IntegriCloud