#include <math.h>
#include <stdint.h>

float hypotf(float x, float y) {
  union {
    float f;
    uint32_t i;
  } ux = {x}, uy = {y}, ut;
  float_t z;

  ux.i &= -1U >> 1;
  uy.i &= -1U >> 1;
  if (ux.i < uy.i) {
    ut = ux;
    ux = uy;
    uy = ut;
  }

  x = ux.f;
  y = uy.f;
  if (uy.i == 0xff << 23)
    return y;
  if (ux.i >= 0xff << 23 || uy.i == 0 || ux.i - uy.i >= 25 << 23)
    return x + y;

  z = 1;
  if (ux.i >= (0x7f + 60) << 23) {
    z = 0x1p90f;
    x *= 0x1p-90f;
    y *= 0x1p-90f;
  } else if (uy.i < (0x7f - 60) << 23) {
    z = 0x1p-90f;
    x *= 0x1p90f;
    y *= 0x1p90f;
  }
  return z * sqrtf((double)x * x + (double)y * y);
}
