Sha256: 7934cde2ffa7874a534a06a49fd93f1b65d396843e1d2431ccf6884333d497c6

Contents?: true

Size: 284 Bytes

Versions: 5

Compression:

Stored size: 284 Bytes

Contents

# coding: utf-8
class Integer
  # TODO: Consider http://cims.nyu.edu/~harvey/bernmm/
  def bernoulli
    return 1 if zero?
    m = self
    (m.zero? ? 1 : 0) - (0...m).map do |k| 
      m.choose(k) * Rational(k.bernoulli, m - k + 1)
    end.reduce(:+)
  end

  memoize :bernoulli
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
numb-0.186.0 lib/numb/bernoulli.rb
numb-0.185.0 lib/numb/bernoulli.rb
numb-0.184.0 lib/numb/bernoulli.rb
numb-0.181.0 lib/numb/bernoulli.rb
numb-0.170.0 lib/numb/bernoulli.rb