12012-09-10  Rhys Ulerich <rhys.ulerich@gmail.com>
2
3	* ranf.c Add include for gsl_sys.h to fix MSVC build.
4	Thanks to Brian Gladman for the suggestion.
5
62011-04-28  Brian Gough  <bjg@network-theory.co.uk>
7
8	* ranlxs.c (ranlxs_set_lux): enforce maximum seed of
9	2^31-1 (0x7FFFFFFF) for ranlxs
10
112010-01-07  Brian Gough  <bjg@network-theory.co.uk>
12
13	* ran3.c (ran3_set): added a check for negative j
14
152009-07-09  Brian Gough  <bjg@network-theory.co.uk>
16
17	* rng.c (gsl_rng_free): handle NULL argument in free
18
192008-10-13  Brian Gough  <bjg@network-theory.co.uk>
20
21	* file.c: added (char *) to allow compilation with C++ compiler
22
232008-07-03  Brian Gough  <bjg@hp2.network-theory.co.uk>
24
25	* rng.c: moved inline functions to inline.c
26
27	* gsl_rng.h: use new inline declarations
28
29	* inline.c: handle inline functions separately
30
31	* Makefile.am (INCLUDES): use top_srcdir instead of top_builddir
32
332007-01-28  Brian Gough  <bjg@network-theory.co.uk>
34
35	* knuthran2002.c: added revised version from 9th printing
36
372007-01-04  Brian Gough  <bjg@network-theory.co.uk>
38
39	* default.c (gsl_rng_env_setup): send newline to stderr not stdout
40
412006-04-13  Brian Gough  <bjg@network-theory.co.uk>
42
43	* default.c (gsl_rng_env_setup): print a newline after list of
44	generators in error message
45
462006-03-16  Brian Gough  <bjg@network-theory.co.uk>
47
48	* test.c (main): added taus2 test
49
502006-02-19  Brian Gough  <bjg@network-theory.co.uk>
51
52	* rng.c: added note about why range=max-min not max-min+1
53
542005-12-16  Brian Gough  <bjg@network-theory.co.uk>
55
56	* rng.c (gsl_rng_uniform_int): catch the case n = 0 and return an
57	error
58
592003-07-23  Brian Gough  <bjg@network-theory.co.uk>
60
61	* file.c: added fwrite/fread functions
62
632003-06-12  Brian Gough  <bjg@network-theory.co.uk>
64
65	* Makefile.am: removed benchmark programs from default build
66
672003-06-02  Brian Gough  <bjg@network-theory.co.uk>
68
69	* waterman14.c: increased RAND_MIN to 1
70
71	* lecuyer21.c: corrections to RAND_MIN, RAND_MAX, floating point
72	denominator and seeding modulus
73
74	* fishman20.c (ran_get): use schrage multiplication to avoid
75	overflow
76
77	* coveyou.c: corrected value of RAND_MIN to 1 and RAND_MAX to 2^32-1
78
79	* borosh13.c: increased RAND_MIN to 1
80
81	* knuthran2.c (ran_get): use schrage multiplication to avoid
82	overflow in intermediate results
83
84	* fishman2x.c (ran_get): use schrage multiplication to avoid
85	overflow in intermediate results
86
87	* fishman18.c (ran_get): use schrage multiplication to avoid
88	overflow in intermediate results
89
90	* schrage.c (schrage): utility functions for multiplication of
91	long integers
92
93	* test.c (main): updated incorrect test values for
94	gsl_rng_fishman18 gsl_rng_fishman2x gsl_rng_knuthran2
95
96Mon Nov 25 19:27:10 2002  Brian Gough  <bjg@network-theory.co.uk>
97
98	* taus.c (taus2_set): fixed bug in seeding for s3 (test should be
99 	for s3<16, not s3<8)
100
101Sun Nov  3 14:40:43 2002  Brian Gough  <bjg@network-theory.co.uk>
102
103	* taus.c (taus2_set): fixed bug in seeding for s2 < 8
104
105Mon Jun 17 21:04:10 2002  Brian Gough  <bjg@network-theory.co.uk>
106
107	* mt.c (mt_set): ensure state counter mti is initialised by
108 	seeding routine
109
110Wed May 29 21:52:11 2002  Brian Gough  <bjg@network-theory.co.uk>
111
112	* randu.c: removed unused variable m
113
114Tue May  7 22:34:52 2002  Brian Gough  <bjg@network-theory.co.uk>
115
116	* mt.c (mt_1999_set): updated seeding procedure according to new
117 	release of MT19937 from the original authors.
118
119Fri Apr 26 21:17:05 2002  Brian Gough  <bjg@network-theory.co.uk>
120
121	* taus.c (taus2_set): added alternate seeding procedure as
122 	described in erratum to P.L'Ecuyer's paper.
123
124Wed Apr 17 19:37:49 2002  Brian Gough  <bjg@network-theory.co.uk>
125
126	* test.c (main): added missing test for gsl_rng_mt19937_1998
127
128	* gsl_rng.h: added missing declaration for gsl_rng_mt19937_1998
129
130Sun Dec  2 15:45:24 2001  Brian Gough  <bjg@network-theory.co.uk>
131
132	* Added new generators borosh13, coveyou, fishman18, fishman20,
133 	fishman2x, knuthran, knuthran2, lecuyer21, waterman14 from Knuth's
134 	Seminumerical Algorithms 3rd Ed.  Implemented by Carlo Perassi.
135
136	* gfsr4.c (gfsr4_get_double): increased divisor for double to
137 	2^32, avoids generating exact result of 1.0 as specified in the
138 	documentation
139
140Mon Sep  3 10:32:01 2001  Brian Gough  <bjg@network-theory.co.uk>
141
142	* mt.c (mt_1998_set): renamed macro to avoid duplicate definition
143
144Fri Aug 31 17:49:37 2001  Brian Gough  <bjg@network-theory.co.uk>
145
146	* mt.c (mt_1998_set): added the original (buggy) MT19937 seeding
147 	routine as mt19937_1998 for compatibility.
148
149Wed May  2 15:35:38 2001  Brian Gough  <bjg@network-theory.co.uk>
150
151	* ran1.c (ran1_get_double): use float constants for comparison
152	for compatibility with original Numerical Recipes routines
153
154	* ran2.c (ran2_get_double): ditto
155
156Fri Apr 27 18:47:07 2001  Brian Gough  <bjg@network-theory.co.uk>
157
158	* types.c (gsl_rng_types_setup): added void to make prototype
159 	valid in ansi c
160
161Mon Apr 16 20:03:07 2001  Brian Gough  <bjg@network-theory.co.uk>
162
163	* default.c (gsl_rng_env_setup): removed spurious argument to
164 	fprintf
165
166Tue Jan 23 13:24:26 2001  Brian Gough  <bjg@network-theory.co.uk>
167
168	* types.c (gsl_rng_types_setup): provide a function that returns a
169 	list of all the generator types
170
171	* default.c (gsl_rng_env_setup): get the list of generators from a
172 	function rather than having a list in the code itself.  Display a
173 	list of the valid generators if the user provides an incorrect one.
174
175Fri Dec  8 20:30:58 2000  Brian Gough  <bjg@network-theory.co.uk>
176
177	* ranlxs.c: renamed internal function ranlxs_set_impl to
178 	ranlxs_set
179
180	* ranlxd.c: renamed internal function ranlxd_set_impl to
181 	ranlxd_set
182
183	* ranlux.c: renamed internal function ranlux_set_impl to
184 	ranlux_set
185
186	* random.c: renamed internal function random_get_impl function to
187 	random_get
188
189Sat Jul 29 14:29:54 2000  Brian Gough  <bjg@network-theory.co.uk>
190
191	* test.c (main): updated test value for MT19937 for new seeding
192 	procedure
193
194	* mt.c: The seeding procedure has been updated to match the 10/99
195 	release of MT19937.
196
197Wed Mar  8 16:04:34 2000  Brian Gough  <bjg@network-theory.co.uk>
198
199	* rng.c (gsl_rng_memcpy): generators must now be of the same type
200 	for a copy from one to the other to work.
201
202Thu Feb 24 16:41:48 2000  Brian Gough  <bjg@network-theory.co.uk>
203
204	* ran3.c (ran3_set): initialize unused zeroth element of state to
205 	zero for consistency.
206
207Mon Feb 14 13:28:26 2000  Brian Gough  <bjg@network-theory.co.uk>
208
209	* made all internal functions static
210
211Mon Dec  6 16:21:05 1999  Brian Gough  <bjg@network-theory.co.uk>
212
213	* test.c (main): rewrote the tests to loop over all the generators
214
215Wed Aug 11 20:57:10 1999  Brian Gough  <bjg@network-theory.co.uk>
216
217	* ranlxd.c, ranlxs.c: added ranlxd and ranlxs, second generation
218 	RANLUX generators from Martin Luescher.
219
220Mon Mar  1 21:12:28 1999  Brian Gough  <bjg@netsci.freeserve.co.uk>
221
222	* test.c (rng_parallel_state_test): added some extra tests to fill
223 	a few holes in the net
224
225	* gsl_rng.h: moved static class information (max, min, etc) out of
226 	the instance data. Originally I avoided this because of the
227 	overhead of the extra indirection (r->type->get vs r->get) for
228 	every get function call, but that turns out to be only about 10%
229 	at worst so it's worth the slight speed cost to make the code
230 	safer.
231
232Tue Nov 17 17:09:31 1998  Brian Gough  <bjg@vvv.lanl.gov>
233
234	* gfsr4.c: added #include <config.h> which was missing
235
2361998-11-04    <bjg@ancho.lanl.gov>
237
238	* ranf.c: fix portability problems on alpha, by ensuring that
239	shorts are correctly promoted to longs at the appropriate points
240
241	* rand48.c: fix portability problems by ensuring that shorts are
242	correctly promoted to longs at the appropriate points
243
244	* rng-dump.c (main): write out file correctly by using chars
245	instead of unsigned long ints, since these can vary in size on
246	different architectures
247
248Wed Oct 28 15:02:22 1998  Brian Gough  <bjg@vvv.lanl.gov>
249
250	* rng.c: added #include <string.h> to get prototype for memcpy
251
252Mon Sep 14 20:53:09 1998  Brian Gough  <bjg@vvv.lanl.gov>
253
254	* default.c (gsl_rng_env_setup): added gfsr4
255
2561998-09-10  James Theiler  <jt@lanl.gov>
257
258	* gfsr4.c: added new random number generator
259
260	* Makefile.am: added gfsr4.c to SOURCES list
261
262	* gsl_rng.h: added gfsr4
263
264	* test.c: added gfsr4
265
266	* benchmark.c: added gfsr4
267
268Mon Aug 10 22:12:13 1998  Brian Gough  <bjg@vvv.lanl.gov>
269
270	* rng-dump.c: program to write out 3 million random numbers,
271 	suitable for testing with DIEHARD.
272
273Tue Aug  4 19:51:57 1998  Brian Gough  <bjg@vvv.lanl.gov>
274
275	* default.c (gsl_rng_env_setup): send default/enviroment output to
276 	stderr
277
278Mon Aug  3 18:25:52 1998  Brian Gough  <bjg@vvv.lanl.gov>
279
280	* mt.c: made constants static since they shouldn't be exported,
281 	added some speed improvements from Cokus' code (not all of them
282 	since they seemed to use more registers than available on the
283 	pentium).
284
285Thu Jul  9 13:56:20 1998  Brian Gough  <bjg@vvv.lanl.gov>
286
287	* slatec.c: renamed cmlib.c to slatec.c
288
289	* transputer.c: renamed tds.c to transputer.c so the name is a bit
290 	more obvious
291
292	* random.c: renamed random0 functions to random8, since obviously
293 	we can't have 0 bytes of state
294
295	* default.c (gsl_rng_env_setup): made gsl_rng_mt19937 the default
296 	generator
297
298Wed Jul  8 17:06:54 1998  Brian Gough  <bjg@vvv.lanl.gov>
299
300	* added random() functions. There are three(!) versions: the
301 	original BSD, linux libc5 (had a typo in the multiplier, but got
302 	installed on millions of machines so is now a defacto standard)
303 	and GNU glibc2 (fixes the typo and has an improved seeding
304 	procedure)
305
306Sun Jul  5 15:59:29 1998  Brian Gough  <bjg@vvv.lanl.gov>
307
308	* rand.c: renamed rand.c to cmlib.c and bsdrand.c to rand.c.
309
310	* ranf.c: added CRAY RANF, 48 bit generator
311
312	* rand48.c: added the standard unix rand48()
313
314	* changed all the routines to allow an additional callback for
315 	returning doubles. Now we can implement numerical recipes with its
316 	non-standard checks on the floating point results and also access
317 	the full state for getting 48-bit doubles out of rand48.
318
319Sat Jul  4 11:14:49 1998  Brian Gough  <bjg@vvv.lanl.gov>
320
321	* ranmar.c: added the RANMAR generator
322
323	* tds.c: added the INMOS Transputer RNG
324
325	* test.c (rng_min_test): added a test for RAND_MIN, to make sure
326 	none of the generators go below it. Statistically the test is not
327 	much good since it's very unlikely that an off-by-one error would
328 	show up unless we ran the test for > 4 billion numbers. However,
329 	the test might detect a gross error like a typo in RAND_MIN or a
330 	degeneracy 0,0,0,... for a multiplicative generator.
331
332	* uni.c: fixed RAND_MAX here too
333
334	* uni32.c: fixed RAND_MAX to m1-1, not m1 (since it's modulo m1 so
335 	m1 can't occur, only m1-1)
336
337Fri Jul  3 15:55:34 1998  Brian Gough  <bjg@vvv.lanl.gov>
338
339	* rng.c (gsl_rng_uniform_gt0_lt1): added a function which returns
340 	numbers in the range (0,1), i.e. excluding 0.0 and 1.0
341
342	* renamed bad_randu.c to randu.c
343
344	* renamed bad_rand.c to bsdrand.c
345
346Mon Jun 29 18:11:08 1998  Brian Gough  <bjg@vvv.lanl.gov>
347
348	* added implementations of the numerical recipes algorithms ran0,
349 	ran1, ran2, ran3
350
351Sun Jun 28 11:51:48 1998  Brian Gough  <bjg@vvv.lanl.gov>
352
353	* gsl_rng.h: added gsl_rng_uniform_pos which guarantees positive
354 	numbers, (0,1]
355
356	* added a RAND_MIN entry to the gsl_rng/gsl_rng_type structs
357
358	* gsl_rng.h: renamed gsl_rng_get_uni to gsl_rng_uniform
359
360Wed Jun 24 12:10:23 1998  Brian Gough  <bjg@vvv.lanl.gov>
361
362	* gsl_rng.h: added inline versions of gsl_rng_get and
363 	gsl_rng_get_uni
364
365	* benchmark.c: added a simple benchmark program to measure rng's
366 	per second
367
368	* test.c (N2): reduced the number of tests from 1 million to 100k
369 	to speed things up a bit
370
371	* changed the generic seeding algorithm to s -> (69069*s) &
372 	0xFFFFFFFF which covers all 32 bits.
373
374Sun Jun 21 23:24:36 1998  Brian Gough  <bjg@vvv.lanl.gov>
375
376	* added the MT19937 and TT880 mersenne prime generators
377
378Sat Jun 20 13:58:40 1998  Brian Gough  <bjg@vvv.lanl.gov>
379
380	* ensured that 32 bit quantities are defined as 'long', as
381 	required by ANSI. On a 16 bit platform 'int' is usually just 16
382 	bits.
383
384	* ranlux.c: added the RANLUX generator
385
386Fri Jun 19 11:12:06 1998  Brian Gough  <bjg@vvv.lanl.gov>
387
388	* removed the gsl- prefix from generator name strings
389
390Thu Jun 18 12:17:16 1998  Brian Gough  <bjg@vvv.lanl.gov>
391
392	* test.c: added a 10000 iteration check for cmrg
393
394	* got rid of init_state values. It's simpler to generate them
395 	directly from the seed, the cost of creating an rng is not usually
396 	a big deal.
397
398	* rng.c: eliminated the gsl_rng_internal struct since it was not
399 	really necessary
400
401Wed Jun 17 17:31:27 1998  Brian Gough  <bjg@vvv.lanl.gov>
402
403	* minstd.c: added Park and Millers MINSTD generator
404
405Thu Jun 11 18:08:40 1998  Brian Gough  <bjg@vvv.lanl.gov>
406
407	* this will be an alternate, thread-safe interface to the random
408 	number generators.
409
410