#include "f2c.h"
#include "netlib.h"
#ifdef KR_headers
extern double sqrt();
double f__cabs(real, imag) double real, imag;
#else
extern double sqrt(double); /* #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;
}
