[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-gnulib] missing licenses in gnulib
From: |
Paul Eggert |
Subject: |
Re: [Bug-gnulib] missing licenses in gnulib |
Date: |
Wed, 06 Oct 2004 13:04:38 -0700 |
User-agent: |
Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux) |
Robert Millan <address@hidden> writes:
> For these borrowed files from other GNU or free software projects, I think we
> still need an explicit note in the files distributed as part of gnulib.
OK, let's start with atanl.c and logl.c. I see that glibc has fixed
this problem by adding a proper copyright notice. Also, I see that
gnulib has departed from the glibc code in some cases where it doesn't
need to (and this arguably could introduce a bug). So I installed
the following patch to fix both problems.
2004-10-06 Paul Eggert <address@hidden>
* lib/atanl.c, lib/logl.c:
Add GPL notice, to match glibc's added LGPL notice.
* lib/atanl.c (atanl): Keep the code as similar to glibc as possible.
* lib/logl.c (logl): Keep the code as similar to glibc as possible.
This avoids a potential constant-folding bug.
Index: lib/atanl.c
===================================================================
RCS file: /cvsroot/gnulib/gnulib/lib/atanl.c,v
retrieving revision 1.1
diff -p -u -r1.1 atanl.c
--- lib/atanl.c 18 Feb 2003 17:05:23 -0000 1.1
+++ lib/atanl.c 6 Oct 2004 19:59:05 -0000
@@ -42,7 +42,22 @@
*
*/
-/* Copyright 2001 by Stephen L. Moshier <address@hidden> */
+/* Copyright 2001 by Stephen L. Moshier <address@hidden>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; see the file COPYING.
+ If not, write to the Free Software Foundation,
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "mathl.h"
@@ -161,19 +176,25 @@ atanl (long double x)
int k, sign;
long double t, u, p, q;
- sign = (x < 0) ? -1 : 1;
+ sign = x < 0.0;
/* Check for zero or NaN. */
if (x != x || x == 0.0)
return x + x;
- /* Check for infinity. */
if (x + x == x)
- return sign * atantbl[83];
+ {
+ /* Infinity. */
+ if (sign)
+ return -atantbl[83];
+ else
+ return atantbl[83];
+ }
- x *= sign;
+ if (sign)
+ x = -x;
- if (x >= 10.25) /* 10.25 */
+ if (x >= 10.25)
{
k = 83;
t = -1.0/x;
@@ -196,5 +217,9 @@ atanl (long double x)
u = t * u * p / q + t;
/* arctan x = arctan u + arctan t */
- return sign * (atantbl[k] + u);
+ u = atantbl[k] + u;
+ if (sign)
+ return (-u);
+ else
+ return u;
}
Index: lib/logl.c
===================================================================
RCS file: /cvsroot/gnulib/gnulib/lib/logl.c,v
retrieving revision 1.1
diff -p -u -r1.1 logl.c
--- lib/logl.c 18 Feb 2003 17:05:23 -0000 1.1
+++ lib/logl.c 6 Oct 2004 19:59:05 -0000
@@ -46,7 +46,22 @@
#include "mathl.h"
-/* Copyright 2001 by Stephen L. Moshier <address@hidden> */
+/* Copyright 2001 by Stephen L. Moshier <address@hidden>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; see the file COPYING.
+ If not, write to the Free Software Foundation,
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* log(1+x) = x - .5 x^2 + x^3 l(x)
-.0078125 <= x <= +.0078125
@@ -173,7 +188,8 @@ static const long double
long double
logl(long double x)
{
- long double z, y, w, u, t;
+ long double z, y, w;
+ long double u, t;
unsigned int m;
int k, e;
@@ -181,15 +197,19 @@ logl(long double x)
/* log(0) = -infinity. */
if (x == 0.0L)
- return -0.5L / 0.0L;
-
+ {
+ return -0.5L / ZERO;
+ }
/* log ( x < 0 ) = NaN */
if (x < 0.0L)
- return (x - x) / (x - x);
-
+ {
+ return (x - x) / ZERO;
+ }
/* log (infinity or NaN) */
if (x + x == x || x != x)
- return x + x;
+ {
+ return x + x;
+ }
/* Extract exponent and reduce domain to 0.703125 <= u < 1.40625 */
x = frexpl(x, &e);
@@ -202,13 +222,13 @@ logl(long double x)
/* On this interval the table is not used due to cancellation error. */
if ((x <= 1.0078125L) && (x >= 0.9921875L))
{
+ z = x - 1.0L;
k = 64;
t = 1.0L;
- z = x - 1.0L;
}
else
{
- k = floorl((x - 0.5L) * 128.0L);
+ k = floorl ((x - 0.5L) * 128.0L);
t = 0.5L + k / 128.0L;
z = (x - t) / t;
}
- Re: [Bug-gnulib] Re: missing licenses in gnulib, (continued)
Re: [Bug-gnulib] missing licenses in gnulib, Robert Millan, 2004/10/06
- Re: [Bug-gnulib] missing licenses in gnulib,
Paul Eggert <=
- Re: [Bug-gnulib] missing licenses in gnulib, Paul Eggert, 2004/10/06
- Re: [Bug-gnulib] missing licenses in gnulib, Paul Eggert, 2004/10/06
- Re: [Bug-gnulib] missing licenses in gnulib, Bruno Haible, 2004/10/07
- Re: [Bug-gnulib] missing licenses in gnulib, Paul Eggert, 2004/10/07
- Re: [Bug-gnulib] missing licenses in gnulib, Robert Millan, 2004/10/13
- Re: [Bug-gnulib] missing licenses in gnulib, Bruno Haible, 2004/10/13
- Re: [Bug-gnulib] missing licenses in gnulib, Robert Millan, 2004/10/13
- Re: [Bug-gnulib] missing licenses in gnulib, Robert Millan, 2004/10/13
Message not available
[Bug-gnulib] Fwd: missing licenses in gnulib, Robert Millan, 2004/10/04