Blame rng/ChangeLog

Packit 67cb25
2012-09-10  Rhys Ulerich <rhys.ulerich@gmail.com>
Packit 67cb25
Packit 67cb25
	* ranf.c Add include for gsl_sys.h to fix MSVC build.
Packit 67cb25
	Thanks to Brian Gladman for the suggestion.
Packit 67cb25
Packit 67cb25
2011-04-28  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* ranlxs.c (ranlxs_set_lux): enforce maximum seed of
Packit 67cb25
	2^31-1 (0x7FFFFFFF) for ranlxs
Packit 67cb25
Packit 67cb25
2010-01-07  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* ran3.c (ran3_set): added a check for negative j
Packit 67cb25
Packit 67cb25
2009-07-09  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* rng.c (gsl_rng_free): handle NULL argument in free
Packit 67cb25
Packit 67cb25
2008-10-13  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* file.c: added (char *) to allow compilation with C++ compiler
Packit 67cb25
Packit 67cb25
2008-07-03  Brian Gough  <bjg@hp2.network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* rng.c: moved inline functions to inline.c
Packit 67cb25
Packit 67cb25
	* gsl_rng.h: use new inline declarations
Packit 67cb25
Packit 67cb25
	* inline.c: handle inline functions separately
Packit 67cb25
Packit 67cb25
	* Makefile.am (INCLUDES): use top_srcdir instead of top_builddir
Packit 67cb25
Packit 67cb25
2007-01-28  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* knuthran2002.c: added revised version from 9th printing
Packit 67cb25
Packit 67cb25
2007-01-04  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* default.c (gsl_rng_env_setup): send newline to stderr not stdout
Packit 67cb25
Packit 67cb25
2006-04-13  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* default.c (gsl_rng_env_setup): print a newline after list of
Packit 67cb25
	generators in error message
Packit 67cb25
Packit 67cb25
2006-03-16  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* test.c (main): added taus2 test
Packit 67cb25
Packit 67cb25
2006-02-19  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* rng.c: added note about why range=max-min not max-min+1
Packit 67cb25
Packit 67cb25
2005-12-16  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* rng.c (gsl_rng_uniform_int): catch the case n = 0 and return an
Packit 67cb25
	error
Packit 67cb25
Packit 67cb25
2003-07-23  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* file.c: added fwrite/fread functions
Packit 67cb25
Packit 67cb25
2003-06-12  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* Makefile.am: removed benchmark programs from default build
Packit 67cb25
Packit 67cb25
2003-06-02  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* waterman14.c: increased RAND_MIN to 1
Packit 67cb25
Packit 67cb25
	* lecuyer21.c: corrections to RAND_MIN, RAND_MAX, floating point
Packit 67cb25
	denominator and seeding modulus
Packit 67cb25
Packit 67cb25
	* fishman20.c (ran_get): use schrage multiplication to avoid
Packit 67cb25
	overflow
Packit 67cb25
Packit 67cb25
	* coveyou.c: corrected value of RAND_MIN to 1 and RAND_MAX to 2^32-1
Packit 67cb25
Packit 67cb25
	* borosh13.c: increased RAND_MIN to 1
Packit 67cb25
Packit 67cb25
	* knuthran2.c (ran_get): use schrage multiplication to avoid
Packit 67cb25
	overflow in intermediate results
Packit 67cb25
Packit 67cb25
	* fishman2x.c (ran_get): use schrage multiplication to avoid
Packit 67cb25
	overflow in intermediate results
Packit 67cb25
Packit 67cb25
	* fishman18.c (ran_get): use schrage multiplication to avoid
Packit 67cb25
	overflow in intermediate results
Packit 67cb25
Packit 67cb25
	* schrage.c (schrage): utility functions for multiplication of
Packit 67cb25
	long integers
Packit 67cb25
Packit 67cb25
	* test.c (main): updated incorrect test values for
Packit 67cb25
	gsl_rng_fishman18 gsl_rng_fishman2x gsl_rng_knuthran2
Packit 67cb25
Packit 67cb25
Mon Nov 25 19:27:10 2002  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* taus.c (taus2_set): fixed bug in seeding for s3 (test should be
Packit 67cb25
 	for s3<16, not s3<8)
Packit 67cb25
Packit 67cb25
Sun Nov  3 14:40:43 2002  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* taus.c (taus2_set): fixed bug in seeding for s2 < 8
Packit 67cb25
Packit 67cb25
Mon Jun 17 21:04:10 2002  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* mt.c (mt_set): ensure state counter mti is initialised by
Packit 67cb25
 	seeding routine
Packit 67cb25
Packit 67cb25
Wed May 29 21:52:11 2002  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* randu.c: removed unused variable m
Packit 67cb25
Packit 67cb25
Tue May  7 22:34:52 2002  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* mt.c (mt_1999_set): updated seeding procedure according to new
Packit 67cb25
 	release of MT19937 from the original authors.
Packit 67cb25
Packit 67cb25
Fri Apr 26 21:17:05 2002  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* taus.c (taus2_set): added alternate seeding procedure as
Packit 67cb25
 	described in erratum to P.L'Ecuyer's paper.
Packit 67cb25
Packit 67cb25
Wed Apr 17 19:37:49 2002  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* test.c (main): added missing test for gsl_rng_mt19937_1998
Packit 67cb25
Packit 67cb25
	* gsl_rng.h: added missing declaration for gsl_rng_mt19937_1998
Packit 67cb25
Packit 67cb25
Sun Dec  2 15:45:24 2001  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* Added new generators borosh13, coveyou, fishman18, fishman20,
Packit 67cb25
 	fishman2x, knuthran, knuthran2, lecuyer21, waterman14 from Knuth's
Packit 67cb25
 	Seminumerical Algorithms 3rd Ed.  Implemented by Carlo Perassi.
Packit 67cb25
Packit 67cb25
	* gfsr4.c (gfsr4_get_double): increased divisor for double to
Packit 67cb25
 	2^32, avoids generating exact result of 1.0 as specified in the
Packit 67cb25
 	documentation
Packit 67cb25
Packit 67cb25
Mon Sep  3 10:32:01 2001  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* mt.c (mt_1998_set): renamed macro to avoid duplicate definition
Packit 67cb25
Packit 67cb25
Fri Aug 31 17:49:37 2001  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* mt.c (mt_1998_set): added the original (buggy) MT19937 seeding
Packit 67cb25
 	routine as mt19937_1998 for compatibility.
Packit 67cb25
Packit 67cb25
Wed May  2 15:35:38 2001  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* ran1.c (ran1_get_double): use float constants for comparison
Packit 67cb25
	for compatibility with original Numerical Recipes routines
Packit 67cb25
Packit 67cb25
	* ran2.c (ran2_get_double): ditto
Packit 67cb25
	
Packit 67cb25
Fri Apr 27 18:47:07 2001  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* types.c (gsl_rng_types_setup): added void to make prototype
Packit 67cb25
 	valid in ansi c
Packit 67cb25
Packit 67cb25
Mon Apr 16 20:03:07 2001  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* default.c (gsl_rng_env_setup): removed spurious argument to
Packit 67cb25
 	fprintf
Packit 67cb25
Packit 67cb25
Tue Jan 23 13:24:26 2001  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* types.c (gsl_rng_types_setup): provide a function that returns a
Packit 67cb25
 	list of all the generator types
Packit 67cb25
Packit 67cb25
	* default.c (gsl_rng_env_setup): get the list of generators from a
Packit 67cb25
 	function rather than having a list in the code itself.  Display a
Packit 67cb25
 	list of the valid generators if the user provides an incorrect one.
Packit 67cb25
Packit 67cb25
Fri Dec  8 20:30:58 2000  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* ranlxs.c: renamed internal function ranlxs_set_impl to
Packit 67cb25
 	ranlxs_set
Packit 67cb25
	
Packit 67cb25
	* ranlxd.c: renamed internal function ranlxd_set_impl to
Packit 67cb25
 	ranlxd_set
Packit 67cb25
Packit 67cb25
	* ranlux.c: renamed internal function ranlux_set_impl to
Packit 67cb25
 	ranlux_set
Packit 67cb25
Packit 67cb25
	* random.c: renamed internal function random_get_impl function to
Packit 67cb25
 	random_get
Packit 67cb25
Packit 67cb25
Sat Jul 29 14:29:54 2000  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* test.c (main): updated test value for MT19937 for new seeding
Packit 67cb25
 	procedure
Packit 67cb25
Packit 67cb25
	* mt.c: The seeding procedure has been updated to match the 10/99
Packit 67cb25
 	release of MT19937.
Packit 67cb25
Packit 67cb25
Wed Mar  8 16:04:34 2000  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* rng.c (gsl_rng_memcpy): generators must now be of the same type
Packit 67cb25
 	for a copy from one to the other to work.
Packit 67cb25
Packit 67cb25
Thu Feb 24 16:41:48 2000  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* ran3.c (ran3_set): initialize unused zeroth element of state to
Packit 67cb25
 	zero for consistency.
Packit 67cb25
Packit 67cb25
Mon Feb 14 13:28:26 2000  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* made all internal functions static
Packit 67cb25
Packit 67cb25
Mon Dec  6 16:21:05 1999  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* test.c (main): rewrote the tests to loop over all the generators
Packit 67cb25
Packit 67cb25
Wed Aug 11 20:57:10 1999  Brian Gough  <bjg@network-theory.co.uk>
Packit 67cb25
Packit 67cb25
	* ranlxd.c, ranlxs.c: added ranlxd and ranlxs, second generation
Packit 67cb25
 	RANLUX generators from Martin Luescher.
Packit 67cb25
Packit 67cb25
Mon Mar  1 21:12:28 1999  Brian Gough  <bjg@netsci.freeserve.co.uk>
Packit 67cb25
Packit 67cb25
	* test.c (rng_parallel_state_test): added some extra tests to fill
Packit 67cb25
 	a few holes in the net
Packit 67cb25
Packit 67cb25
	* gsl_rng.h: moved static class information (max, min, etc) out of
Packit 67cb25
 	the instance data. Originally I avoided this because of the
Packit 67cb25
 	overhead of the extra indirection (r->type->get vs r->get) for
Packit 67cb25
 	every get function call, but that turns out to be only about 10%
Packit 67cb25
 	at worst so it's worth the slight speed cost to make the code
Packit 67cb25
 	safer.
Packit 67cb25
Packit 67cb25
Tue Nov 17 17:09:31 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* gfsr4.c: added #include <config.h> which was missing
Packit 67cb25
Packit 67cb25
1998-11-04    <bjg@ancho.lanl.gov>
Packit 67cb25
Packit 67cb25
	* ranf.c: fix portability problems on alpha, by ensuring that
Packit 67cb25
	shorts are correctly promoted to longs at the appropriate points
Packit 67cb25
Packit 67cb25
	* rand48.c: fix portability problems by ensuring that shorts are
Packit 67cb25
	correctly promoted to longs at the appropriate points
Packit 67cb25
Packit 67cb25
	* rng-dump.c (main): write out file correctly by using chars
Packit 67cb25
	instead of unsigned long ints, since these can vary in size on
Packit 67cb25
	different architectures
Packit 67cb25
Packit 67cb25
Wed Oct 28 15:02:22 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* rng.c: added #include <string.h> to get prototype for memcpy
Packit 67cb25
Packit 67cb25
Mon Sep 14 20:53:09 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* default.c (gsl_rng_env_setup): added gfsr4
Packit 67cb25
Packit 67cb25
1998-09-10  James Theiler  <jt@lanl.gov>
Packit 67cb25
Packit 67cb25
	* gfsr4.c: added new random number generator
Packit 67cb25
Packit 67cb25
	* Makefile.am: added gfsr4.c to SOURCES list
Packit 67cb25
Packit 67cb25
	* gsl_rng.h: added gfsr4
Packit 67cb25
Packit 67cb25
	* test.c: added gfsr4
Packit 67cb25
Packit 67cb25
	* benchmark.c: added gfsr4
Packit 67cb25
Packit 67cb25
Mon Aug 10 22:12:13 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* rng-dump.c: program to write out 3 million random numbers,
Packit 67cb25
 	suitable for testing with DIEHARD.
Packit 67cb25
Packit 67cb25
Tue Aug  4 19:51:57 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* default.c (gsl_rng_env_setup): send default/enviroment output to
Packit 67cb25
 	stderr
Packit 67cb25
Packit 67cb25
Mon Aug  3 18:25:52 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* mt.c: made constants static since they shouldn't be exported,
Packit 67cb25
 	added some speed improvements from Cokus' code (not all of them
Packit 67cb25
 	since they seemed to use more registers than available on the
Packit 67cb25
 	pentium).
Packit 67cb25
Packit 67cb25
Thu Jul  9 13:56:20 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* slatec.c: renamed cmlib.c to slatec.c
Packit 67cb25
Packit 67cb25
	* transputer.c: renamed tds.c to transputer.c so the name is a bit
Packit 67cb25
 	more obvious
Packit 67cb25
Packit 67cb25
	* random.c: renamed random0 functions to random8, since obviously
Packit 67cb25
 	we can't have 0 bytes of state
Packit 67cb25
	
Packit 67cb25
	* default.c (gsl_rng_env_setup): made gsl_rng_mt19937 the default
Packit 67cb25
 	generator
Packit 67cb25
Packit 67cb25
Wed Jul  8 17:06:54 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* added random() functions. There are three(!) versions: the
Packit 67cb25
 	original BSD, linux libc5 (had a typo in the multiplier, but got
Packit 67cb25
 	installed on millions of machines so is now a defacto standard)
Packit 67cb25
 	and GNU glibc2 (fixes the typo and has an improved seeding
Packit 67cb25
 	procedure)
Packit 67cb25
Packit 67cb25
Sun Jul  5 15:59:29 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* rand.c: renamed rand.c to cmlib.c and bsdrand.c to rand.c.
Packit 67cb25
Packit 67cb25
	* ranf.c: added CRAY RANF, 48 bit generator
Packit 67cb25
Packit 67cb25
	* rand48.c: added the standard unix rand48()
Packit 67cb25
Packit 67cb25
	* changed all the routines to allow an additional callback for
Packit 67cb25
 	returning doubles. Now we can implement numerical recipes with its
Packit 67cb25
 	non-standard checks on the floating point results and also access
Packit 67cb25
 	the full state for getting 48-bit doubles out of rand48.
Packit 67cb25
	
Packit 67cb25
Sat Jul  4 11:14:49 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* ranmar.c: added the RANMAR generator
Packit 67cb25
Packit 67cb25
	* tds.c: added the INMOS Transputer RNG
Packit 67cb25
Packit 67cb25
	* test.c (rng_min_test): added a test for RAND_MIN, to make sure
Packit 67cb25
 	none of the generators go below it. Statistically the test is not
Packit 67cb25
 	much good since it's very unlikely that an off-by-one error would
Packit 67cb25
 	show up unless we ran the test for > 4 billion numbers. However,
Packit 67cb25
 	the test might detect a gross error like a typo in RAND_MIN or a
Packit 67cb25
 	degeneracy 0,0,0,... for a multiplicative generator.
Packit 67cb25
Packit 67cb25
	* uni.c: fixed RAND_MAX here too
Packit 67cb25
Packit 67cb25
	* uni32.c: fixed RAND_MAX to m1-1, not m1 (since it's modulo m1 so
Packit 67cb25
 	m1 can't occur, only m1-1)
Packit 67cb25
Packit 67cb25
Fri Jul  3 15:55:34 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* rng.c (gsl_rng_uniform_gt0_lt1): added a function which returns
Packit 67cb25
 	numbers in the range (0,1), i.e. excluding 0.0 and 1.0
Packit 67cb25
Packit 67cb25
	* renamed bad_randu.c to randu.c
Packit 67cb25
Packit 67cb25
	* renamed bad_rand.c to bsdrand.c
Packit 67cb25
Packit 67cb25
Mon Jun 29 18:11:08 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* added implementations of the numerical recipes algorithms ran0,
Packit 67cb25
 	ran1, ran2, ran3
Packit 67cb25
	
Packit 67cb25
Sun Jun 28 11:51:48 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* gsl_rng.h: added gsl_rng_uniform_pos which guarantees positive
Packit 67cb25
 	numbers, (0,1]
Packit 67cb25
Packit 67cb25
	* added a RAND_MIN entry to the gsl_rng/gsl_rng_type structs
Packit 67cb25
Packit 67cb25
	* gsl_rng.h: renamed gsl_rng_get_uni to gsl_rng_uniform
Packit 67cb25
Packit 67cb25
Wed Jun 24 12:10:23 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* gsl_rng.h: added inline versions of gsl_rng_get and
Packit 67cb25
 	gsl_rng_get_uni
Packit 67cb25
Packit 67cb25
	* benchmark.c: added a simple benchmark program to measure rng's
Packit 67cb25
 	per second
Packit 67cb25
Packit 67cb25
	* test.c (N2): reduced the number of tests from 1 million to 100k
Packit 67cb25
 	to speed things up a bit
Packit 67cb25
Packit 67cb25
	* changed the generic seeding algorithm to s -> (69069*s) &
Packit 67cb25
 	0xFFFFFFFF which covers all 32 bits.
Packit 67cb25
Packit 67cb25
Sun Jun 21 23:24:36 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* added the MT19937 and TT880 mersenne prime generators
Packit 67cb25
Packit 67cb25
Sat Jun 20 13:58:40 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* ensured that 32 bit quantities are defined as 'long', as
Packit 67cb25
 	required by ANSI. On a 16 bit platform 'int' is usually just 16
Packit 67cb25
 	bits.
Packit 67cb25
	
Packit 67cb25
	* ranlux.c: added the RANLUX generator
Packit 67cb25
Packit 67cb25
Fri Jun 19 11:12:06 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* removed the gsl- prefix from generator name strings
Packit 67cb25
Packit 67cb25
Thu Jun 18 12:17:16 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* test.c: added a 10000 iteration check for cmrg
Packit 67cb25
Packit 67cb25
	* got rid of init_state values. It's simpler to generate them
Packit 67cb25
 	directly from the seed, the cost of creating an rng is not usually
Packit 67cb25
 	a big deal.
Packit 67cb25
	
Packit 67cb25
	* rng.c: eliminated the gsl_rng_internal struct since it was not
Packit 67cb25
 	really necessary
Packit 67cb25
Packit 67cb25
Wed Jun 17 17:31:27 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* minstd.c: added Park and Millers MINSTD generator
Packit 67cb25
Packit 67cb25
Thu Jun 11 18:08:40 1998  Brian Gough  <bjg@vvv.lanl.gov>
Packit 67cb25
Packit 67cb25
	* this will be an alternate, thread-safe interface to the random
Packit 67cb25
 	number generators.
Packit 67cb25