home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / f2c / f77lib / cabs.c < prev    next >
C/C++ Source or Header  |  2000-06-22  |  427b  |  28 lines

  1. #ifdef KR_headers
  2. extern double sqrt();
  3. double f__cabs(real, imag) double real, imag;
  4. #else
  5. #undef abs
  6. #include "math.h"
  7. double f__cabs(double real, double imag)
  8. #endif
  9. {
  10. double temp;
  11.  
  12. if(real < 0)
  13.     real = -real;
  14. if(imag < 0)
  15.     imag = -imag;
  16. if(imag > real){
  17.     temp = real;
  18.     real = imag;
  19.     imag = temp;
  20. }
  21. if((real+imag) == real)
  22.     return(real);
  23.  
  24. temp = imag/real;
  25. temp = real*sqrt(1.0 + temp*temp);  /*overflow!!*/
  26. return(temp);
  27. }
  28.