SciRuby/distribution

View on GitHub
lib/distribution/lognormal/ruby.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Distribution
  module LogNormal
    module Ruby_
      class << self
        def pdf(x, u, s)
          fail 'x should be > 0 ' if x < 0
          (1.0 / (x * s * Math.sqrt(2 * Math::PI))) * Math.exp(-((Math.log(x) - u)**2 / (2 * s**2)))
        end

        def cdf(x, u, s)
          Distribution::Normal.cdf((Math.log(x) - u) / s)
        end
      end
    end
  end
end