[libmath-prime-util-perl] 14/33: Put back some PP validation, as it does bigint magic
Partha P. Mukherjee
ppm-guest at moszumanska.debian.org
Thu May 21 18:51:41 UTC 2015
This is an automated email from the git hooks/post-receive script.
ppm-guest pushed a commit to annotated tag v0.37
in repository libmath-prime-util-perl.
commit c3fa258b906b60cb693351623be0ee5e8e80f50a
Author: Dana Jacobsen <dana at acm.org>
Date: Tue Jan 21 18:39:11 2014 -0800
Put back some PP validation, as it does bigint magic
---
factor.c | 3 ++-
lib/Math/Prime/Util/PP.pm | 5 +++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/factor.c b/factor.c
index 1a22ee8..9ae66b1 100644
--- a/factor.c
+++ b/factor.c
@@ -90,7 +90,8 @@ int factor(UV n, UV *factors)
/* loop over each remaining factor, until ntofac == 0 */
do {
- while ( (n >= f*f) && (!_XS_is_prime(n)) ) {
+ //while ( (n >= f*f) && (!_XS_is_prime(n)) ) {
+ while ( (n >= f*f) && (!is_prob_prime(n)) ) {
int split_success = 0;
/* Adjust the number of rounds based on the number size */
UV const br_rounds = ((n>>29) < 100000) ? 1500 : 4000;
diff --git a/lib/Math/Prime/Util/PP.pm b/lib/Math/Prime/Util/PP.pm
index 0dfb83d..bc8440a 100644
--- a/lib/Math/Prime/Util/PP.pm
+++ b/lib/Math/Prime/Util/PP.pm
@@ -227,6 +227,8 @@ sub _is_prime7 { # n must not be divisible by 2, 3, or 5
sub is_prime {
my($n) = @_;
+ return 0 if int($n) < 0;
+ _validate_positive_integer($n);
if (ref($n) eq 'Math::BigInt') {
return 0 unless Math::BigInt::bgcd($n, B_PRIM235)->is_one;
@@ -1396,6 +1398,7 @@ sub _is_perfect_power {
sub is_pseudoprime {
my($n, $base) = @_;
return 0 if int($n) < 0;
+ _validate_positive_integer($n);
if ($n < 5) { return ($n == 2) || ($n == 3) ? 1 : 0; }
croak "Base $base is invalid" if $base < 2;
@@ -1466,6 +1469,8 @@ sub _miller_rabin_2 {
sub is_strong_pseudoprime {
my($n, @bases) = @_;
+ return 0 if int($n) < 0;
+ _validate_positive_integer($n);
return 0+($n >= 2) if $n < 4;
return 0 if ($n % 2) == 0;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libmath-prime-util-perl.git
More information about the Pkg-perl-cvs-commits
mailing list