lib/distribution/gamma/ruby.rb in distribution-0.7.3 vs lib/distribution/gamma/ruby.rb in distribution-0.8.0
- old
+ new
@@ -1,11 +1,10 @@
# Added by John O. Woods, SciRuby project.
module Distribution
module Gamma
module Ruby_
class << self
-
include Math
# Gamma distribution probability density function
#
# If you're looking at Wikipedia's Gamma distribution page, the arguments for this pdf function correspond
# as follows:
@@ -20,34 +19,29 @@
# Adapted the function itself from GSL-1.9 in rng/gamma.c: gsl_ran_gamma_pdf
#
# ==References
# * http://www.gnu.org/software/gsl/manual/html_node/The-Gamma-Distribution.html
# * http://en.wikipedia.org/wiki/Gamma_distribution
- def pdf(x,a,b)
+ def pdf(x, a, b)
return 0 if x < 0
if x == 0
return 1.quo(b) if a == 1
return 0
elsif a == 1
Math.exp(-x.quo(b)).quo(b)
else
- Math.exp((a-1)*Math.log(x.quo(b)) - x.quo(b) - Math.lgamma(a).first).quo(b)
+ Math.exp((a - 1) * Math.log(x.quo(b)) - x.quo(b) - Math.lgamma(a).first).quo(b)
end
end
# Gamma cumulative distribution function
- def cdf(x,a,b)
+ def cdf(x, a, b)
return 0.0 if x <= 0.0
y = x.quo(b)
- return (1-Math::IncompleteGamma.q(a, y)) if y > a
- return (Math::IncompleteGamma.p(a, y))
+ return (1 - Math::IncompleteGamma.q(a, y)) if y > a
+ (Math::IncompleteGamma.p(a, y))
end
-
- #def p_value(pr,a,b)
- # cdf(1.0-pr,a,b)
- #end
-
end
end
end
end