class Spark::RandomGenerator::Poisson

Public Class Methods

new(mean, seed) click to toggle source
# File lib/spark/sampler.rb, line 8
def initialize(mean, seed)
  generator = Random.new(seed)
  @exp_rng = Distribution::Exponential.rng(1.0/mean, random: generator)
end

Public Instance Methods

rand() click to toggle source
# File lib/spark/sampler.rb, line 13
def rand
  t = 0.0
  number = 0

  loop{
    t += @exp_rng.call
    if t > 1
      return number
    end
    number += 1
  }
end