Branch Coverage

powerfree.c
Criterion Covered Total %
branch 132 156 84.6


line true false branch
24 217 192 for (P = 1, i = 0; i < nf.nfactors; i++)
34 91113 20200 if (k < 2 || n <= 1) return (n==1);
1809 89304 if (k < 2 || n <= 1) return (n==1);
36 0 89304 if (k >= BITS_PER_WORD) return 1;
37 47410 41894 if (n < (UVCONST(1) << (k-1))) return 1;
38 4502 37392 if (n == ((n >> k) << k)) return 0;
39 7552 29840 if (k == 2) return is_square_free(n);
42 8383 21457 if (k == 3) {
43 8100 283 if ( !(n % 27) || !(n % 125) || !(n % 343) || !(n%1331) || !(n%2197) )
8100 0 if ( !(n % 27) || !(n % 125) || !(n % 343) || !(n%1331) || !(n%2197) )
8097 3 if ( !(n % 27) || !(n % 125) || !(n % 343) || !(n%1331) || !(n%2197) )
8097 0 if ( !(n % 27) || !(n % 125) || !(n % 343) || !(n%1331) || !(n%2197) )
0 8097 if ( !(n % 27) || !(n % 125) || !(n % 343) || !(n%1331) || !(n%2197) )
45 8083 14 if (n < 4913) return 1;
50 37677 21431 for (i = 0; i < nf.nfactors; i++) {
51 40 37637 if (nf.e[i] >= k)
65 0 100 if (n < 4) return n;
72 0 100 New(0, M, D+1, IV);
76 762 100 for (i = 2; i <= D; i++) {
77 525 237 if (mu[i] != 0) {
85 0 100 Newz(0, Mx, I+1, IV);
87 95 100 for (i = I-1; i > 0; i--) {
91 554 95 for (j = 1; j <= xi/(L+1); j++)
93 497 95 for (j = 2; j <= L; j++)
94 489 8 Mxi -= (xi/j <= D) ? M[xi/j] : Mx[j*j*i];
109 202 920 if (k < 2) return (n >= 1);
110 36 884 if (n < 4) return n;
111 100 784 if (k == 2) return squarefree_count(n);
116 782 2 if (nk <= 100) {
117 516 782 for (i = 2; i <= nk; i++) {
119 445 71 if (m != 0)
124 207 2 for (i = 2; i <= nk; i++)
125 128 79 if (mu[i] != 0)
136 202 913 if (k < 2) return (n >= 1);
138 0 913 if (n >= (UVCONST(1) << (BITS_PER_WORD/2))) return 0; /* Overflow */
143 1081 913 for (i = 2; i <= nk; i++) {
145 851 230 if (m != 0) {
146 452 399 UV ik = (k==2) ? i*i : ipow(i,k);
161 3209 1056 if (k < 2 || n <= 1)
196 3013 if (k < 2 || n <= 1)
164 3013 0 if (k >= BITS_PER_WORD || n < (UVCONST(1) << (k-1)))
1566 1447 if (k >= BITS_PER_WORD || n < (UVCONST(1) << (k-1)))
168 1447 0 t = ctz(n);
170 608 839 if ((t % k)) P <<= (t % k);
173 1939 1447 for (i = 0; i < nf.nfactors; i++)
174 68 1871 if (nf.e[i] >= k)
185 204 68 if (k < 2 || n <= 1) return (n >= 1);
12 192 if (k < 2 || n <= 1) return (n >= 1);
187 0 192 if (n >= (UVCONST(1) << (BITS_PER_WORD/2))) return 0; /* Overflow */
194 191 1 if (nk <= 100) {
195 192 191 for (j = 2; j <= nk; j++)
203 232 1 for (j = 2; j <= nk; j++) {
206 601 232 for (P = 1, i = 0; i < nfactors; i++)
207 369 232 if (i == 0 || factors[i] != factors[i-1])
206 163 if (i == 0 || factors[i] != factors[i-1])
232 0 7 if (k < 2) return 0;
233 0 7 if (n < 4) return n;
236 2 5 if (k == 2 && n > MAX_PFC2) return 0;
0 2 if (k == 2 && n > MAX_PFC2) return 0;
237 3 4 if (k == 3 && n > MAX_PFC3) return 0;
0 3 if (k == 3 && n > MAX_PFC3) return 0;
238 2 5 if (k >= 4 && n > MAX_PFC4) {
0 2 if (k >= 4 && n > MAX_PFC4) {
239 0 0 if (k == 4) return 0;
240 0 0 if (n > powerfree_count(UV_MAX,k)) return 0;
246 5 2 thresh = (k <= 2) ? 200 : (k == 3) ? 60 : (k == 4) ? 2 : 1;
2 3 thresh = (k <= 2) ? 200 : (k == 3) ? 60 : (k == 4) ? 2 : 1;
1 1 thresh = (k <= 2) ? 200 : (k == 3) ? 60 : (k == 4) ? 2 : 1;
248 7 0 for (i = 0; i < 10; i++) {
251 6 1 diff = (count >= n) ? count-n : n-count;
253 7 0 if (diff <= thresh) break;
254 0 0 if (count > n) qk -= (UV)((long double)diff * zm);
259 4 7 while (!is_powerfree(qk,k)) qk--;
262 16 7 while (count != n) {
263 4 21 do { qk += (count < n) ? 1 : -1; } while (!is_powerfree(qk,k));
9 16 do { qk += (count < n) ? 1 : -1; } while (!is_powerfree(qk,k));
264 2 14 count += (count < n) ? 1 : -1;
278 21 9 for (P = 1, i = 0; i < nf.nfactors; i++)