Lines Matching +full:fractional +full:- +full:n
1 /*-
19 #define BIAS (LDBL_MAX_EXP - 1)
35 * fractional mantissa, if the architecture doesn't have such a bit by
43 #define HFRAC_BITS (LDBL_MANH_SIZE - 1)
46 #define MANL_SHIFT (LDBL_MANL_SIZE - 1)
48 static const long double Zero[] = {0.0L, -0.0L};
51 * Return the IEEE remainder and set *quo to the last n bits of the
52 * quotient, rounded to the nearest integer. We choose n=31 because
54 * a side-effect of computing the remainder by the shift and subtract
59 * - The low part of the mantissa fits in a manl_t exactly.
60 * - The high part of the mantissa fits in an int64_t with enough room
61 * for an explicit integer bit in front of the fractional bits.
70 int ix,iy,n,q,sx,sxy; in remquol() local
91 goto fixup; /* |x|<|y| return x or x-y */ in remquol()
94 *quo = (sxy ? -1 : 1); in remquol()
102 ix = ux.bits.exp - (BIAS + 512); in remquol()
104 ix = ux.bits.exp - BIAS; in remquol()
110 iy = uy.bits.exp - (BIAS + 512); in remquol()
112 iy = uy.bits.exp - BIAS; in remquol()
122 n = ix - iy; in remquol()
124 while(n--) { in remquol()
125 hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1; in remquol()
130 hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1; in remquol()
136 *quo = (sxy ? -q : q); in remquol()
141 iy -= 1; in remquol()
147 ux.e *= 0x1p-512; in remquol()
157 x-=y; in remquol()
161 x-=y; in remquol()
167 *quo = (sxy ? -q : q); in remquol()