random_variates 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/random_variates.rb +6 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67576ececc07bebc1fdca7b6f25d4c2bfc9b719765e88a63530d4bf6dcb9e982
|
4
|
+
data.tar.gz: 271706b932ed05415196da7836d421e2be95c7d8a887cedf715101aa50802f03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f30374ac11869a77187be0532678bb8a3f3d00afcad1a894cf341d488c563ef5ced758a5a8641b584c42f51805af78b3a8eae95486b9839cc73e7c680714601
|
7
|
+
data.tar.gz: d1aa14d4af1113bf220c6e02aa516cbf66f30dd5c0932e4766d11984b5656a3deb9fa08e482cca194282c3e76c3a7e2c1c49249fa34fbecdb71f96d9d5507c73
|
data/lib/random_variates.rb
CHANGED
@@ -105,9 +105,13 @@ class Exponential
|
|
105
105
|
fail 'Rate must be positive.' if rate && rate <= 0
|
106
106
|
fail 'Mean must be positive.' if mean && mean <= 0
|
107
107
|
fail 'Supply one and only one of mean or rate' unless rate.nil? ^ mean.nil?
|
108
|
-
|
108
|
+
if rate.nil?
|
109
|
+
@mean, @rate = mean, 1.0 / mean
|
110
|
+
else
|
111
|
+
@mean, @rate = 1.0 / rate, rate
|
112
|
+
end
|
109
113
|
@generator = Enumerator.new do |yielder|
|
110
|
-
loop { yielder << (
|
114
|
+
loop { yielder << (-@mean * Math.log(rng.next)) }
|
111
115
|
end
|
112
116
|
end
|
113
117
|
end
|