diff options
Diffstat (limited to 'contrib/libf2c/libF77/cabs.c')
-rw-r--r-- | contrib/libf2c/libF77/cabs.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/contrib/libf2c/libF77/cabs.c b/contrib/libf2c/libF77/cabs.c new file mode 100644 index 0000000..2fad044 --- /dev/null +++ b/contrib/libf2c/libF77/cabs.c @@ -0,0 +1,27 @@ +#ifdef KR_headers +extern double sqrt(); +double f__cabs(real, imag) double real, imag; +#else +#undef abs +#include <math.h> +double f__cabs(double real, double imag) +#endif +{ +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); +} |