# Module: Distribution::Uniform::Ruby_

Defined in:
lib/distribution/uniform/ruby.rb

## Class Method Summary collapse

• The uniform cumulative density function (CDF) == Arguments If you are referring the wiki page for this continuous distribution the arguments can be translated as follows * +x+ - same as continuous random variable * +lower+ - lower limit or a, must be a real number * +upper+ - upper limit or b, must be a real number.

• Uniform probability density function on [a, b].

• .quantile(qn, lower = 0, upper = 1) ⇒ Object (also: p_value)

The uniform inverse CDF density function / P-value function == Arguments If you are referring the wiki page for this continuous distribution the arguments can be translated as follows * +qn+ - same as integral value * +lower+ - lower limit or a, must be a real number * +upper+ - upper limit or b, must be a real number.

• Returns a lambda that emits a uniformly distributed sequence of random numbers between the defined limits.

## Class Method Details

### .cdf(x, lower = 0, upper = 1) ⇒ Object

The uniform cumulative density function (CDF) == Arguments If you are referring the wiki page for this continuous distribution the arguments can be translated as follows

• +x+ - same as continuous random variable
• +lower+ - lower limit or a, must be a real number
• +upper+ - upper limit or b, must be a real number

== Reference

The implementation has been adpoted from GSL-1.9 gsl/cdf/flat.c

 ``` 54 55 56 57 58 59 60 61 62``` ```# File 'lib/distribution/uniform/ruby.rb', line 54 def cdf(x, lower = 0, upper = 1) if x < lower 0 elsif x > upper 1 else (x - lower) / (upper - lower) end end```

### .pdf(x, lower = 0, upper = 1) ⇒ Object

Uniform probability density function on [a, b]

== Arguments If you are referring the wiki page for this continuous distribution the arguments can be translated as follows

• +x+ - same as continuous random variable
• +lower+ - lower limit or a, must be a real number
• +upper+ - upper limit or b, must be a real number

== Reference

The implementation has been adopted from GSL-1.9 gsl/randist/flat.c

 ``` 35 36 37 38 39``` ```# File 'lib/distribution/uniform/ruby.rb', line 35 def pdf(x, lower = 0, upper = 1) upper, lower = lower, upper if lower > upper return 1 / (upper - lower) if (lower..upper).member? x 0 end```

### .quantile(qn, lower = 0, upper = 1) ⇒ ObjectAlso known as: p_value

The uniform inverse CDF density function / P-value function == Arguments If you are referring the wiki page for this continuous distribution the arguments can be translated as follows

• +qn+ - same as integral value
• +lower+ - lower limit or a, must be a real number
• +upper+ - upper limit or b, must be a real number

== Returns

The implementation has been adpoted from GSL-1.9 gsl/cdf/flatinv.c

 ``` 80 81 82 83 84 85``` ```# File 'lib/distribution/uniform/ruby.rb', line 80 def quantile(qn, lower = 0, upper = 1) fail RangeError, 'cdf value(qn) must be from [0, 1]. '\ "Cannot find quantile for qn=#{qn}" if qn > 1 || qn < 0 qn * upper + (1 - qn) * lower end```

### .rng(lower = 0, upper = 1, seed = nil) ⇒ Object

Returns a lambda that emits a uniformly distributed sequence of random numbers between the defined limits

== Arguments

• +lower+ - Lower limit of the distribution
• +upper+ - Upper limit of the distribution
• +seed+ - Seed to set the initial state, randomized if ommited
 ``` 15 16 17 18 19``` ```# File 'lib/distribution/uniform/ruby.rb', line 15 def rng(lower = 0, upper = 1, seed = nil) seed = Random.new_seed if seed.nil? prng = Random.new(seed) -> { prng.rand * (upper - lower) + lower } end```