intperm 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/intperm.rb +2 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2df9b8843f88d7859b4fbb5d3ceb191da9f101f
|
4
|
+
data.tar.gz: d21b42501c873fc41b9543684a8bab7b6db74d41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4df50f4f99e6781711de13aca4eac7a7de8c9bbe410ca8f10a30c6bd8e54690bde2e32b04987f0a1a7819c8858bef271b32b7db7ee543c58944d3f2c58f948ab
|
7
|
+
data.tar.gz: da4faa70d6dd3c736550f24dbb528ae2447e56b9746c97a17da0dee4b9c12380cded441b6b82e84eb5a5950de1e232954c1fa66944d0423b2480f947e16d39ea
|
data/lib/intperm.rb
CHANGED
@@ -2,8 +2,9 @@ require 'yaml'
|
|
2
2
|
|
3
3
|
# Main permutation class.
|
4
4
|
class Permutation
|
5
|
-
def initialize(seed, bit_length = 64)
|
5
|
+
def initialize(seed = nil, bit_length = 64)
|
6
6
|
@mask = (1 << bit_length) - 1
|
7
|
+
seed = Random.rand @mask if seed.nil?
|
7
8
|
xorshift = XORShift.new seed, @mask
|
8
9
|
@masks = (0.upto bit_length * 2).map do |i|
|
9
10
|
xorshift.next & ((1 << (i >> 1)) ^ @mask)
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: intperm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Attila Oláh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-02-07 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description:
|
13
|
+
description: Pseudo-random permutation of arbitrary size integers.
|
14
14
|
email: attila@attilaolah.eu
|
15
15
|
executables: []
|
16
16
|
extensions: []
|