Lines Matching +full:- +full:i
1 /* kf_rem_pio2.c -- float version of k_rem_pio2.c
25 4.5776367188e-04, /* 0x39f00000 */
26 2.5987625122e-05, /* 0x37da0000 */
27 7.5437128544e-08, /* 0x33a20000 */
28 6.0026650317e-11, /* 0x2e840000 */
29 7.3896444519e-13, /* 0x2b500000 */
30 5.3845816694e-15, /* 0x27c20000 */
31 5.6378512969e-18, /* 0x22d00000 */
32 8.3009228831e-20, /* 0x1fc40000 */
33 3.2756352257e-22, /* 0x1bc60000 */
34 6.3331015649e-25, /* 0x17440000 */
39 twon8 = 3.9062500000e-03; /* 0x3b800000 */
42 #pragma GCC diagnostic ignored "-Wpragmas"
43 #pragma GCC diagnostic ignored "-Wunknown-warning-option"
44 #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
46 #pragma GCC diagnostic ignored "-Wanalyzer-use-of-uninitialized-value"
53 __int32_t jz, jx, jv, jp, jk, carry, n, iq[20], i, j, k, m, q0, ih; in __kernel_rem_pio2f() local
61 jx = nx - 1; in __kernel_rem_pio2f()
62 jv = (e0 - 3) / 8; in __kernel_rem_pio2f()
65 q0 = e0 - 8 * (jv + 1); in __kernel_rem_pio2f()
68 j = jv - jx; in __kernel_rem_pio2f()
70 for (i = 0; i <= m; i++, j++) in __kernel_rem_pio2f()
71 f[i] = (j < 0) ? zero : (float)ipio2[j]; in __kernel_rem_pio2f()
74 for (i = 0; i <= jk; i++) { in __kernel_rem_pio2f()
76 fw += x[j] * f[jx + i - j]; in __kernel_rem_pio2f()
77 q[i] = fw; in __kernel_rem_pio2f()
83 for (i = 0, j = jz, z = q[jz]; j > 0; i++, j--) { in __kernel_rem_pio2f()
85 iq[i] = (__int32_t)(z - two8 * fw); in __kernel_rem_pio2f()
86 z = q[j - 1] + fw; in __kernel_rem_pio2f()
91 z -= (float)8.0 * floorf(z * (float)0.125); /* trim off integer >= 8 */ in __kernel_rem_pio2f()
93 z -= (float)n; in __kernel_rem_pio2f()
95 if (q0 > 0) { /* need iq[jz-1] to determine n */ in __kernel_rem_pio2f()
96 i = (iq[jz - 1] >> (8 - q0)); in __kernel_rem_pio2f()
97 n += i; in __kernel_rem_pio2f()
98 iq[jz - 1] -= i << (8 - q0); in __kernel_rem_pio2f()
99 ih = iq[jz - 1] >> (7 - q0); in __kernel_rem_pio2f()
101 ih = iq[jz - 1] >> 7; in __kernel_rem_pio2f()
108 for (i = 0; i < jz; i++) { /* compute 1-q */ in __kernel_rem_pio2f()
109 j = iq[i]; in __kernel_rem_pio2f()
113 iq[i] = 0x100 - j; in __kernel_rem_pio2f()
116 iq[i] = 0xff - j; in __kernel_rem_pio2f()
121 iq[jz - 1] &= 0x7f; in __kernel_rem_pio2f()
124 iq[jz - 1] &= 0x3f; in __kernel_rem_pio2f()
129 z = one - z; in __kernel_rem_pio2f()
131 z -= scalbnf(one, (int)q0); in __kernel_rem_pio2f()
138 for (i = jz - 1; i >= jk; i--) in __kernel_rem_pio2f()
139 j |= iq[i]; in __kernel_rem_pio2f()
141 for (k = 1; iq[jk - k] == 0; k++) in __kernel_rem_pio2f()
144 for (i = jz + 1; i <= jz + k; i++) { /* add q[jz+1] to q[jz+k] */ in __kernel_rem_pio2f()
145 f[jx + i] = (float)ipio2[jv + i]; in __kernel_rem_pio2f()
147 fw += x[j] * f[jx + i - j]; in __kernel_rem_pio2f()
148 q[i] = fw; in __kernel_rem_pio2f()
157 jz -= 1; in __kernel_rem_pio2f()
158 q0 -= 8; in __kernel_rem_pio2f()
160 jz--; in __kernel_rem_pio2f()
161 q0 -= 8; in __kernel_rem_pio2f()
163 } else { /* break z into 8-bit if necessary */ in __kernel_rem_pio2f()
164 z = scalbnf(z, -(int)q0); in __kernel_rem_pio2f()
167 iq[jz] = (__int32_t)(z - two8 * fw); in __kernel_rem_pio2f()
175 /* convert integer "bit" chunk to floating-point value */ in __kernel_rem_pio2f()
177 for (i = jz; i >= 0; i--) { in __kernel_rem_pio2f()
178 q[i] = fw * (float)iq[i]; in __kernel_rem_pio2f()
183 for (i = jz; i >= 0; i--) { in __kernel_rem_pio2f()
184 for (fw = 0.0, k = 0; k <= jp && k <= jz - i; k++) in __kernel_rem_pio2f()
185 fw += PIo2[k] * q[i + k]; in __kernel_rem_pio2f()
186 fq[jz - i] = fw; in __kernel_rem_pio2f()
193 for (i = jz; i >= 0; i--) in __kernel_rem_pio2f()
194 fw += fq[i]; in __kernel_rem_pio2f()
195 y[0] = (ih == 0) ? fw : -fw; in __kernel_rem_pio2f()
200 for (i = jz; i >= 0; i--) in __kernel_rem_pio2f()
201 fw += fq[i]; in __kernel_rem_pio2f()
202 y[0] = (ih == 0) ? fw : -fw; in __kernel_rem_pio2f()
203 fw = fq[0] - fw; in __kernel_rem_pio2f()
204 for (i = 1; i <= jz; i++) in __kernel_rem_pio2f()
205 fw += fq[i]; in __kernel_rem_pio2f()
206 y[1] = (ih == 0) ? fw : -fw; in __kernel_rem_pio2f()
209 for (i = jz; i > 0; i--) { in __kernel_rem_pio2f()
210 fw = fq[i - 1] + fq[i]; in __kernel_rem_pio2f()
211 fq[i] += fq[i - 1] - fw; in __kernel_rem_pio2f()
212 fq[i - 1] = fw; in __kernel_rem_pio2f()
214 for (i = jz; i > 1; i--) { in __kernel_rem_pio2f()
215 fw = fq[i - 1] + fq[i]; in __kernel_rem_pio2f()
216 fq[i] += fq[i - 1] - fw; in __kernel_rem_pio2f()
217 fq[i - 1] = fw; in __kernel_rem_pio2f()
219 for (fw = 0.0, i = jz; i >= 2; i--) in __kernel_rem_pio2f()
220 fw += fq[i]; in __kernel_rem_pio2f()
226 y[0] = -fq[0]; in __kernel_rem_pio2f()
227 y[1] = -fq[1]; in __kernel_rem_pio2f()
228 y[2] = -fw; in __kernel_rem_pio2f()