Mercurial > hg > octave-nkf > gnulib-hg
changeset 5327:31a3d72751e2
Add GPL notice, to match glibc's added LGPL notice.
(atanl): Keep the code as similar to glibc as possible.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Wed, 06 Oct 2004 20:01:31 +0000 |
parents | 6523edcee696 |
children | 318f3af87fbb |
files | lib/atanl.c |
diffstat | 1 files changed, 32 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/atanl.c +++ b/lib/atanl.c @@ -42,7 +42,22 @@ * */ -/* Copyright 2001 by Stephen L. Moshier <moshier@na-net.ornl.gov> */ +/* Copyright 2001 by Stephen L. Moshier <moshier@na-net.ornl.gov> + + 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 @@ 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 @@ 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; }