primes-utils 2.5.0 → 2.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -5
- data/lib/primes/utils.rb +3 -4
- data/lib/primes/utils/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7bc5495497089b070f595b0456a1b0c00da065d8
|
4
|
+
data.tar.gz: fd32d881956306de64948f69171909bb4f65843c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12b152e50667e3646c92104e22f61cfb5e2f028d452a1fc6dc9c6eeb638dbdbe044aaab23086aa17cedd18d27188063a4293efcff1520be7ec363272c1bb06b4
|
7
|
+
data.tar.gz: faa16320abef1a7f78e3c5c4fa4e76a90b784ee8a3b66c9597e89dd8bab5d15dbbd1bb588f3ba88205688cd7007202a7167fd57001b0ec7c6f47debc23df4e0e
|
data/README.md
CHANGED
@@ -193,17 +193,18 @@ All the `primes-utils` methods are `instance_methods` for `class Integer`.
|
|
193
193
|
|
194
194
|
## History
|
195
195
|
```
|
196
|
-
2.5.
|
197
|
-
|
198
|
-
|
196
|
+
2.5.1 – corrected minor error in select_pg
|
197
|
+
2.5.0 – 9 more index primes under the 110-millionth in nths; fixed Ruby 1.8 incompatibility in primes;
|
198
|
+
better|simpler technique for select_pg, significant speed increases for large ranges; used now
|
199
|
+
in all sozcore2 client methods primes, primescnt and primenth|nthprime; more code cleanups
|
199
200
|
2.4.0 – fixed error in algorithm when ks resgroup ≤ sqrt(end_num) resgroup; algorithm now split
|
200
201
|
arrays when start_num > sqrt(end_num) in sozcore2, whose code also signficantly optimized,
|
201
202
|
with API change adding pcs2start value to output parameters to use in primenth, which changed
|
202
203
|
to use it; ruby idiom code opt for set_start_value; consolidated pcs_to_num | pcs_to_start_num
|
203
204
|
functions into one new pcs_to_num, with associated changes in sozcore1|2; primes|cnt also
|
204
205
|
significantly faster resulting from sozcore2 changes; massive code cleanups all-arround; added
|
205
|
-
|
206
|
-
|
206
|
+
private methods select_pg (to adaptively select the pg used in primes), and array_check (used in
|
207
|
+
sozcore2 to catch array creation out-of-memory errors)
|
207
208
|
2.3.0 – primescnt now finds primes upto some integer much faster, and for much larger integers
|
208
209
|
increased index nth primes to over 2 billionth; used in nthprime|primenth and primescnt
|
209
210
|
2.2.0 – for sozcore2: refactored to include more common code; changed output api; added memory
|
data/lib/primes/utils.rb
CHANGED
@@ -215,10 +215,10 @@ module Primes
|
|
215
215
|
(d >>= 1; s += 1) while d.even?
|
216
216
|
k.times do
|
217
217
|
a = 2 + rand(n-4)
|
218
|
-
x = a.to_bn.mod_exp(d,n)
|
218
|
+
x = a.to_bn.mod_exp(d,n) # x = (a**d) mod n
|
219
219
|
next if x == 1 or x == n-1
|
220
220
|
(s-1).times do
|
221
|
-
x = x.mod_exp(2,n)
|
221
|
+
x = x.mod_exp(2,n) # x = (x**2) mod n
|
222
222
|
return false if x == 1
|
223
223
|
break if x == n-1
|
224
224
|
end
|
@@ -256,7 +256,7 @@ module Primes
|
|
256
256
|
|
257
257
|
def primes_utils # display list of available methods
|
258
258
|
methods = %w/prime? primemr? primes primesf primesmr primescnt
|
259
|
-
primescntf primescntmr primenth|nthprime factors|prime_division/
|
259
|
+
primescntf primescntmr primenth|nthprime factors|prime_division primes_utils/
|
260
260
|
(methods - (@@os_has_factor ? [] : %w/primesf primescntf/)).join(" ")
|
261
261
|
end
|
262
262
|
|
@@ -448,7 +448,6 @@ module Primes
|
|
448
448
|
primes = [2, 3, 5] # use P5 for small ranges
|
449
449
|
primes << 7 if range_size > 35*10**5 # use P7 for midsize ranges
|
450
450
|
primes << 11 if range_size > 850*10**5 # use P11 for large ranges
|
451
|
-
primes << 13 if range_size > 550*10**7 # use P13 for larger ranges
|
452
451
|
[primes, primes.reduce(:*)] # [excluded primes, mod] for PG
|
453
452
|
end
|
454
453
|
|
data/lib/primes/utils/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: primes-utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.5.
|
4
|
+
version: 2.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jabari Zakiya
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|