Blame cblas/hypot.c

Packit 67cb25
#include <math.h>
Packit 67cb25
Packit 67cb25
static double xhypot (const double x, const double y);
Packit 67cb25
Packit 67cb25
static double xhypot (const double x, const double y)
Packit 67cb25
{
Packit 67cb25
  double xabs = fabs(x) ;
Packit 67cb25
  double yabs = fabs(y) ;
Packit 67cb25
  double min, max;
Packit 67cb25
Packit 67cb25
  if (xabs < yabs) {
Packit 67cb25
    min = xabs ;
Packit 67cb25
    max = yabs ;
Packit 67cb25
  } else {
Packit 67cb25
    min = yabs ;
Packit 67cb25
    max = xabs ;
Packit 67cb25
  }
Packit 67cb25
Packit 67cb25
  if (min == 0) 
Packit 67cb25
    {
Packit 67cb25
      return max ;
Packit 67cb25
    }
Packit 67cb25
Packit 67cb25
  {
Packit 67cb25
    double u = min / max ;
Packit 67cb25
    return max * sqrt (1 + u * u) ;
Packit 67cb25
  }
Packit 67cb25
}