Branch Coverage

real.c
Criterion Covered Total %
branch 161 242 66.5


line true false branch
181 9 1 for (n = 0; n <= 8; n++)
211 0 1 SUM_ADD(sum, (LNV_ONE/L_k1));
212 20 0 for (k = 1; k < 500; k++) {
217 20 0 SUM_ADD(sum, r);
220 1 19 if (fabslnv(r) < 0.1 * LNV_EPSILON)
230 8704 0 for (n = 2; n <= 400; n++) {
234 7717 987 SUM_ADD(sum, term);
236 131 8573 if (fabslnv(term) < LNV_EPSILON*fabslnv(SUM_FINAL(sum))) break;
238 129 2 SUM_ADD(sum, euler_mascheroni);
239 131 0 SUM_ADD(sum, loglnv(fabslnv(x)));
240 129 2 SUM_ADD(sum, x);
248 0 0 for (n = 2; n <= 400; n++) {
251 0 0 if (term < LNV_EPSILON*SUM_FINAL(sum)) break;
252 0 0 if (term < last_term) {
253 0 0 SUM_ADD(sum, term);
256 0 0 SUM_ADD(sum, (-last_term/1.07) );
261 0 0 SUM_ADD(sum, invx);
262 0 0 SUM_ADD(sum, LNV_ONE);
268 0 138 if (x == 0) croak("Invalid input to ExponentialIntegral: x must be != 0");
270 0 138 if (x >= 12000) return INFINITY;
271 0 138 if (x <= -12000) return 0;
273 6 132 if (x < 0) {
274 5 1 if (x >= -1.0 && !nv_is_quad) return _ei_chebyshev_neg(x);
5 0 if (x >= -1.0 && !nv_is_quad) return _ei_chebyshev_neg(x);
275 1 0 else if (x < -0.80) return -_eintv_laguerre_series(1, -x);
278 131 1 if (x < (-2 * loglnv(LNV_EPSILON))) return _ei_series_convergent(x);
279 1 0 if (x >= 24 && (!nv_is_quad || x <= 43.2)) return _ei_chebyshev_pos24(x);
0 1 if (x >= 24 && (!nv_is_quad || x <= 43.2)) return _ei_chebyshev_pos24(x);
0 0 if (x >= 24 && (!nv_is_quad || x <= 43.2)) return _ei_chebyshev_pos24(x);
285 0 886 if (x == 0) return 0;
286 0 886 if (x == 1) return -INFINITY;
287 0 886 if (x == 2) return li2;
288 0 886 if (x < 0) croak("Invalid input to LogarithmicIntegral: x must be >= 0");
289 0 886 if (x >= NV_MAX) return INFINITY;
292 886 0 if (x > 1) {
298 34116 0 for (n = 1, k = 0; n < 200; n++) {
303 17287 34116 for (; k <= (n - 1) / 2; k++)
307 886 33230 if (fabslnv(sum - old_sum) <= LNV_EPSILON) break;
319 0 88 t = (lx <= 2) ? 2 : lx * logl(lx);
320 352 48 for (i = 0; i < 4; i++) {
323 264 88 if (i > 0 && fabsl(term) >= fabsl(old_term)) { t -= term/4; break; }
40 224 if (i > 0 && fabsl(term) >= fabsl(old_term)) { t -= term/4; break; }
334 3 84 if (x <= 2) return x + (x > 0);
337 0 84 i = (x > 4e16) ? 2048 : 128;
338 0 84 if (Li(r-1) >= lx) {
339 0 0 while (Li(r-i) >= lx) r -= i;
340 0 0 for (i = i/2; i > 0; i /= 2)
341 0 0 if (Li(r-i) >= lx) r -= i;
342 0 84 } else if (Li(r) < lx) {
343 0 0 while (Li(r+i-1) < lx) r += i;
344 0 0 for (i = i/2; i > 0; i /= 2)
345 0 0 if (Li(r+i-1) < lx) r += i;
355 0 23 if (lx <= 3.5) {
359 0 23 if (lx < 50) { t *= 1.2; }
360 1 22 else if (lx < 1000) { t *= 1.15; }
368 143 0 for (i = 0; i < 100; i++) {
381 120 23 if (i > 0 && fabsl(term) >= fabsl(old_term)) { t -= term/4; break; }
23 97 if (i > 0 && fabsl(term) >= fabsl(old_term)) { t -= term/4; break; }
389 0 23 if (x < 2) return x + (x > 0);
475 0 3916 if (x < 0) croak("Invalid input to RiemannZeta: x must be >= 0");
476 0 3916 if (x == 1) return INFINITY;
478 3912 4 if (x == (unsigned int)x) {
480 3912 0 if ((k >= 0) && (k < (int)NPRECALC_ZETA))
9 3903 if ((k >= 0) && (k < (int)NPRECALC_ZETA))
485 3907 0 if (x >= 0.5 && x <= 5.0) {
2 3905 if (x >= 0.5 && x <= 5.0) {
510 0 3905 if (x > 17000.0)
556 12907 2 for (i = 2; i < 11; i++) {
559 3903 9004 if (fabsl(b) < fabsl(LDBL_EPSILON * s))
564 19 0 for (i = 0; i < 13; i++) {
570 2 17 if (fabsl(t) < fabsl(LDBL_EPSILON * s))
584 0 366 if (x <= 0) croak("Invalid input to RiemannR: x must be > 0");
585 9 357 if (eps < LDBL_EPSILON) eps = LDBL_EPSILON;
587 2 364 if (x > 1e19) {
589 0 2 SUM_ADD(sum, Li(x));
590 132 0 for (k = 2; k <= 100; k++) {
591 50 82 if (amob[k] == 0) continue;
594 0 82 if (part_term > LDBL_MAX) return INFINITY;
597 82 0 SUM_ADD(sum, term);
598 2 80 if (fabslnv(SUM_FINAL(sum) - old_sum) <= eps) break;
604 0 364 SUM_ADD(sum, 1.0);
608 23081 0 for (k = 1; k <= 10000; k++) {
609 19178 3903 ki = (k-1 < NPRECALC_ZETA) ? riemann_zeta_table[k-1] : ld_riemann_zeta(k+1);
613 19737 3344 SUM_ADD(sum, term);
615 364 22717 if (fabslnv(SUM_FINAL(sum) - old_sum) <= eps) break;
640 1 7 if (x < -0.312) {
644 0 1 if (k2 <= 0) return -1.0L + 1*LDBL_EPSILON;
649 7 0 } else if (x > -0.14 && x < 0.085) {
1 6 } else if (x > -0.14 && x < 0.085) {
654 1 5 } else if (x < 1) {
663 2 3 } else if (x < 40) {
667 1 2 } else if (x < 20000) {
688 0 9 if (x < -0.36787944117145L)
690 1 8 if (x == 0.0L) return 0.0L;
699 1 7 if (x < -0.36768) return w;
713 15 0 for (i = 0; i < 6 && w != 0.0L; i++) {
15 0 for (i = 0; i < 6 && w != 0.0L; i++) {
720 0 15 if (isnan(wen)) return 0;
722 7 8 if (fabsl(wen) <= 64*LDBL_EPSILON) break;
756 8 1 for (k = log2floor(n); k > 0; k--) {
49 9 for (k = log2floor(n); k > 0; k--) {
757 31 18 SUM_ADD(sum, chebyshev_theta(rootint(n,k)));
901 53 6 if (n < 500) {
902 326 53 for (i = 1; (tp = primes_tiny[i]) <= n; i++) {
903 244 82 SUM_ADD(sum, loglnv(tp));
909 1 5 if (n >= _cheby_theta[0].n) {
910 1 0 for (i = 1; i < NCHEBY_VALS; i++)
911 1 0 if (n < _cheby_theta[i].n)
918 0 5 SUM_ADD(sum, loglnv(2*3*5*7*11*13));
931 10 6 while (next_segment_primes(ctx, &seg_base, &seg_low, &seg_high)) {
932 330069 0 START_DO_FOR_EACH_SIEVE_PRIME( segment, seg_base, seg_low, seg_high ) {
6 330063 START_DO_FOR_EACH_SIEVE_PRIME( segment, seg_base, seg_low, seg_high ) {
330048 15 START_DO_FOR_EACH_SIEVE_PRIME( segment, seg_base, seg_low, seg_high ) {
330069 20038 START_DO_FOR_EACH_SIEVE_PRIME( segment, seg_base, seg_low, seg_high ) {
20044 10 START_DO_FOR_EACH_SIEVE_PRIME( segment, seg_base, seg_low, seg_high ) {
934 41254 288794 if (++i >= (LNV_IS_QUAD ? 64 : 8)) {
935 41247 7 SUM_ADD(sum, loglnv(prod));
941 6 0 if (prod > 1.0) { SUM_ADD(sum, loglnv(prod)); prod = LNV_ONE; }
6 0 if (prod > 1.0) { SUM_ADD(sum, loglnv(prod)); prod = LNV_ONE; }
945 1 5 if (initial_sum > 0) SUM_ADD(sum, initial_sum);
0 1 if (initial_sum > 0) SUM_ADD(sum, initial_sum);