Lines Matching full:got
38 gets rounded to got, i.e. error before rounding, for a correctly
40 static double RT (ulperr) (RT (float) got, const struct RT (ret) * p, int r,
47 if (RT(asuint) (got) == RT(asuint) (want))
49 if (isnan (got) && isnan (want))
54 return RT (issignaling) (got) == RT (issignaling) (want) ? 0 : INFINITY;
56 if (signbit (got) != signbit (want))
59 exactly one of want and got is non-zero. */
60 if (ignore_zero_sign && want == got)
62 if (!ignore_zero_sign || (want != 0 && got != 0))
65 if (!isfinite (want) || !isfinite (got))
67 if (isnan (got) != isnan (want))
71 if (isinf (got))
73 got = RT(copysign) (RT(halfinf), got);
79 got *= 0.5f;
84 // TODO: incorrect when got vs want cross a powof2 boundary
85 /* error = got > want
86 ? got - want - tail ulp - 0.5 ulp
87 : got - want - tail ulp + 0.5 ulp. */
88 d = got - want;
93 if ((r == FE_DOWNWARD && got < want) || (r == FE_UPWARD && got > want)
94 || (r == FE_TOWARDZERO && fabs (got) < fabs (want)))
95 got = RT(nextafter) (got, want);
96 d = got - want;
203 /* returns 1 if the got result is ok. */
304 printf (" got %a then %a for same input\n", ygot, ygot2);
341 printf (" got %a want %a %+g ulp err %g\n", ygot, want.y,
353 printf (" is %a %+g ulp, got except 0x%0x", want.y, want.tail,