randomext 0.1 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5b23ad8095b3b5d4a95d99892b179002f3f639a7
4
+ data.tar.gz: b28e03eb8da6adb9325c0907110c323ba58b94c9
5
+ SHA512:
6
+ metadata.gz: 5a3e55f905a6a9d9161a4991a88b6d1775fe10677373bb69cfacccfd4b1cf1b92def5e247a8212e03e6ade47364f5b4f4fa91e78eab94faafb55b0accbaa2fd2
7
+ data.tar.gz: ea89f943c1b2d18d1794fe913b5ef1e4216509b7904a7ac142518b1a4d1497c78d54264e82f1904de83d161f0c069b7b260d7fc1b7a8e3dbe33fcb785bc502eb
@@ -1,5 +1,20 @@
1
1
  #include "randomext.h"
2
2
 
3
+ /*
4
+ * Document-class: Random::Binomial
5
+ *
6
+ * A random sampler from the binoial distribution.
7
+ *
8
+ * This sampler uses table plus square histgram method with
9
+ * Robin Hoot method. This method constructs a table for each
10
+ * distribution. If you once construct the table, you can
11
+ * draw a random sample fast for large n (n >= 40), but the
12
+ * cost of the table construction is expensive. Therefore,
13
+ * if you need to draw many samples from the same binomial distribution,
14
+ * you had better to use this class. Otherwise, you should use
15
+ * {Random#binomial}.
16
+ *
17
+ */
3
18
  typedef struct {
4
19
  int n;
5
20
  double theta;
@@ -54,8 +69,8 @@ static void check_binomial_params(int n, double theta, const char* method_name)
54
69
  * Inverse function method is used.
55
70
  *
56
71
  * @overload binomial(n, theta)
57
- * @param [Integer] n the number of trials (n > 0)
58
- * @param [Float] theta success probability (0 < theta < 1)
72
+ * @param [Integer] n the number of trials (n > 0)
73
+ * @param [Float] theta success probability (0 < theta < 1)
59
74
  * @return [Integer] a random sample in 0..n
60
75
  */
61
76
  static VALUE random_binomial_inv(VALUE self, VALUE num, VALUE prob)
@@ -137,7 +152,6 @@ static void fill_binomial_VK_table(binomial_t *bin, double ntheta[])
137
152
  static void fill_binomial_T_VT_table(binomial_t *bin)
138
153
  {
139
154
  int k, i, x;
140
- int nt;
141
155
  int *qt = ALLOC_N(int, bin->n + 2);
142
156
  double *theta = ALLOC_N(double, bin->n + 1);
143
157
  double *ntheta = ALLOC_N(double, bin->n + 1);
@@ -145,7 +159,6 @@ static void fill_binomial_T_VT_table(binomial_t *bin)
145
159
 
146
160
  for (k=7; ;k++) {
147
161
  int b = pow2(k);
148
- nt = 0;
149
162
  qt[0] = 0;
150
163
  for (x=0; x<=bin->n; x++) {
151
164
  qt[x+1] = floor(b*bin->p[x]) + qt[x];
@@ -200,19 +213,10 @@ static VALUE binomial_alloc(VALUE klass)
200
213
  /*
201
214
  * Returns a random sampler from a binomial distribution.
202
215
  *
203
- * This sampler uses table plus square histgram method with
204
- * Robin Hoot method. This method constructs a table for each
205
- * distribution. If you once construct the table, you can
206
- * draw a random sample fast for large n (n >= 40), but the
207
- * cost of the table construction is expensive. Therefore,
208
- * if you need to draw many samples from the same binomial distribution,
209
- * you had better to use this class. Otherwise, you should use
210
- * Random#binomial.
211
- *
212
216
  * @overload initialize(rng, n, theta)
213
- * @param [Random] rng a random number generator
214
- * @param [Integer] n the number of trials (n > 0)
215
- * @param [Float] theta success probability (0 < theta < 1)
217
+ * @param [Random] rng a random number generator
218
+ * @param [Integer] n the number of trials (n > 0)
219
+ * @param [Float] theta success probability (0 < theta < 1)
216
220
  * @return [Random::Binomial] a random number generator from the specified binomial distribution
217
221
  */
218
222
  static VALUE binomial_initialize(VALUE self, VALUE rng, VALUE num, VALUE prob)
@@ -265,7 +269,8 @@ static VALUE binomial_rand(VALUE self)
265
269
  }
266
270
 
267
271
  /*
268
- * @!attribute [r] n
272
+ * Returns the parameter n, the number of trials.
273
+ *
269
274
  * @return [Integer] the parameter n
270
275
  */
271
276
  static VALUE binomial_n(VALUE self)
@@ -277,7 +282,8 @@ static VALUE binomial_n(VALUE self)
277
282
  }
278
283
 
279
284
  /*
280
- * @!attribute [r] theta
285
+ * Returns the parameter theta, the success probability.
286
+ *
281
287
  * @return [Float] the parameter theta
282
288
  */
283
289
  static VALUE binomial_theta(VALUE self)
@@ -288,27 +294,6 @@ static VALUE binomial_theta(VALUE self)
288
294
  return DBL2NUM(bin->theta);
289
295
  }
290
296
 
291
- #if 0
292
- static VALUE binomial_debug_info(VALUE self)
293
- {
294
- binomial_t *bin;
295
- int i;
296
-
297
- Data_Get_Struct(self, binomial_t, bin);
298
-
299
-
300
- printf("N=%d\n", bin->N);
301
- for (i=0; i<bin->N; ++i) {
302
- printf("%d ", bin->T[i]);
303
- }
304
- puts("");
305
- for (i=0; i<=bin->n; ++i) {
306
- printf("%f %d\n", bin->V[i], bin->K[i]);
307
- }
308
- return Qnil;
309
- }
310
- #endif
311
-
312
297
  void randomext_binomial_init(VALUE cRandom)
313
298
  {
314
299
  VALUE cBinomial = rb_define_class_under(cRandom, "Binomial", rb_cObject);
@@ -319,5 +304,4 @@ void randomext_binomial_init(VALUE cRandom)
319
304
  rb_define_method(cBinomial, "rand", binomial_rand, 0);
320
305
  rb_define_method(cBinomial, "n", binomial_n, 0);
321
306
  rb_define_method(cBinomial, "theta", binomial_theta, 0);
322
- //rb_define_method(cBinomial, "debug_info", binomial_debug_info, 0);
323
307
  }
@@ -26,9 +26,9 @@ static inline double hypergeometric_distribution(int x, int N, int M, int n)
26
26
  * Inverse method is used.
27
27
  *
28
28
  * @overload hypergeometric(N, M, n)
29
- * @param [Integer] N a population (N >= 0)
30
- * @param [Integer] M the number of successes (0 <= M <= N)
31
- * @param [Integer] n the number of samples (0 <= n <= N)
29
+ * @param [Integer] N a population (N >= 0)
30
+ * @param [Integer] M the number of successes (0 <= M <= N)
31
+ * @param [Integer] n the number of samples (0 <= n <= N)
32
32
  * @return [Integer] a random sample in [max(0, n-(N-M)), min(n, M)]
33
33
  */
34
34
  static VALUE random_hypergoemtric_inv(VALUE self, VALUE vN, VALUE vM, VALUE vn)
@@ -6,9 +6,9 @@
6
6
  * The return value is contained in [-PI, PI].
7
7
  *
8
8
  * @overload vonmises(mu, kappa)
9
- * @param [Float] mu direction parameter (-PI <= mu <= PI)
10
- * @param [Float] kappa concentration parameter (kappa > 0)
11
- * @return [Float] A random sample in [-PI, PI]
9
+ * @param [Float] mu direction parameter (-PI <= mu <= PI)
10
+ * @param [Float] kappa concentration parameter (kappa > 0)
11
+ * @return [Float] A random sample in [-PI, PI]
12
12
  */
13
13
  static VALUE random_vonmises(VALUE self, VALUE vmu, VALUE vkappa)
14
14
  {
@@ -53,10 +53,10 @@ static VALUE random_vonmises(VALUE self, VALUE vmu, VALUE vkappa)
53
53
  * In case of q == 0.0, the distribution is called a Zipf distribution.
54
54
  *
55
55
  * @overload zipf_mandelbrot(n, q=0.0, s=1.0)
56
- * @param [Integer] n the maximum of return value (n > 0)
57
- * @param [Float] q a parameter (q >= 0.0)
58
- * @param [Float] s a parameter (s > 0.0)
59
- * @return [Integer] a random sample in 1..n
56
+ * @param [Integer] n the maximum of return value (n > 0)
57
+ * @param [Float] q a parameter (q >= 0.0)
58
+ * @param [Float] s a parameter (s > 0.0)
59
+ * @return [Integer] a random sample in 1..n
60
60
  */
61
61
  static VALUE random_zipf(int argc, VALUE *argv, VALUE self)
62
62
  {
@@ -94,7 +94,7 @@ static VALUE random_zipf(int argc, VALUE *argv, VALUE self)
94
94
  * Draws a random sample from a zeta distribution.
95
95
  *
96
96
  * @overload zeta(s)
97
- * @param [Integer] s a parameter (s > 0.0)
97
+ * @param [Integer] s a parameter (s > 0.0)
98
98
  * @return [Integer] a random sample in [1, INFINITY)
99
99
  */
100
100
  static VALUE random_zeta(VALUE self, VALUE vs)
@@ -23,7 +23,7 @@ static inline double backward_ratio(int x, double lambda)
23
23
  * Inverse function method is used.
24
24
  *
25
25
  * @overload poisson(lambda)
26
- * @param [Float] lambda mean
26
+ * @param [Float] lambda mean
27
27
  * @return [Integer] a random sample in [0, INFINITY)
28
28
  */
29
29
  static VALUE random_poisson_inv(VALUE self, VALUE l)
@@ -6,40 +6,13 @@
6
6
  #define M 64
7
7
  #define N (1<<K)
8
8
 
9
- static double* w = NULL;
10
- static uint64_t* k;
11
- static double* f;
9
+ #include "standard_normal_table.h"
12
10
 
13
11
  inline static double sn(double x)
14
12
  {
15
13
  return exp(-x*x/2);
16
14
  }
17
15
 
18
- static void init_snormal_table(void)
19
- {
20
- int i;
21
- double xi;
22
-
23
- w = ALLOC_N(double, N);
24
- k = ALLOC_N(uint64_t, N);
25
- f = ALLOC_N(double, N);
26
-
27
- w[N-1] = V*exp(R*R/2)/pow2(M-K-1);
28
- w[N-2] = R/pow2(M-K-1);
29
- k[N-1] = floor(R/w[N-1]);
30
- f[N-1] = sn(R);
31
- xi = R;
32
-
33
- for (i=N-2; i>=1; --i) {
34
- xi = sqrt(-2*log(sn(xi)+V/xi));
35
- w[i-1] = xi/pow2(M-K-1);
36
- k[i] = floor(xi/w[i]);
37
- f[i] = sn(xi);
38
- }
39
- k[0] = 0;
40
- f[0] = 1;
41
- }
42
-
43
16
  static double sample_from_tail(VALUE random)
44
17
  {
45
18
  for (;;) {
@@ -56,9 +29,6 @@ double randomext_random_standard_normal(VALUE random)
56
29
  int sign;
57
30
  double ux;
58
31
 
59
- if (w == NULL)
60
- init_snormal_table();
61
-
62
32
  for (;;) {
63
33
  unsigned int u0 = rb_random_int32(random);
64
34
  i = u0 & MASK(K);
@@ -0,0 +1,392 @@
1
+ static double w[N] = {
2
+ 3.779211177528728e-18,
3
+ 5.035852722282574e-18,
4
+ 5.919542444491104e-18,
5
+ 6.625780997425304e-18,
6
+ 7.225554026797095e-18,
7
+ 7.753411501834412e-18,
8
+ 8.22901389351605e-18,
9
+ 8.66471612981438e-18,
10
+ 9.068837885372816e-18,
11
+ 9.447275165901862e-18,
12
+ 9.804374136660416e-18,
13
+ 1.0143440402100701e-17,
14
+ 1.046705311944029e-17,
15
+ 1.0777267798949829e-17,
16
+ 1.1075752268719609e-17,
17
+ 1.1363880762787455e-17,
18
+ 1.164280081091786e-17,
19
+ 1.1913481912009988e-17,
20
+ 1.2176751677985312e-17,
21
+ 1.2433323156881527e-17,
22
+ 1.2683815817413517e-17,
23
+ 1.2928771894948216e-17,
24
+ 1.3168669287123936e-17,
25
+ 1.3403931845028942e-17,
26
+ 1.3634937672194328e-17,
27
+ 1.386202588123086e-17,
28
+ 1.408550214314811e-17,
29
+ 1.4305643282033703e-17,
30
+ 1.452270110785588e-17,
31
+ 1.4736905636009493e-17,
32
+ 1.494846780931835e-17,
33
+ 1.5157581813408613e-17,
34
+ 1.5364427057490915e-17,
35
+ 1.5569169878084408e-17,
36
+ 1.57719650119731e-17,
37
+ 1.5972956875899105e-17,
38
+ 1.6172280683578905e-17,
39
+ 1.6370063425141637e-17,
40
+ 1.6566424729707162e-17,
41
+ 1.6761477628301348e-17,
42
+ 1.6955329231460542e-17,
43
+ 1.7148081333564528e-17,
44
+ 1.7339830954047733e-17,
45
+ 1.7530670824087173e-17,
46
+ 1.772068982608615e-17,
47
+ 1.7909973392213292e-17,
48
+ 1.8098603867375507e-17,
49
+ 1.8286660841268705e-17,
50
+ 1.8474221453535323e-17,
51
+ 1.8661360675541846e-17,
52
+ 1.8848151571856147e-17,
53
+ 1.9034665544139553e-17,
54
+ 1.922097255986149e-17,
55
+ 1.94071413679859e-17,
56
+ 1.959323970356166e-17,
57
+ 1.9779334482967482e-17,
58
+ 1.996549199141056e-17,
59
+ 2.015177806415392e-17,
60
+ 2.0338258262846282e-17,
61
+ 2.052499804824809e-17,
62
+ 2.071206295058628e-17,
63
+ 2.0899518738726243e-17,
64
+ 2.108743158932197e-17,
65
+ 2.127586825709298e-17,
66
+ 2.146489624737944e-17,
67
+ 2.1654583992144607e-17,
68
+ 2.1845001030626488e-17,
69
+ 2.203621819588908e-17,
70
+ 2.2228307808588562e-17,
71
+ 2.2421343879352476e-17,
72
+ 2.2615402321272053e-17,
73
+ 2.2810561174131224e-17,
74
+ 2.3006900842143298e-17,
75
+ 2.3204504347140732e-17,
76
+ 2.3403457599368684e-17,
77
+ 2.360384968827396e-17,
78
+ 2.3805773195962715e-17,
79
+ 2.4009324536330014e-17,
80
+ 2.421460432324996e-17,
81
+ 2.4421717771666483e-17,
82
+ 2.4630775135954096e-17,
83
+ 2.4841892190539375e-17,
84
+ 2.5055190758505437e-17,
85
+ 2.527079929476491e-17,
86
+ 2.548885353140859e-17,
87
+ 2.5709497194049845e-17,
88
+ 2.5932882799429966e-17,
89
+ 2.6159172546277296e-17,
90
+ 2.6388539313487046e-17,
91
+ 2.6621167782188563e-17,
92
+ 2.6857255701293365e-17,
93
+ 2.7097015319798532e-17,
94
+ 2.7340675013619677e-17,
95
+ 2.7588481140256304e-17,
96
+ 2.7840700161422706e-17,
97
+ 2.809762108226512e-17,
98
+ 2.835955826639796e-17,
99
+ 2.8626854699347176e-17,
100
+ 2.889988578991277e-17,
101
+ 2.917906382056743e-17,
102
+ 2.946484318580545e-17,
103
+ 2.9757726593421176e-17,
104
+ 3.0058272450907446e-17,
105
+ 3.0367103721563165e-17,
106
+ 3.068491861822208e-17,
107
+ 3.101250361502133e-17,
108
+ 3.1350749411368486e-17,
109
+ 3.170067069509885e-17,
110
+ 3.206343085064238e-17,
111
+ 3.2440373184106596e-17,
112
+ 3.283306085507585e-17,
113
+ 3.324332861780275e-17,
114
+ 3.3673350851217557e-17,
115
+ 3.412573248168003e-17,
116
+ 3.460363276607498e-17,
117
+ 3.511093738513032e-17,
118
+ 3.565250353172647e-17,
119
+ 3.623451883582939e-17,
120
+ 3.686504450680305e-17,
121
+ 3.75548699516312e-17,
122
+ 3.831892265142546e-17,
123
+ 3.9178734569779584e-17,
124
+ 4.0167091972264215e-17,
125
+ 4.1337714538177976e-17,
126
+ 4.2788395857263743e-17,
127
+ 4.472928950257001e-17,
128
+ 4.777594786313511e-17,
129
+ 5.1529423044407315e-17,
130
+ };
131
+
132
+ static uint64_t k[N] = {
133
+ 0,
134
+ 54076415620536904,
135
+ 61300587756530160,
136
+ 64377012539529264,
137
+ 66076294707096096,
138
+ 67151864522975000,
139
+ 67892968177924664,
140
+ 68434202989192568,
141
+ 68846593712197952,
142
+ 69171123658870632,
143
+ 69433082538507880,
144
+ 69648914306148520,
145
+ 69829769879067288,
146
+ 69983476194917440,
147
+ 70115687770302160,
148
+ 70230590878559368,
149
+ 70331350677449488,
150
+ 70420404420292040,
151
+ 70499659178058240,
152
+ 70570628466878520,
153
+ 70634528715794040,
154
+ 70692348697106704,
155
+ 70744900361805480,
156
+ 70792856639540568,
157
+ 70836779941489144,
158
+ 70877143927839008,
159
+ 70914350325727000,
160
+ 70948742062233352,
161
+ 70980613620876648,
162
+ 71010219282873288,
163
+ 71037779740400504,
164
+ 71063487444945400,
165
+ 71087510964150584,
166
+ 71109998555058080,
167
+ 71131081113284408,
168
+ 71150874621589976,
169
+ 71169482194156344,
170
+ 71186995792270104,
171
+ 71203497671331240,
172
+ 71219061606927376,
173
+ 71233753938254240,
174
+ 71247634459757496,
175
+ 71260757186039240,
176
+ 71273171010449816,
177
+ 71284920274100840,
178
+ 71296045259079904,
179
+ 71306582617266824,
180
+ 71316565744221304,
181
+ 71326025106040584,
182
+ 71334988525801840,
183
+ 71343481435146536,
184
+ 71351527095693856,
185
+ 71359146794246632,
186
+ 71366360015153064,
187
+ 71373184592683680,
188
+ 71379636845862160,
189
+ 71385731697832616,
190
+ 71391482781545128,
191
+ 71396902533285504,
192
+ 71402002275357128,
193
+ 71406792289034624,
194
+ 71411281878747928,
195
+ 71415479428314056,
196
+ 71419392449911592,
197
+ 71423027626383784,
198
+ 71426390847360208,
199
+ 71429487239599328,
200
+ 71432321191875536,
201
+ 71434896374660288,
202
+ 71437215754778184,
203
+ 71439281605151936,
204
+ 71441095509685592,
205
+ 71442658363269824,
206
+ 71443970366826712,
207
+ 71445031017241888,
208
+ 71445839091957312,
209
+ 71446392627917936,
210
+ 71446688894475496,
211
+ 71446724359753304,
212
+ 71446494649861640,
213
+ 71445994500222504,
214
+ 71445217698110208,
215
+ 71444157015336032,
216
+ 71442804129794104,
217
+ 71441149534335072,
218
+ 71439182431133664,
219
+ 71436890609354568,
220
+ 71434260303482624,
221
+ 71431276029149600,
222
+ 71427920392635256,
223
+ 71424173869414824,
224
+ 71420014546126464,
225
+ 71415417819088288,
226
+ 71410356040935128,
227
+ 71404798104978112,
228
+ 71398708954393280,
229
+ 71392049000153288,
230
+ 71384773427507192,
231
+ 71376831365482520,
232
+ 71368164886913096,
233
+ 71358707797302752,
234
+ 71348384158599168,
235
+ 71337106477510176,
236
+ 71324773465667520,
237
+ 71311267248289504,
238
+ 71296449855397552,
239
+ 71280158769685808,
240
+ 71262201219561744,
241
+ 71242346781854352,
242
+ 71220317675959912,
243
+ 71195775857061400,
244
+ 71168305596529440,
245
+ 71137389581305912,
246
+ 71102375511978928,
247
+ 71062428446027928,
248
+ 71016461188283864,
249
+ 70963029851113296,
250
+ 70900172224299768,
251
+ 70825148412611304,
252
+ 70734006393383296,
253
+ 70620815666934008,
254
+ 70476226522053056,
255
+ 70284534227628608,
256
+ 70017030195232984,
257
+ 69614581079045472,
258
+ 68930870409638744,
259
+ 67462502132127024,
260
+ 66808818195620008,
261
+ };
262
+
263
+ static double f[N] = {
264
+ 1.0,
265
+ 0.9635996931270862,
266
+ 0.9362826816850596,
267
+ 0.9130436479717402,
268
+ 0.8922816507840261,
269
+ 0.8732430489100695,
270
+ 0.8555006078694506,
271
+ 0.8387836052959896,
272
+ 0.822907211381409,
273
+ 0.8077382946829605,
274
+ 0.7931770117713051,
275
+ 0.7791460859296877,
276
+ 0.7655841738977045,
277
+ 0.7524415591746114,
278
+ 0.7396772436726473,
279
+ 0.7272569183441848,
280
+ 0.7151515074104986,
281
+ 0.7033360990161581,
282
+ 0.6917891434366751,
283
+ 0.6804918409973341,
284
+ 0.6694276673488904,
285
+ 0.658582000050088,
286
+ 0.6479418211102225,
287
+ 0.6374954773350423,
288
+ 0.6272324852499273,
289
+ 0.6171433708188809,
290
+ 0.6072195366251203,
291
+ 0.5974531509445167,
292
+ 0.5878370544347066,
293
+ 0.5783646811197631,
294
+ 0.5690299910679509,
295
+ 0.5598274127040869,
296
+ 0.5507517931146045,
297
+ 0.5417983550254255,
298
+ 0.5329626593838361,
299
+ 0.5242405726729841,
300
+ 0.5156282382440018,
301
+ 0.507122051075569,
302
+ 0.4987186354709795,
303
+ 0.4904148252838441,
304
+ 0.4822076463294852,
305
+ 0.47409430069301695,
306
+ 0.4660721526894561,
307
+ 0.45813871626787206,
308
+ 0.4502916436820392,
309
+ 0.44252871527546844,
310
+ 0.4348478302499909,
311
+ 0.4272469983049961,
312
+ 0.4197243320495744,
313
+ 0.412278040102661,
314
+ 0.40490642080722294,
315
+ 0.3976078564938733,
316
+ 0.3903808082373146,
317
+ 0.3832238110559012,
318
+ 0.3761354695105626,
319
+ 0.3691144536644722,
320
+ 0.3621594953693176,
321
+ 0.3552693848479171,
322
+ 0.3484429675463266,
323
+ 0.3416791412315504,
324
+ 0.3349768533135892,
325
+ 0.3283350983728503,
326
+ 0.3217529158759849,
327
+ 0.3152293880650109,
328
+ 0.3087636380061811,
329
+ 0.30235482778648354,
330
+ 0.296002156846933,
331
+ 0.28970486044295984,
332
+ 0.283462208223233,
333
+ 0.2772735029191881,
334
+ 0.2711380791383846,
335
+ 0.2650553022555892,
336
+ 0.25902456739620483,
337
+ 0.25304529850732577,
338
+ 0.2471169475123214,
339
+ 0.24123899354543982,
340
+ 0.23541094226347908,
341
+ 0.22963232523211613,
342
+ 0.22390269938500842,
343
+ 0.2182216465543054,
344
+ 0.2125887730717303,
345
+ 0.20700370943992652,
346
+ 0.20146611007431367,
347
+ 0.19597565311627774,
348
+ 0.19053204031913715,
349
+ 0.1851349970089922,
350
+ 0.17978427212329545,
351
+ 0.1744796383307895,
352
+ 0.169220892237365,
353
+ 0.16400785468342038,
354
+ 0.1588403711394793,
355
+ 0.15371831220818166,
356
+ 0.14864157424234226,
357
+ 0.14361008009062776,
358
+ 0.1386237799845946,
359
+ 0.13368265258343937,
360
+ 0.1287867061959432,
361
+ 0.12393598020286782,
362
+ 0.11913054670765083,
363
+ 0.11437051244886601,
364
+ 0.10965602101484027,
365
+ 0.10498725540942132,
366
+ 0.10036444102865587,
367
+ 0.09578784912173144,
368
+ 0.09125780082683026,
369
+ 0.08677467189478018,
370
+ 0.08233889824223566,
371
+ 0.0779509825139734,
372
+ 0.0736115018841134,
373
+ 0.06932111739357791,
374
+ 0.06508058521306807,
375
+ 0.060890770348040406,
376
+ 0.05675266348104985,
377
+ 0.05266740190305101,
378
+ 0.048636295859867805,
379
+ 0.044660862200491425,
380
+ 0.040742868074444175,
381
+ 0.0368843887866562,
382
+ 0.03308788614622575,
383
+ 0.02935631744000685,
384
+ 0.02569329193593427,
385
+ 0.022103304615927098,
386
+ 0.018592102737011288,
387
+ 0.015167298010546568,
388
+ 0.011839478657884862,
389
+ 0.008624484412859885,
390
+ 0.005548995220771345,
391
+ 0.002669629083880923,
392
+ };
metadata CHANGED
@@ -1,17 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: randomext
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
5
- prerelease:
4
+ version: 0.1.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Ippei Obayashi
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-11-14 00:00:00.000000000 Z
11
+ date: 2015-12-17 00:00:00.000000000 Z
13
12
  dependencies: []
14
- description: ! "This library extends class Random in the Ruby standard library.\nThe
13
+ description: "This library extends class Random in the Ruby standard library.\nThe
15
14
  Random class in the Ruby standard library supports only \nrandom sampling from discrete/continuous
16
15
  uniform distribution.\n\nThis library provides random sampling methods from \nmany
17
16
  kinds of probability distributions such as normal, gamma,\nbeta, chi_square, t,
@@ -22,39 +21,41 @@ extensions:
22
21
  - ext/extconf.rb
23
22
  extra_rdoc_files: []
24
23
  files:
25
- - lib/randomext.rb
24
+ - ext/binomial.c
26
25
  - ext/extconf.rb
27
- - ext/standard_exponential.c
28
- - ext/randomext.h
29
- - ext/other.c
26
+ - ext/gamma.c
30
27
  - ext/hypergeometric.c
31
- - ext/randomext_native.c
28
+ - ext/other.c
32
29
  - ext/poisson.c
33
- - ext/binomial.c
34
- - ext/gamma.c
30
+ - ext/randomext.h
31
+ - ext/randomext_native.c
32
+ - ext/standard_exponential.c
35
33
  - ext/standard_normal.c
34
+ - ext/standard_normal_table.h
35
+ - lib/randomext.rb
36
36
  homepage: http://www.kmc.gr.jp/~ohai/randomext/
37
- licenses: []
37
+ licenses:
38
+ - BSD-2-Clause
39
+ metadata: {}
38
40
  post_install_message:
39
41
  rdoc_options: []
40
42
  require_paths:
41
43
  - lib
42
44
  required_ruby_version: !ruby/object:Gem::Requirement
43
- none: false
44
45
  requirements:
45
- - - ! '>='
46
+ - - ">="
46
47
  - !ruby/object:Gem::Version
47
48
  version: '0'
48
49
  required_rubygems_version: !ruby/object:Gem::Requirement
49
- none: false
50
50
  requirements:
51
- - - ! '>='
51
+ - - ">="
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0'
54
54
  requirements: []
55
55
  rubyforge_project:
56
- rubygems_version: 1.8.23
56
+ rubygems_version: 2.4.5.1
57
57
  signing_key:
58
- specification_version: 3
58
+ specification_version: 4
59
59
  summary: This library extend Random class of Ruby standard library
60
60
  test_files: []
61
+ has_rdoc: false