1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

Fix cproj implmentation.

This commit is contained in:
Ulrich Drepper
2010-04-08 15:32:51 -07:00
parent 5e4295fb58
commit 88e236a627
6 changed files with 33 additions and 51 deletions

View File

@ -1,5 +1,5 @@
/* Compute projection of complex double value to Riemann sphere.
Copyright (C) 1997, 1999 Free Software Foundation, Inc.
Copyright (C) 1997, 1999, 2010 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -25,24 +25,19 @@
__complex__ double
__cproj (__complex__ double x)
{
__complex__ double res;
if (isnan (__real__ x) && isnan (__imag__ x))
return x;
else if (!isfinite (__real__ x) || !isfinite (__imag__ x))
{
__complex__ double res;
__real__ res = INFINITY;
__imag__ res = __copysign (0.0, __imag__ x);
}
else
{
double den = __real__ x * __real__ x + __imag__ x * __imag__ x + 1.0;
__real__ res = (2.0 * __real__ x) / den;
__imag__ res = (2.0 * __imag__ x) / den;
return res;
}
return res;
return x;
}
weak_alias (__cproj, cproj)
#ifdef NO_LONG_DOUBLE