| #undef abs | |
| #include <math.h> | |
| double | |
| f__cabs (double real, double imag) | |
| { | |
| double temp; | |
| if (real < 0) | |
| real = -real; | |
| if (imag < 0) | |
| imag = -imag; | |
| if (imag > real) | |
| { | |
| temp = real; | |
| real = imag; | |
| imag = temp; | |
| } | |
| if ((real + imag) == real) | |
| return (real); | |
| temp = imag / real; | |
| temp = real * sqrt (1.0 + temp * temp); /*overflow!! */ | |
| return (temp); | |
| } |