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 float 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__ float
__cprojf (__complex__ float x)
{
__complex__ float res;
if (isnan (__real__ x) && isnan (__imag__ x))
return x;
else if (!isfinite (__real__ x) || !isfinite (__imag__ x))
{
__complex__ float res;
__real__ res = INFINITY;
__imag__ res = __copysignf (0.0, __imag__ x);
}
else
{
float 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;
}
#ifndef __cprojf
weak_alias (__cprojf, cprojf)