2012-09-10 Rhys Ulerich * nbinomial.c Add include for gsl_sys.h to fix MSVC. Thanks to Brian Gladman for the suggestion. 2011-06-05 Brian Gough * nbinomial.c (gsl_ran_negative_binomial_pdf): avoid overflow in exp 2010-12-14 Brian Gough * gamma.c (gamma_frac): avoid potential division by zero, handle a=0 as a special case 2010-11-20 Brian Gough * chisq.c (gsl_ran_chisq_pdf): handle x=0 as special case (x=0, nu=2 is also special) 2010-10-12 Brian Gough * test.c (test_binomial_max): added a test case for n larger than maxint 2010-07-21 Brian Gough * beta.c (gsl_ran_beta_pdf): avoid overflow for x==0 || x==1 and a>1,b>1 2010-03-01 Brian Gough * test.c (testPDF): extend the test run if a sample fails on the first pass. 2010-02-24 Brian Gough * fdist.c (gsl_ran_fdist_pdf): compute log of pdf to avoid overflow/underflow. 2009-07-10 Brian Gough * exponential.c (gsl_ran_exponential): use log(1-u) to include 0 in the range of possible outputs 2009-07-09 Brian Gough * discrete.c (gsl_ran_discrete_free): handle NULL argument in free 2009-05-16 Brian Gough * 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] * 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 * Makefile.am (INCLUDES): use top_srcdir instead of top_builddir 2008-02-09 Brian Gough * gausszig.c (gsl_ran_gaussian_ziggurat): handle different generator ranges explicitly 2007-09-20 Brian Gough * multinomial.c (gsl_ran_multinomial_lnpdf): Handle case where n[k]==0 and p[k]==0 2007-08-20 Brian Gough * 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 * 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 * test.c (testPDF): reduce the test sensitivity to avoid failures caused by weaknesses in the underlying rng 2007-01-26 Brian Gough * 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 * discrete.c (gsl_ran_discrete_preproc): use GSL_ENOMEM instead of ENOMEM 2006-04-18 Brian Gough * gausszig.c (gsl_ran_gaussian_ziggurat): fix prototype const 2006-03-26 Brian Gough * multinomial.c (gsl_ran_multinomial_lnpdf): use gsl_sf_lnfact instead of gsl_sf_lngamma for an integer argument 2006-03-17 Brian Gough * binomial_tpe.c (gsl_ran_binomial): cast return values to unsigned 2006-02-27 Brian Gough * beta.c (gsl_ran_beta_pdf): work with logs avoid underflow/overflow 2006-02-19 Brian Gough * 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 * gausszig.c: added ziggurat gaussian (Jochen Voss) 2006-01-20 Brian Gough * 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 * test.c (main): free allocated memory before exit 2005-08-22 Brian Gough * 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 * landau.c (gsl_ran_landau): fix potential array bounds overflow by extending array. 2004-04-22 Brian Gough * sphere.c (gsl_ran_dir_3d): removed unnecessary check for s==0.0 2003-07-25 Brian Gough * dirichlet.c: include gsl_sf_gamma.h instead of gsl_sf.h 2003-07-24 Brian Gough * 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 * 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 * discrete.c (gsl_ran_discrete_preproc): fixed bug reported by ahoward 2003-01-25 Brian Gough * chisq.c: corrected comments 2002-12-10 Brian Gough * 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 * dirichlet.c: added dirichlet distribution Sat Aug 18 22:21:07 2001 Brian Gough * gsl-randist.c: moved to top-level directory Wed Jul 18 12:57:55 2001 Brian Gough * landau.c: added Landau distribution from Dave Morrison Sat Jun 23 12:30:38 2001 Brian Gough * gausstail.c (gsl_ran_gaussian_tail): allow negative values for the tail cutoff parameter. Mon May 21 12:17:07 2001 Brian Gough * 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 * bernoulli.c (gsl_ran_bernoulli_pdf): removed unnecessary reference to gsl_sf.h Mon Apr 23 10:25:44 2001 Brian Gough * changed calls to old specfunc _impl functions to use new error handling conventions Tue Apr 17 19:57:59 2001 Brian Gough * 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 * 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 * 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 * pareto.c (gsl_ran_pareto): made arguments and documentation consistent Wed May 10 14:55:43 2000 Brian Gough * gsl-randist.c (main): fixed bug for lognormal (it was calling exppow) Tadhg O'Meara * 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 * 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 * logistic.c (gsl_ran_logistic_pdf): prevent overflow in computation of pdf for x < 0 Thu Oct 7 12:55:40 1999 Brian Gough * discrete.c (gsl_ran_discrete_free): removed unreachable code "return 0"; Fri Aug 6 16:02:08 1999 Brian Gough * 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 * discrete.c: converted to GSL_ERROR macros for error handling Tue Jul 27 14:14:38 1999 Brian Gough * 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 * discrete.c: (thanks to Frederick W. Wheeler ) changed the type stack_t to gsl_stack_t to avoid a conflict on HPUX. Sun Feb 28 20:41:18 1999 Brian Gough * 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 * 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 * 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 * 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 * 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 * added #include to all top-level source files 1998-11-06 * test.c: ensured that M_PI is available by #include Wed Sep 16 14:44:08 1998 Brian Gough * rayleigh.c: added rayleigh tail distribution Sat Sep 12 13:03:19 1998 Brian Gough * rayleigh.c: added rayleigh distribution Mon Aug 31 James Theiler * Makefile.am: added ../utils/libutils.a to some LDADD's Mon Aug 17 14:31:55 1998 Brian Gough * 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 * 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 * 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 * 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 * gsl-dist.c: renamed gsl-dist.c to gsl-randist.c, for consistency Tue Aug 4 12:29:17 1998 Brian Gough * 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 * 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 * gsl_randist.h: renamed gsl_ran_two_sided_exponential to gsl_ran_laplace 1998-07-26 Mark Galassi * 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 * 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 * 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 * 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 * converted everything to work with rng style generators Sun Apr 19 19:06:59 1998 Brian Gough * 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 * 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 * Makefile.am (lib_LIBRARIES): now it creates libgslrandist.a so that we have gaussian and poisson distributions.