Branch Coverage

MRMA.xs
Criterion Covered Total %
branch 193 252 76.5


line true false branch
205 645684 4139 for (kk = N-M+1; --kk; n0 = n1, n1 = *sn++) {
206 322117 323567 *st++ = *sx++ ^ TWIST(n0, n1);
209 641545 4139 for (kk = M; --kk; n0 = n1, n1 = *sn++) {
210 320790 320755 *st++ = *sx++ ^ TWIST(n0, n1);
213 2118 2021 *st = *sx ^ TWIST(n0, n1);
227 4 586 IRAND(x, prng);
240 0 174 IRAND(x1, prng);
241 0 174 IRAND(y1, prng);
244 38 136 } while (x2*x2 + y2*y2 > 1.0);
296 6036 3520 DUAL_PRNG
6036 0 DUAL_PRNG
0 9556 DUAL_PRNG
297 43 9513 IRAND(RETVAL, prng);
313 1030 1000 DUAL_PRNG
1030 0 DUAL_PRNG
0 2030 DUAL_PRNG
316 7 2023 IRAND(rand, prng);
318 30 2000 if (items) {
320 29 1 RETVAL *= SvNV(ST(idx));
340 4 0 if (items && sv_isobject(ST(0))) {
1 3 if (items && sv_isobject(ST(0))) {
350 0 4 prng = GET_PRNG;
353 2 2 if (items == 1 && SvROK(ST(idx)) && SvTYPE(SvRV(ST(idx)))==SVt_PVAV) {
2 0 if (items == 1 && SvROK(ST(idx)) && SvTYPE(SvRV(ST(idx)))==SVt_PVAV) {
2 0 if (items == 1 && SvROK(ST(idx)) && SvTYPE(SvRV(ST(idx)))==SVt_PVAV) {
358 2 0 } else if (GIMME_V == G_ARRAY) {
1 1 } else if (GIMME_V == G_ARRAY) {
360 6 1 for (ii = items-1 ; ii > 0 ; ii--) {
363 0 6 IRAND(rand, prng);
376 7 1 while (items--) {
383 18 3 for (ii=av_len(ary); ii > 0; ii--) {
386 0 18 IRAND(rand, prng);
411 1000000 0 DUAL_PRNG
500000 500000 DUAL_PRNG
0 1000000 DUAL_PRNG
413 500000 500000 if (prng->gaussian.have) {
422 4085 632997 IRAND(u1, prng);
423 0 637082 IRAND(u2, prng);
427 137082 500000 } while (r >= 1.0);
437 1000000 0 if (items) {
439 999998 2 RETVAL *= SvNV(ST(idx));
440 0 1000000 if (items > 1) {
442 0 0 RETVAL += SvNV(ST(idx+1));
458 10 10 DUAL_PRNG
10 0 DUAL_PRNG
0 20 DUAL_PRNG
462 10 10 if (items) {
464 9 1 RETVAL *= SvNV(ST(idx));
482 40 0 DUAL_PRNG
20 20 DUAL_PRNG
0 40 DUAL_PRNG
485 0 40 if (! items) {
488 40 0 if ((order = SvIV(ST(idx))) < 1) {
0 40 if ((order = SvIV(ST(idx))) < 1) {
492 20 20 if (order < 6) {
495 60 20 for (ii=0; ii < order; ii++) {
509 4 32 } while (RETVAL <= 0.0);
511 12 20 } while (_rand(prng) > bound);
514 0 40 if (items > 1) {
516 0 0 RETVAL *= SvNV(ST(idx+1));
533 40 0 DUAL_PRNG
20 20 DUAL_PRNG
0 40 DUAL_PRNG
536 0 40 if (! items) {
539 40 0 if (items == 1) {
540 36 4 if ((mean = SvNV(ST(idx))) <= 0.0) {
0 40 if ((mean = SvNV(ST(idx))) <= 0.0) {
544 0 0 if ((mean = SvNV(ST(idx)) * SvNV(ST(idx+1))) < 1.0) {
0 0 if ((mean = SvNV(ST(idx)) * SvNV(ST(idx+1))) < 1.0) {
0 0 if ((mean = SvNV(ST(idx)) * SvNV(ST(idx+1))) < 1.0) {
549 20 20 if (mean < 12.0) {
555 20 49 if (bound < limit) {
563 2 18 if (prng->poisson.mean != mean) {
574 2 30 } while (em < 0.0);
580 10 20 } while (_rand(prng) > bound);
601 60 0 DUAL_PRNG
30 30 DUAL_PRNG
0 60 DUAL_PRNG
604 0 60 if (items < 2) {
607 60 0 if (((prob = SvNV(ST(idx))) < 0.0 || prob > 1.0) ||
60 0 if (((prob = SvNV(ST(idx))) < 0.0 || prob > 1.0) ||
60 0 if (((prob = SvNV(ST(idx))) < 0.0 || prob > 1.0) ||
0 60 if (((prob = SvNV(ST(idx))) < 0.0 || prob > 1.0) ||
608 60 0 ((trials = SvIV(ST(idx+1))) < 0))
614 40 20 p = (prob <= 0.5) ? prob : 1.0-prob;
616 20 40 if (trials < 25) {
619 300 20 for (ii=1; ii <= trials; ii++) {
620 141 159 if (_rand(prng) < p) {
626 20 20 if ((mean = p * trials) < 1.0) {
630 23 0 for (RETVAL=0; RETVAL < trials; RETVAL++) {
632 20 3 if (bound < limit) {
644 2 18 if (trials != prng->binomial.trials) {
648 2 18 if (p != prng->binomial.prob) {
658 11 57 } while (em < 0.0 || em >= (en+1.0));
1 56 } while (em < 0.0 || em >= (en+1.0));
666 36 20 } while (_rand(prng) > bound);
672 20 40 if (p < prob) {
719 0 34 if ((prng = GET_PRNG)) {
34 0 if ((prng = GET_PRNG)) {
741 0 32 prng = GET_PRNG;
751 9952 32 for (ii=1; ii
757 9984 32 for (kk = ((N>len) ? N : len); kk; kk--) {
759 2080 7904 + SvUV(*av_fetch(myseed, jj, 0)) + jj;
760 32 9952 if (++ii >= N) { st[0] = st[N-1]; ii=1; }
761 1989 7995 if (++jj >= len) jj=0;
765 9952 32 for (kk=N-1; kk; kk--) {
767 32 9920 if (++ii >= N) { st[0] = st[N-1]; ii=1; }
793 0 9 prng = GET_PRNG;
800 2808 9 for (ii=0; ii
839 0 8 prng = GET_PRNG;
845 0 8 if (av_len(state) != N+11) {
850 2496 8 for (ii=0; ii
851 917 1579 prng->state[ii] = SvUV(*av_fetch(state, ii, 0));
853 8 0 prng->left = SvIV(*av_fetch(state, ii, 0)); ii++;
854 4 4 if (prng->left > 1) {
859 8 0 prng->gaussian.have = SvIV(*av_fetch(state, ii, 0)); ii++;
860 6 2 prng->gaussian.value = SvNV(*av_fetch(state, ii, 0)); ii++;
861 6 2 prng->poisson.mean = SvNV(*av_fetch(state, ii, 0)); ii++;
862 6 2 prng->poisson.log_mean = SvNV(*av_fetch(state, ii, 0)); ii++;
863 6 2 prng->poisson.sqrt2mean = SvNV(*av_fetch(state, ii, 0)); ii++;
864 6 2 prng->poisson.term = SvNV(*av_fetch(state, ii, 0)); ii++;
865 8 0 prng->binomial.trials = SvIV(*av_fetch(state, ii, 0)); ii++;
866 6 2 prng->binomial.term = SvNV(*av_fetch(state, ii, 0)); ii++;
867 6 2 prng->binomial.prob = SvNV(*av_fetch(state, ii, 0)); ii++;
868 6 2 prng->binomial.plog = SvNV(*av_fetch(state, ii, 0)); ii++;
869 6 2 prng->binomial.pclog = SvNV(*av_fetch(state, ii, 0));