Lines Matching defs:absy
648 double absx, absy, c, m, r;
655 absy = fabs(y);
656 m = fmod(absx, absy);
661 of absy. However, we can't do that comparison directly because we
662 can't be sure that 0.5*absy is representable (the multiplication
664 m with the complement c = absy - m: m < 0.5*absy if and only if m <
665 c, and so on. The catch is that absy - m might also not be
668 - if m > 0.5*absy then absy - m is exactly representable, by
670 - if m == 0.5*absy then again absy - m is exactly representable
672 - if m < 0.5*absy then either (i) 0.5*absy is exactly representable,
673 in which case 0.5*absy < absy - m, so 0.5*absy <= c and hence m <
674 c, or (ii) absy is tiny, either subnormal or in the lowest normal
675 binade. Then absy - m is exactly representable and again m < c.
678 c = absy - m;
687 Here absx is exactly halfway between two multiples of absy,
690 absx = n * absy + m
692 for some integer n (recalling that m = 0.5*absy at this point).
698 0.5 * (absx - m) = (n/2) * absy
700 and now reducing modulo absy gives us:
703 fmod(0.5 * (absx - m), absy) = |
709 Note that all steps in fmod(0.5 * (absx - m), absy)
714 r = m - 2.0 * fmod(0.5 * (absx - m), absy);