From 35838fd0b5f2afbb914ec70c567255b68a6f1a89 Mon Sep 17 00:00:00 2001 From: das Date: Tue, 7 Dec 2010 02:19:15 +0000 Subject: Fix various nits in style and comments that were pointed out by bde. Code changes verified with md5. --- lib/msun/man/math.3 | 7 +++---- lib/msun/src/e_log2.c | 8 ++++---- lib/msun/src/e_log2f.c | 8 ++++++-- lib/msun/src/k_logf.h | 6 +++--- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/lib/msun/man/math.3 b/lib/msun/man/math.3 index 8e79ce5..39aa8ab 100644 --- a/lib/msun/man/math.3 +++ b/lib/msun/man/math.3 @@ -195,7 +195,7 @@ yn Bessel function of the second kind of the order n .El .Pp The routines -in this section may not produce a result that is correctly rounded, +in this section might not produce a result that is correctly rounded, so reproducible results cannot be guaranteed across platforms. For most of these functions, however, incorrect rounding occurs rarely, and then only in very-close-to-halfway cases. @@ -231,9 +231,8 @@ Many of the routines to compute transcendental functions produce inaccurate results in other than the default rounding mode. .Pp On the i386 platform, trigonometric argument reduction is not -performed accurately for very large arguments, resulting in errors -greater than 1 -.Em ulp +performed accurately for huge arguments, resulting in +large errors for such arguments to .Fn cos , .Fn sin , diff --git a/lib/msun/src/e_log2.c b/lib/msun/src/e_log2.c index 8a729d5..6cf3dbc 100644 --- a/lib/msun/src/e_log2.c +++ b/lib/msun/src/e_log2.c @@ -14,8 +14,8 @@ #include __FBSDID("$FreeBSD$"); -/* log2(x) - * Return the base 2 logarithm of x. +/* + * Return the base 2 logarithm of x. See k_log.c for details on the algorithm. */ #include "math.h" @@ -24,8 +24,8 @@ __FBSDID("$FreeBSD$"); static const double two54 = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */ -ivln2hi = 0x1.71547652000p+0, -ivln2lo = 0x1.705fc2eefa2p-33; +ivln2hi = 1.44269504072144627571e+00, /* 0x3ff71547, 0x65200000 */ +ivln2lo = 1.67517131648865118353e-10; /* 0x3de705fc, 0x2eefa200 */ static const double zero = 0.0; diff --git a/lib/msun/src/e_log2f.c b/lib/msun/src/e_log2f.c index 6b2b966..7f1963b 100644 --- a/lib/msun/src/e_log2f.c +++ b/lib/msun/src/e_log2f.c @@ -12,14 +12,18 @@ #include __FBSDID("$FreeBSD$"); +/* + * Return the base 2 logarithm of x. See k_log.c for details on the algorithm. + */ + #include "math.h" #include "math_private.h" #include "k_logf.h" static const float two25 = 3.3554432000e+07, /* 0x4c000000 */ -ivln2hi = 0x1.716p+0f, -ivln2lo = -0x1.7135a8fa03d11p-13; +ivln2hi = 1.4428710938e+00, /* 0x3fb8b000 */ +ivln2lo = -1.7605285393e-04; /* 0xb9389ad4 */ static const float zero = 0.0; diff --git a/lib/msun/src/k_logf.h b/lib/msun/src/k_logf.h index d11a563..d9f0f3d 100644 --- a/lib/msun/src/k_logf.h +++ b/lib/msun/src/k_logf.h @@ -12,8 +12,8 @@ #include __FBSDID("$FreeBSD$"); -/* __kernel_logf(x) - * Return log(x) - (x-1) for x in ~[sqrt(2)/2, sqrt(2)]. +/* + * float version of __kernel_log(x). See k_log.c for details. */ static const float @@ -33,7 +33,7 @@ __kernel_logf(float x) f = x-(float)1.0; if((0x007fffff&(0x8000+ix))<0xc000) { /* -2**-9 <= f < 2**-9 */ - if(f==0.0) return 0.0; + if(f==0.0f) return 0.0f; return f*f*((float)0.33333333333333333*f-(float)0.5); } s = f/((float)2.0+f); -- cgit v1.1