Lines Matching +full:- +full:a
1 /* ef_hypot.c -- float version of e_hypot.c.
9 * Developed at SunPro, a Sun Microsystems, Inc. business.
21 float a = x, b = y, t1, t2, y1, y2, w; in hypotf() local
33 SET_FLOAT_WORD(a, ha); /* a <- |a| */ in hypotf()
34 SET_FLOAT_WORD(b, hb); /* b <- |b| */ in hypotf()
35 if ((ha - hb) > 0xf000000L) { in hypotf()
36 return a + b; in hypotf()
39 if (ha > 0x58800000L) { /* a>2**50 */ in hypotf()
41 w = a + b; /* for sNaN */ in hypotf()
43 w = a; in hypotf()
44 if (FLT_UWORD_IS_INFINITE(hb) && !issignaling(a)) in hypotf()
48 /* scale a and b by 2**-68 */ in hypotf()
49 ha -= 0x22000000L; in hypotf()
50 hb -= 0x22000000L; in hypotf()
52 SET_FLOAT_WORD(a, ha); in hypotf()
55 if (hb < 0x26800000L) { /* b < 2**-50 */ in hypotf()
57 return a; in hypotf()
61 a *= t1; in hypotf()
62 k -= 126; in hypotf()
63 } else { /* scale a and b by 2^68 */ in hypotf()
64 ha += 0x22000000; /* a *= 2^68 */ in hypotf()
66 k -= 68; in hypotf()
67 SET_FLOAT_WORD(a, ha); in hypotf()
71 /* medium size a and b */ in hypotf()
72 w = a - b; in hypotf()
75 t2 = a - t1; in hypotf()
76 w = sqrtf(t1 * t1 - (b * (-b) - t2 * (a + t1))); in hypotf()
78 a = a + a; in hypotf()
80 y2 = b - y1; in hypotf()
82 t2 = a - t1; in hypotf()
83 w = sqrtf(t1 * y1 - (w * (-w) - (t1 * y2 + t2 * b))); in hypotf()