From 699263bf3fc7324d94461ca883dfbf10953d94ea Mon Sep 17 00:00:00 2001 From: Oscar Smith Date: Wed, 12 Jan 2022 10:35:43 -0500 Subject: [PATCH 1/4] use integermathutils --- src/Primes.jl | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/Primes.jl b/src/Primes.jl index 3beb245..02f5cae 100644 --- a/src/Primes.jl +++ b/src/Primes.jl @@ -7,6 +7,7 @@ using Base.Iterators: repeated import Base: iterate, eltype, IteratorSize, IteratorEltype using Base: BitSigned using Base.Checked: checked_neg +using IntegerMathUtils export isprime, primes, primesmask, factor, ismersenneprime, isrieselprime, nextprime, nextprimes, prevprime, prevprimes, prime, prodfactors, radical, totient @@ -176,11 +177,7 @@ julia> isprime(big(3)) true ``` """ -isprime(x::BigInt, reps=25) = ccall((:__gmpz_probab_prime_p,:libgmp), - Cint, (Any, Cint), x, reps) > 0 -# TODO: Change `Any` to `Ref{BigInt}` when 0.6 support is dropped. -# The two have the same effect but `Ref{BigInt}` won't be optimized on 0.6. - +isprime(x::BigInt, reps=25) = is_probably_prime(x, reps) # Miller-Rabin witness choices based on: # http://mathoverflow.net/questions/101922/smallest-collection-of-bases-for-prime-testing-of-64-bit-numbers From d841b78521c0dd41194d447a64ef3b2c4224bf4b Mon Sep 17 00:00:00 2001 From: Oscar Smith Date: Wed, 12 Jan 2022 10:41:59 -0500 Subject: [PATCH 2/4] add to project.toml --- Project.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index bc44ed7..554b993 100644 --- a/Project.toml +++ b/Project.toml @@ -4,11 +4,13 @@ version = "0.5.1" [extras] DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +IntegerMathUtils = "18e54dd8-cb9d-406c-a71d-865a43cbb235" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] -test = ["DataStructures", "Test"] +test = ["DataStructures", , "IntegerMathUtils", "Test"] [compat] DataStructures = "0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17" +IntegerMathUtils = "0.1" julia = "1" From 68afaf18af0bf3e470e64723a54de194b16a835a Mon Sep 17 00:00:00 2001 From: Oscar Smith Date: Wed, 12 Jan 2022 10:42:14 -0500 Subject: [PATCH 3/4] bugfix --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 554b993..8d4914b 100644 --- a/Project.toml +++ b/Project.toml @@ -8,7 +8,7 @@ IntegerMathUtils = "18e54dd8-cb9d-406c-a71d-865a43cbb235" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] -test = ["DataStructures", , "IntegerMathUtils", "Test"] +test = ["DataStructures", "IntegerMathUtils", "Test"] [compat] DataStructures = "0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17" From 6b9b40476e2e34b6646ad30688316e0e38febccb Mon Sep 17 00:00:00 2001 From: Oscar Smith Date: Wed, 12 Jan 2022 11:38:07 -0500 Subject: [PATCH 4/4] fix typo. --- src/Primes.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Primes.jl b/src/Primes.jl index 02f5cae..542dc7e 100644 --- a/src/Primes.jl +++ b/src/Primes.jl @@ -177,7 +177,7 @@ julia> isprime(big(3)) true ``` """ -isprime(x::BigInt, reps=25) = is_probably_prime(x, reps) +isprime(x::BigInt, reps=25) = is_probably_prime(x; reps=reps) # Miller-Rabin witness choices based on: # http://mathoverflow.net/questions/101922/smallest-collection-of-bases-for-prime-testing-of-64-bit-numbers