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