Class: Croupier::Distributions::Exponential
- Inherits:
-
Croupier::Distribution
- Object
- Croupier::Distribution
- Croupier::Distributions::Exponential
- Defined in:
- lib/croupier/distributions/exponential.rb
Overview
Exponential Distribution Continuous probability distribution with a lambda param rate describing the time between events in a Poisson process
Instance Attribute Summary
Attributes inherited from Croupier::Distribution
#description, #name, #parameters
Class Method Summary collapse
Instance Method Summary collapse
- #default_parameters ⇒ Object
-
#initialize(options = {}) ⇒ Exponential
constructor
A new instance of Exponential.
- #inv_cdf(n) ⇒ Object
Methods inherited from Croupier::Distribution
#configure, #generate_number, #generate_sample, #params
Constructor Details
#initialize(options = {}) ⇒ Exponential
Returns a new instance of Exponential.
11 12 13 14 15 16 |
# File 'lib/croupier/distributions/exponential.rb', line 11 def initialize(={}) @name = "Exponential distribution" @description = "Continuous probability distribution with a lambda param rate describing the time between events in a Poisson process" configure() raise Croupier::InputParamsError, "Invalid interval values" if params[:lambda] <= 0 end |
Class Method Details
.cli_name ⇒ Object
26 27 28 |
# File 'lib/croupier/distributions/exponential.rb', line 26 def self.cli_name "exponential" end |
.cli_options ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/croupier/distributions/exponential.rb', line 30 def self. {:options => [ [:lambda, 'rate param', {:type=>:float, :default => 1.0}] ], :banner => "Exponential distribution. Generate numbers following a exponential distribution for a given lambda rate" } end |
Instance Method Details
#default_parameters ⇒ Object
22 23 24 |
# File 'lib/croupier/distributions/exponential.rb', line 22 def default_parameters {:lambda => 1.0} end |
#inv_cdf(n) ⇒ Object
18 19 20 |
# File 'lib/croupier/distributions/exponential.rb', line 18 def inv_cdf n (-1/params[:lambda]) * Math.log(n) end |