2012-09-10  Rhys Ulerich  <rhys.ulerich@gmail.com>

	* nbinomial.c Add include for gsl_sys.h to fix MSVC.
	Thanks to Brian Gladman for the suggestion.

2011-06-05  Brian Gough  <bjg@network-theory.co.uk>

	* nbinomial.c (gsl_ran_negative_binomial_pdf): avoid overflow in
	exp

2010-12-14  Brian Gough  <bjg@gnu.org>

	* gamma.c (gamma_frac): avoid potential division by zero, handle
	a=0 as a special case

2010-11-20  Brian Gough  <bjg@gnu.org>

	* chisq.c (gsl_ran_chisq_pdf): handle x=0 as special case
	(x=0, nu=2 is also special)

2010-10-12  Brian Gough  <bjg@gnu.org>

	* test.c (test_binomial_max): added a test case for n larger than
	maxint

2010-07-21  Brian Gough  <bjg@gnu.org>

	* beta.c (gsl_ran_beta_pdf): avoid overflow for x==0 || x==1 and
	a>1,b>1

2010-03-01  Brian Gough  <bjg@network-theory.co.uk>

	* test.c (testPDF): extend the test run if a sample fails on the
	first pass.

2010-02-24  Brian Gough  <bjg@network-theory.co.uk>

	* fdist.c (gsl_ran_fdist_pdf): compute log of pdf to avoid
	overflow/underflow.

2009-07-10  Brian Gough  <bjg@network-theory.co.uk>

	* exponential.c (gsl_ran_exponential): use log(1-u) to include 0
	in the range of possible outputs

2009-07-09  Brian Gough  <bjg@network-theory.co.uk>

	* discrete.c (gsl_ran_discrete_free): handle NULL argument in free

2009-05-16  Brian Gough  <bjg@network-theory.co.uk>

	* discrete.c (push_stack): replace abort() with an error return
	value
	(pop_stack): replace abort() with GSL_ERROR
	(gsl_ran_discrete_preproc): use g->A as a temporary array to store
	the results of the test E[k]<mean to avoid discrepancies due to
	excess precision

2008-11-30  Brian Gough  <bjg@network-theory.co.uk>

	* test.c (test_gamma_vlarge): added test for a >= UINT_MAX.

	* gamma.c (gsl_ran_gamma_knuth): handle the case a >= UINT_MAX.

2008-07-03  Brian Gough  <bjg@hp2.network-theory.co.uk>

	* Makefile.am (INCLUDES): use top_srcdir instead of top_builddir

2008-02-09  Brian Gough  <bjg@network-theory.co.uk>

	* gausszig.c (gsl_ran_gaussian_ziggurat): handle different
	generator ranges explicitly

2007-09-20  Brian Gough  <bjg@network-theory.co.uk>

	* multinomial.c (gsl_ran_multinomial_lnpdf):  Handle case where
	n[k]==0 and p[k]==0 

2007-08-20  Brian Gough  <bjg@network-theory.co.uk>

	* test.c (integrate): perform the integration of the pdf with the
	gsl_integration functions for accuracy (needed for dirichlet
	distribution)

	* dirichlet.c (ran_dirichlet_small): handle underflow for small
	alpha[] values

2007-02-20  Brian Gough  <bjg@network-theory.co.uk>

	* gamma.c (gsl_ran_gamma): avoid an unnecessary function call to
	gsl_ran_gamma_mt, since that maps back to gsl_ran_gamma now

2007-02-14  Brian Gough  <bjg@network-theory.co.uk>

	* test.c (testPDF): reduce the test sensitivity to avoid failures
	caused by weaknesses in the underlying rng

2007-01-26  Brian Gough  <bjg@network-theory.co.uk>

	* gamma.c (gsl_ran_gamma): the Marsaglia Tsang method is now the
	default
	(gsl_ran_gamma_knuth): new function name, preserving the original
	gsl_ran_gamma

2006-08-30  Brian Gough  <bjg@network-theory.co.uk>

	* discrete.c (gsl_ran_discrete_preproc): use GSL_ENOMEM instead of
	ENOMEM

2006-04-18  Brian Gough  <bjg@network-theory.co.uk>

	* gausszig.c (gsl_ran_gaussian_ziggurat): fix prototype const

2006-03-26  Brian Gough  <bjg@network-theory.co.uk>

	* multinomial.c (gsl_ran_multinomial_lnpdf): use gsl_sf_lnfact
	instead of gsl_sf_lngamma for an integer argument

2006-03-17  Brian Gough  <bjg@network-theory.co.uk>

	* binomial_tpe.c (gsl_ran_binomial): cast return values to
	unsigned

2006-02-27  Brian Gough  <bjg@network-theory.co.uk>

	* beta.c (gsl_ran_beta_pdf): work with logs avoid
	underflow/overflow

2006-02-19  Brian Gough  <bjg@network-theory.co.uk>

	* gauss.c (gsl_ran_gaussian): reject case where x=-1 || y=-1
	for true symmetry
	(gsl_ran_gaussian_ratio_method): add Leva bounds

	* exppow.c (gsl_ran_exppow): added faster rejection methods

2006-02-01  Brian Gough  <bjg@network-theory.co.uk>

	* gausszig.c: added ziggurat gaussian (Jochen Voss)

2006-01-20  Brian Gough  <bjg@network-theory.co.uk>

	* binomial.c (gsl_ran_binomial_pdf): handle the cases p=0 and p=1
	(gsl_ran_binomial_pdf): use log1p to calculate more accurately
	near k=0,p=0

2005-08-31  Brian Gough  <bjg@network-theory.co.uk>

	* test.c (main): free allocated memory before exit

2005-08-22  Brian Gough  <bjg@network-theory.co.uk>

	* binomial_tpe.c (gsl_ran_binomial): switch to the TPE algorithm
	as the default

	* binomial.c (gsl_ran_binomial_knuth): rename the original
	binomial function to ..._knuth

2004-05-30  Brian Gough  <bjg@network-theory.co.uk>

	* landau.c (gsl_ran_landau): fix potential array bounds overflow
	by extending array.

2004-04-22  Brian Gough  <bjg@network-theory.co.uk>

	* sphere.c (gsl_ran_dir_3d): removed unnecessary check for s==0.0

2003-07-25  Brian Gough  <bjg@network-theory.co.uk>

	* dirichlet.c: include gsl_sf_gamma.h instead of gsl_sf.h

2003-07-24  Brian Gough  <bjg@network-theory.co.uk>

	* binomial_tpe.c (gsl_ran_binomial_tpe): convert to double to
	avoid possible signed/unsigned problems in comparison (ix > n)
	(Stirling): removed spurious trailing ;

2003-05-14  Brian Gough  <bjg@network-theory.co.uk>

	* binomial_tpe.c: fast binomial algorithm using TPE method

	* test.c: added the tests for the fast Binomial TPE routine

2003-02-09  Brian Gough  <bjg@network-theory.co.uk>

	* discrete.c (gsl_ran_discrete_preproc): fixed bug reported by
	ahoward <ahoward@pollux.usc.edu>

2003-01-25  Brian Gough  <brian.gough@network-theory.co.uk>

	* chisq.c: corrected comments

2002-12-10  Brian Gough  <bjg@network-theory.co.uk>

	* multinomial.c (gsl_ran_multinomial): added multinomial
	distribution

	* dirichlet.c (gsl_ran_dirichlet_lnpdf): added logpdf function for
	accuracy

Tue Aug 27 19:08:33 2002  Brian Gough  <bjg@network-theory.co.uk>

	* dirichlet.c: added dirichlet distribution

Sat Aug 18 22:21:07 2001  Brian Gough  <bjg@network-theory.co.uk>

	* gsl-randist.c: moved to top-level directory

Wed Jul 18 12:57:55 2001  Brian Gough  <bjg@network-theory.co.uk>

	* landau.c: added Landau distribution from Dave Morrison

Sat Jun 23 12:30:38 2001  Brian Gough  <bjg@network-theory.co.uk>

	* gausstail.c (gsl_ran_gaussian_tail): allow negative values for
 	the tail cutoff parameter.

Mon May 21 12:17:07 2001  Brian Gough  <bjg@network-theory.co.uk>

	* shuffle.c (gsl_ran_choose): removed void * return value
	(gsl_ran_sample): removed void * return value

Tue Apr 24 17:10:47 2001  Brian Gough  <bjg@network-theory.co.uk>

	* bernoulli.c (gsl_ran_bernoulli_pdf): removed unnecessary
 	reference to gsl_sf.h

Mon Apr 23 10:25:44 2001  Brian Gough  <bjg@network-theory.co.uk>

	* changed calls to old specfunc _impl functions to use new error
 	handling conventions

Tue Apr 17 19:57:59 2001  Brian Gough  <bjg@network-theory.co.uk>

	* weibull.c (gsl_ran_weibull): changed parameter mu to a, since it
 	is not the mean
	(gsl_ran_weibull_pdf): changed parameter mu to a, since it
 	is not the mean

	* logistic.c (gsl_ran_logistic): changed parameter mu to a, since it
 	is not the mean
	(gsl_ran_logistic_pdf): changed parameter mu to a, since it
 	is not the mean

	* laplace.c (gsl_ran_laplace): changed parameter mu to a, since it
 	is not the mean
	(gsl_ran_laplace_pdf): changed parameter mu to a, since it
 	is not the mean

	* exppow.c (gsl_ran_exppow): changed parameter mu to a, since it
 	is not the mean
	(gsl_ran_exppow_pdf): changed parameter mu to a, since it
 	is not the mean

	* cauchy.c (gsl_ran_cauchy): changed parameter mu to a, since it
 	is not the mean
	(gsl_ran_cauchy_pdf): changed parameter mu to a, since it
 	is not the mean

Tue Feb 20 11:14:00 2001  Brian Gough  <bjg@network-theory.co.uk>

	* levy.c: added the skew symmetric routine from Keith Briggs,
 	changed the definition of the original function to match and not
 	use mu as a scale parameter.

2000-10-17  Brian Gough  <bjg@inweb.aethos.co.uk>

	* shuffle.c (gsl_ran_shuffle): replaced calls of the form
	N*gsl_rng_uniform(r) with the integer form gsl_rng_uniform(r, N)

Thu Sep 21 18:41:53 2000  Brian Gough  <bjg@network-theory.co.uk>

	* pareto.c (gsl_ran_pareto): made arguments and documentation
 	consistent

Wed May 10 14:55:43 2000  Brian Gough  <bjg@network-theory.co.uk>

	* gsl-randist.c (main): fixed bug for lognormal (it was calling
 	exppow)  Tadhg O'Meara <tadhg@net-cs.ucd.ie>

	* gsl-randist.c (main): print out all the dimensions for dir-nd,
 	not just the first

Tue Apr 25 20:45:14 2000  Brian Gough  <bjg@network-theory.co.uk>

	* shuffle.c (gsl_ran_sample): lifted the restriction that sampling
 	with replacement could only be done less than n times for n objects.

Tue Mar 14 21:31:46 2000  Brian Gough  <bjg@network-theory.co.uk>

	* logistic.c (gsl_ran_logistic_pdf): prevent overflow in
 	computation of pdf for x < 0

Thu Oct  7 12:55:40 1999  Brian Gough  <bjg@network-theory.co.uk>

	* discrete.c (gsl_ran_discrete_free): removed unreachable code
 	"return 0";

Fri Aug  6 16:02:08 1999  Brian Gough  <bjg@network-theory.co.uk>

	* sphere.c (gsl_ran_dir_nd): number of dimensions is now unsigned
 	(size_t)

	* logarithmic.c (gsl_ran_logarithmic_pdf): removed warning about
 	passing arg 2 of `pow' as floating rather than integer due to
 	prototype

Sun Aug  1 20:29:43 1999  Brian Gough  <bjg@network-theory.co.uk>

	* discrete.c: converted to GSL_ERROR macros for error handling

Tue Jul 27 14:14:38 1999  Brian Gough  <bjg@network-theory.co.uk>

	* sphere.c (gsl_ran_dir_3d): use the Knop method only -- it is the
 	best.
	(gsl_ran_dir_2d_trig_method): split out the trig method as an
 	alternative for those platforms where it is faster

	* bigauss.c: split out the bivariate gaussian into its own source
	file

1999-06-30  Mark Galassi  <rosalia@lanl.gov>

	* discrete.c: (thanks to Frederick W. Wheeler
	<wheeler@cipr.rpi.edu>) changed the type stack_t to gsl_stack_t to
	avoid a conflict on HPUX.

Sun Feb 28 20:41:18 1999  Brian Gough  <bjg@netsci.freeserve.co.uk>

	* gsl-randist.c (main): change cfree() to free(), which is
 	standard.

	* discrete.c (gsl_ran_discrete_preproc): removed warning, pTotal
 	is now initialized to zero.

1999-01-31  James Theiler <jt@lanl.gov>
	* gauss.c added a new function gsl_ran_ugaussian_tail() which
	provides random numbers out on the tail of a gaussian.  I also
	added (but then #ifdef'd out) a second implementation of ordinary
	gaussian numbers.  This second implementation passes the tests
	okay, but it is a touch slower on my home Pentium.
	* gsl_randist.h added prototypes
	* test.c added tests for new gaussian tail function; also altered
	testMoment's ugaussian range (-1,1) value from .68 to a more
	accurate value.
	* ../doc/random.texi further updated 
	
1999-01-30  James Theiler <jt@lanl.gov>
	* discrete.c added implementation of Walker's algorithm for
	rapidly choosing a random integer k where the k's are distributed
	by a user-supplied array of probabilities P[k].  This includes
	functions gsl_ran_discrete(), gsl_ran_discrete_preproc(), 
	gsl_ran_discrete_free(), and gsl_ran_discrete_pdf().
	* gsl_randist.h added definition of structure gsl_ran_discrete_t,
	also prototypes of new functions defined in discrete.c
	* test.c added tests for gsl_ran_discrete(), also
	* test.c made some essentially cosmetic changes:
	1/ redefined FUNC and FUNC2 macros so now output looks like 
	"test gsl_ran_poisson" instead of "gsl_ran_test_poisson"
	2/ changed names of toplevel tests, eg test_moments->testMoments, 
	test_pdf->testPDF, etc, to distinguish them from all the individual 
	functions test_poisson, test_binomial, etc.
	hope that's ok.
	* ../doc/random.texi updated to reflect the new discrete functions,
	as well as the new implementations of the sphere.c routines.

1999-01-28  James Theiler <jt@lanl.gov>
	* sphere.c modified gsl_ran_dir_3d, to speed it up about 2x
	also modified gsl_ran_dir_2d, providing alternative algorithms 
	(#ifdef'd appropriately).  which is faster is machine dependent.
	also gsl_ran_dir_nd for n-dimensional direction, using
	gaussian random variables, normalized to the unit sphere
	also added ref's to Knuth and others describing the algorithms	
	* gsl_randist.h added gsl_ran_dir_nd() prototype
	* gsl-randist.c added dir-nd option

Tue Dec 15 23:08:57 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* updated all the functions depending on gsl_sf to use the new
 	special function interface, based on gsl_sf_result

Tue Nov 17 17:02:54 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* added #include <config.h> to all top-level source files

1998-11-06    <bjg@ancho.lanl.gov>

	* test.c: ensured that M_PI is available by #include <gsl_math.h>

Wed Sep 16 14:44:08 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* rayleigh.c: added rayleigh tail distribution

Sat Sep 12 13:03:19 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* rayleigh.c: added rayleigh distribution

Mon Aug 31                James Theiler <jt@lanl.gov>

	* Makefile.am: added ../utils/libutils.a to some LDADD's

Mon Aug 17 14:31:55 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* gsl_randist.h: renamed discrete probability distribution
 	parameters to use consistent k,n notation (k = sample, n = total,
 	e.g. p(k) = function(k,n) )

Wed Aug 12 14:02:31 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* lognormal.c: added zeta and sigma (location and scale parameters)

	* logarithmic.c (gsl_ran_logarithmic): added logarithmic distribution

Mon Aug 10 14:41:15 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* gsl-randist.c: added random direction functions

	* gamma.c: added the scale paramter for  the gamma distribution

Thu Aug  6 12:19:59 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* gauss.c (gsl_ran_bivariate_gaussian): added bivariate with
 	correlations.

	* hyperg.c: renamed variables, fixed bug

Wed Aug  5 11:21:45 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* gsl-dist.c: renamed gsl-dist.c to gsl-randist.c, for
 	consistency

Tue Aug  4 12:29:17 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* gsl-dist.c: a program for generating samples from the 
 	distributions

	* levy.c (gsl_ran_levy): take care of special case, a=1

	* logistic.c: allow scale parameter, mu

	* weibull.c: allow scale parameter, mu

	* pareto.c: allow scale parameter, mu

	* exppow.c: handle the case a<1 using a transformation of the
 	gamma distribution.

	* gamma.c (gsl_ran_gamma_int): removed the check for
 	GSL_LOGINIFINITY since underflow can't occur for 32-bit random
 	numbers in double precision.

Mon Aug  3 13:09:39 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* test.c: added tests for shuffle and choose

	* pascal.c: added the Pascal distribution

	* hyperg.c: added the hypergeometric distribution

Fri Jul 31 12:52:12 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* gsl_randist.h: renamed gsl_ran_two_sided_exponential to
 	gsl_ran_laplace

1998-07-26  Mark Galassi  <rosalia@cygnus.com>

	* Makefile.am (INCLUDES): added -I$(top_srcdir), since gsl_math.h
	is needed, and that is in the top level source directory.  This is
	necessary for using a separate build directory.

Tue Jul 14 12:39:30 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* nbinomial.c: added Negative Binomial distribution

	* bernoulli.c: added Bernoulli distribution

	* poisson.c (gsl_ran_poisson): fixed a serious bug in the unrolled
 	recursion which led to an incorrect result being returned for the
 	large t case. This shows the importance of tests that cover all
 	possible branches!!!

	* erlang.c (gsl_ran_erlang_pdf): renamed mu to a for consistency

Thu Jul  2 15:47:05 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* added some extra distributions, lognormal.c gaussian.c
 	logistic.c pareto.c geometric.c erlang.c chisq.c weibull.c,
	although they aren't finished yet

Wed Jul  1 11:56:06 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* replace do { u = gsl_rng_uniform(r) } while (u == 0) by a direct
 	call to gsl_rng_uniform_pos.

Sun Jun 28 14:21:13 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* converted everything to work with rng style generators

Sun Apr 19 19:06:59 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* made the 'gsl-dist' programs just output a single column of
 	their random numbers (previously some of the programs printed both
 	the uniform variate and the transformed number)

	* got rid of the 'bench-' programs. We will have a full testing
 	suite soon.

	* renamed the installed programs from 'dist' to 'gsl-dist' so that
 	they don't overwrite anything, e.g. it's possible the user might
 	have other programs called 'gauss' or 'gamma' installed in
 	/usr/local

Sat Mar 21 16:09:16 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* laplace.c (gsl_ran_laplace): added a Laplace distribution
	(two-sided exponential)
	
	* lorentz.c (gsl_ran_lorentzian): added a Lorentz distribution
	
1998-01-30  Mark Galassi  <rosalia@cygnus.com>

	* Makefile.am (lib_LIBRARIES): now it creates libgslrandist.a so
	that we have gaussian and poisson distributions.

