Class: Likes::Support::HashFunction
- Inherits:
-
Object
- Object
- Likes::Support::HashFunction
- Defined in:
- lib/likes/support.rb
Overview
Job: Understands random hash function generation
Constant Summary collapse
- PRIMES =
PrimeFactory.first(3200)[-250..-1]
Class Method Summary collapse
Instance Method Summary collapse
- #call(value) ⇒ Object
-
#initialize(factor, constant, modulo) ⇒ HashFunction
constructor
A new instance of HashFunction.
- #map(values) ⇒ Object
Constructor Details
#initialize(factor, constant, modulo) ⇒ HashFunction
Returns a new instance of HashFunction.
43 44 45 |
# File 'lib/likes/support.rb', line 43 def initialize(factor, constant, modulo) @factor, @constant, @modulo = factor, constant, modulo end |
Class Method Details
.sample(count, modulo) ⇒ Object
39 40 41 |
# File 'lib/likes/support.rb', line 39 def self.sample(count, modulo) (0...count).map { new(*(sample_primes(2) + [modulo])) } end |
Instance Method Details
#call(value) ⇒ Object
47 48 49 |
# File 'lib/likes/support.rb', line 47 def call(value) (factor * value + constant) % modulo end |
#map(values) ⇒ Object
51 52 53 |
# File 'lib/likes/support.rb', line 51 def map(values) values.map { |value| call(value) } end |