line |
true |
false |
branch |
90
|
0 |
154 |
if ($] < 5.02) |
98
|
0 |
308 |
if @options != @_ |
101
|
0 |
154 |
if $_Config{'xs'} and $_Config{'secure'} |
123
|
0 |
72 |
if defined $ENV{'MPU_NO_XS'} and $ENV{'MPU_NO_XS'} == 1 |
130
|
0 |
72 |
unless (eval {
do {
return 0 if defined $ENV{'MPU_NO_XS'} and $ENV{'MPU_NO_XS'} == 1;
require XSLoader;
XSLoader::load('Math::Prime::Util', $Math::Prime::Util::VERSION);
&prime_precalc(0);
$_Config{'maxbits'} = &_XS_prime_maxbits();
$_Config{'xs'} = 1;
1
}
}) |
132
|
0 |
0 |
unless defined $ENV{'MPU_NO_XS'} and $ENV{'MPU_NO_XS'} == 1 |
152
|
72 |
0 |
if (not defined $ENV{'MPU_NO_GMP'} or $ENV{'MPU_NO_GMP'} != 1) |
153
|
0 |
72 |
if (eval {
do {
require Math::Prime::Util::GMP;
'Math::Prime::Util::GMP'->import;
1
}
}) |
162
|
0 |
0 |
if ($_Config{'gmp'} >= 42 and not Math::Prime::Util::GMP::is_csprng_well_seeded() and &_is_csprng_well_seeded()) |
195
|
2258 |
5 |
$_Config{'xs'} ? : |
210
|
2 |
21 |
if ($param eq 'xs') { } |
|
2 |
19 |
elsif ($param eq 'gmp') { } |
|
2 |
17 |
elsif ($param eq 'nobigint') { } |
|
0 |
17 |
elsif ($param eq 'secure') { } |
|
0 |
17 |
elsif ($param eq 'irand') { } |
|
0 |
17 |
elsif ($param eq 'use_primeinc') { } |
|
8 |
9 |
elsif ($param =~ /^(assume[_ ]?)?[ge]?rh$/ or $param =~ /riemann\s*h/) { } |
|
9 |
0 |
elsif ($param eq 'verbose') { } |
211
|
1 |
1 |
$value ? : |
212
|
1 |
1 |
$_Config{'xs'} ? : |
214
|
0 |
2 |
$value ? : |
218
|
1 |
1 |
if $_Config{'xs'} |
220
|
1 |
1 |
$value ? : |
222
|
0 |
0 |
if not $value and $_Config{'secure'} |
223
|
0 |
0 |
if ($value) |
225
|
0 |
0 |
if $_Config{'xs'} |
232
|
4 |
4 |
$value ? : |
234
|
9 |
0 |
if ($value =~ /^\d+$/) { } |
|
0 |
0 |
elsif ($value =~ /^[ty]/i) { } |
|
0 |
0 |
elsif ($value =~ /^[fn]/i) { } |
239
|
8 |
1 |
if $_Config{'xs'} |
240
|
0 |
9 |
if $_Config{'gmp'} |
253
|
0 |
7451 |
unless (defined $Math::BigInt::VERSION) |
255
|
7338 |
113 |
!defined($_[0]) || ref $_[0] eq 'Math::BigInt' ? : |
258
|
0 |
0 |
unless (defined $Math::GMPz::VERSION) |
259
|
0 |
0 |
ref $_[0] eq 'Math::GMPz' ? : |
262
|
0 |
0 |
unless (defined $Math::GMP::VERSION) |
263
|
0 |
0 |
ref $_[0] eq 'Math::GMP' ? : |
266
|
0 |
625 |
unless defined $_[1] |
268
|
59 |
566 |
if ($ref0) |
269
|
2 |
57 |
$ref0 eq ref $_[1] ? : |
271
|
566 |
0 |
if (do {
$_[1] >= 0
}) { } |
276
|
566 |
0 |
if $_[1] <= 18446744073709551615 |
278
|
0 |
0 |
if '' . int($_[1]) >= -9223372036854775807 |
280
|
0 |
0 |
unless (defined $Math::BigInt::VERSION) |
289
|
0 |
103 |
unless defined $n |
290
|
0 |
103 |
if (ref $n eq 'CODE') |
294
|
90 |
13 |
if (ref $n eq 'Math::BigInt') { } |
|
0 |
13 |
elsif (ref $n eq 'Math::GMPz') { } |
295
|
0 |
90 |
if $n->sign ne '+' or not $n->is_int |
297
|
0 |
90 |
if $n <= '18446744073709551615' |
299
|
0 |
0 |
if Math::GMPz::Rmpz_sgn($n) < 0 |
300
|
0 |
0 |
if $n <= 18446744073709551615 |
303
|
0 |
13 |
if $strn eq '' or $strn =~ tr[0-9][\000-/:-\377]c and not $strn =~ /^\+?\d+$/ |
305
|
7 |
6 |
if ($n <= 18446744073709551615) { } |
306
|
0 |
7 |
if ref $n |
312
|
0 |
103 |
if ref $_[0] eq 'Math::BigInt' and $_[0]->upgrade |
313
|
0 |
103 |
if defined $min and $_[0] < $min |
314
|
0 |
103 |
if defined $max and $_[0] > $max |
324
|
0 |
0 |
unless $_Config{'gmp'} >= 42 |
325
|
0 |
0 |
unless defined $seedval |
332
|
0 |
0 |
unless $_Config{'gmp'} >= 42 |
333
|
0 |
0 |
unless defined $str |
341
|
117 |
1036 |
if (scalar @_ > 1) { } |
342
|
1 |
109 |
unless &_validate_num($low) |
346
|
1 |
1137 |
unless &_validate_num($high) |
349
|
10 |
1128 |
if $low > $high or $high < 2 |
351
|
1 |
1127 |
if ($high > $_XS_MAXVAL) |
352
|
0 |
1 |
if ($_HAVE_GMP) |
354
|
0 |
0 |
if ($high > 18446744073709551615) { } |
372
|
18 |
1109 |
if ($low + 1 >= $high or $high > 100000000000000 and $high - $low < 50000) { } |
|
1100 |
9 |
elsif ($high <= 1966080 or $high <= &_get_prime_cache_size()) { } |
399
|
18 |
2 |
if (scalar @_ > 1) { } |
400
|
1 |
17 |
unless &_validate_num($low) |
404
|
1 |
19 |
unless &_validate_num($high) |
406
|
0 |
20 |
if $low > $high or $high < 2 |
408
|
3 |
17 |
if ($high > $_XS_MAXVAL) |
410
|
0 |
3 |
if ($_HAVE_GMP and defined &Math::Prime::Util::GMP::sieve_twin_primes and $low > 2147483648) { } |
424
|
17 |
1 |
if (scalar @_ > 1) { } |
425
|
0 |
17 |
unless &_validate_num($low) |
429
|
0 |
18 |
unless &_validate_num($high) |
431
|
0 |
18 |
if $low > $high or $high < 4 |
433
|
17 |
1 |
if $high <= $_XS_MAXVAL and $low <= 4 || $high - $low + 1 > $high / (600 * sqrt($high)) |
444
|
14 |
1 |
if (scalar @_ > 1) { } |
445
|
0 |
14 |
unless &_validate_num($low) |
449
|
0 |
15 |
unless &_validate_num($high) |
451
|
0 |
15 |
if $low > $high or $high < 2 |
453
|
0 |
15 |
if ($high > $_XS_MAXVAL) |
466
|
0 |
1 |
unless &_validate_num($bits, 2) |
468
|
0 |
1 |
if ($Math::Prime::Util::_GMPfunc{'random_maurer_prime_with_cert'}) |
479
|
0 |
1 |
unless &_validate_num($bits, 2) |
481
|
0 |
1 |
if ($Math::Prime::Util::_GMPfunc{'random_shawe_taylor_prime_with_cert'}) |
492
|
0 |
1 |
unless &_validate_num($bits, 2) |
495
|
0 |
1 |
if ($Math::Prime::Util::_GMPfunc{'random_maurer_prime_with_cert'}) |
512
|
0 |
35 |
unless &_validate_num($n) |
513
|
5 |
30 |
if $n < 10 |
515
|
0 |
30 |
if ($_HAVE_GMP and defined &Math::Prime::Util::GMP::primorial) |
524
|
0 |
36 |
unless &_validate_num($n) |
525
|
11 |
25 |
if $n < 10 |
527
|
0 |
25 |
if ($_HAVE_GMP and defined &Math::Prime::Util::GMP::pn_primorial) |
537
|
0 |
104 |
unless &_validate_num($n) |
538
|
1 |
103 |
if $n < 1 |
540
|
0 |
103 |
if ($_HAVE_GMP and defined &Math::Prime::Util::GMP::consecutive_integer_lcm) |
556
|
1 |
57 |
if defined $n and $n <= 0 |
557
|
0 |
57 |
unless &_validate_num($n) |
559
|
0 |
57 |
if ($_HAVE_GMP and defined &Math::Prime::Util::GMP::partitions) |
573
|
0 |
1 |
unless (defined $end) |
576
|
0 |
1 |
if $beg < 2 |
584
|
0 |
7 |
if &_get_forexit() |
592
|
0 |
2 |
unless (defined $end) |
597
|
1 |
1 |
if ($what eq 'oddcomposites') { } |
598
|
0 |
1 |
if $beg < 9 |
599
|
1 |
0 |
unless $beg & 1 |
602
|
0 |
1 |
if $beg < 4 |
604
|
0 |
2 |
if ref $end ne 'Math::BigInt' and $end == 18446744073709551615 |
611
|
0 |
10 |
if $semiprimes and not &is_semiprime($beg) |
614
|
0 |
10 |
if &_get_forexit() |
617
|
0 |
10 |
if &_get_forexit() |
638
|
0 |
0 |
if (defined $end) { } |
640
|
0 |
0 |
if $beg < 1 |
649
|
0 |
0 |
if (not $sf or &is_square_free($beg)) |
653
|
0 |
0 |
if &_get_forexit() |
678
|
0 |
16 |
if &_get_forexit() |
686
|
0 |
5 |
unless ref $iref eq 'ARRAY' |
704
|
2 |
24 |
unless defined $start |
705
|
1 |
22 |
unless &_validate_num($start) |
706
|
21 |
2 |
$start > 0 ? : |
710
|
22 |
1 |
if (ref $p ne 'Math::BigInt' and $p <= $_XS_MAXVAL) { } |
|
0 |
1 |
elsif ($_HAVE_GMP) { } |
715
|
22 |
66 |
if (scalar @$pr == 0) |
717
|
0 |
22 |
if $p >= 18446744073709551557 |
719
|
18 |
4 |
$p <= 10000 ? : |
720
|
0 |
22 |
if $p + $segment > 18446744073709551615 and $p + 1 < 18446744073709551615 |
748
|
1 |
0 |
if (defined $high) { } |
749
|
1 |
0 |
unless &_validate_num($low) |
750
|
1 |
0 |
unless &_validate_num($high) |
753
|
0 |
0 |
unless &_validate_num($high) |
755
|
0 |
1 |
if $high < 2 or $low > $high |
758
|
0 |
0 |
if $_HAVE_GMP and defined &Math::Prime::Util::GMP::prime_count and ref $high eq 'Math::BigInt' || $high - $low < int $low / 1000000 |
769
|
64 |
0 |
unless &_validate_num($n) |
771
|
0 |
64 |
if ($_HAVE_GMP) |
773
|
0 |
0 |
if ($n != 1) |
778
|
0 |
0 |
if (ref $_[0]) |
779
|
0 |
0 |
$_ > 18446744073709551615 ? : |
791
|
14 |
0 |
unless &_validate_num($n) |
795
|
0 |
14 |
unless wantarray |
803
|
0 |
0 |
$b % 4 == 3 ? : |
|
0 |
0 |
if $a == 0 |
804
|
0 |
0 |
$a % 4 == 3 ? : |
|
0 |
0 |
if $b == 0 |
820
|
0 |
105 |
if defined $n and $n < 2 |
821
|
11 |
94 |
unless &_validate_num($n) |
824
|
94 |
11 |
if ($n <= $_XS_MAXVAL) |
826
|
10 |
84 |
unless $isp == 2 |
830
|
0 |
11 |
if ($_HAVE_GMP and defined &Math::Prime::Util::GMP::is_provable_prime_with_cert) |
834
|
0 |
0 |
if (ref $cert ne 'ARRAY') |
846
|
0 |
11 |
if $isp == 0 |
847
|
0 |
11 |
if $isp == 2 |
866
|
0 |
11 |
unless $isp |
880
|
0 |
6 |
if $n <= 0 |
882
|
0 |
6 |
if $n > 10000000 |
885
|
6 |
0 |
if not defined $bignum::VERSION and ref $n ne 'Math::BigFloat' and $_Config{'xs'} |
893
|
2 |
9 |
if $n <= 0 |
896
|
9 |
0 |
if not defined $bignum::VERSION and ref $n ne 'Math::BigFloat' and $_Config{'xs'} |
904
|
1 |
22 |
if $n == 0 |
905
|
1 |
21 |
if $n == $_Neg_Infinity |
906
|
1 |
20 |
if $n == $_Infinity |
909
|
18 |
2 |
if not defined $bignum::VERSION and ref $n ne 'Math::BigFloat' and $_Config{'xs'} |
917
|
2 |
26 |
if $n == 0 |
918
|
1 |
25 |
if $n == 1 |
919
|
1 |
24 |
if $n == $_Infinity |
921
|
1 |
23 |
if $n <= 0 |
923
|
23 |
0 |
if (not defined $bignum::VERSION and ref $n ne 'Math::BigFloat' and $_Config{'xs'}) |
924
|
1 |
22 |
if $n == 2 |
936
|
9 |
0 |
if not defined $bignum::VERSION and ref $x ne 'Math::BigFloat' and $_Config{'xs'} |
946
|
0 |
116 |
if defined $n and $n < 0 |
947
|
0 |
116 |
unless &_validate_num($n) |
948
|
11 |
105 |
if $n > 1 and $n & 1 |
950
|
0 |
105 |
if ($Math::Prime::Util::_GMPfunc{'bernfrac'}) |
959
|
1 |
25 |
unless (defined $Math::BigFloat::VERSION) |
961
|
0 |
26 |
if ($Math::Prime::Util::_GMPfunc{'bernreal'}) |
962
|
0 |
0 |
unless defined $precision |
967
|
11 |
15 |
if $num->is_zero |
973
|
0 |
79 |
unless &_validate_num($n) |
974
|
0 |
79 |
if $n <= 0 |
976
|
0 |
79 |
if ($Math::Prime::Util::_GMPfunc{'harmfrac'}) |
985
|
0 |
22 |
unless &_validate_num($n) |
986
|
0 |
22 |
unless (defined $Math::BigFloat::VERSION) |
987
|
1 |
21 |
if $n <= 0 |
989
|
0 |
21 |
if ($Math::Prime::Util::_GMPfunc{'harmreal'}) |
990
|
0 |
0 |
unless defined $precision |
995
|
0 |
21 |
if (defined $precision and $precision <= 13) |
997
|
0 |
0 |
$n < 80 ? : |
1003
|
0 |
21 |
if ($Math::Prime::Util::_GMPfunc{'harmfrac'}) |