1 2008-02-09 Brian Gough <bjg@network-theory.co.uk>
3 * gausszig.c (gsl_ran_gaussian_ziggurat): handle different
4 generator ranges explicitly
6 2007-09-20 Brian Gough <bjg@network-theory.co.uk>
8 * multinomial.c (gsl_ran_multinomial_lnpdf): Handle case where
11 2007-08-20 Brian Gough <bjg@network-theory.co.uk>
13 * test.c (integrate): perform the integration of the pdf with the
14 gsl_integration functions for accuracy (needed for dirichlet
17 * dirichlet.c (ran_dirichlet_small): handle underflow for small
20 2007-02-20 Brian Gough <bjg@network-theory.co.uk>
22 * gamma.c (gsl_ran_gamma): avoid an unnecessary function call to
23 gsl_ran_gamma_mt, since that maps back to gsl_ran_gamma now
25 2007-02-14 Brian Gough <bjg@network-theory.co.uk>
27 * test.c (testPDF): reduce the test sensitivity to avoid failures
28 caused by weaknesses in the underlying rng
30 2007-01-26 Brian Gough <bjg@network-theory.co.uk>
32 * gamma.c (gsl_ran_gamma): the Marsaglia Tsang method is now the
34 (gsl_ran_gamma_knuth): new function name, preserving the original
37 2006-08-30 Brian Gough <bjg@network-theory.co.uk>
39 * discrete.c (gsl_ran_discrete_preproc): use GSL_ENOMEM instead of
42 2006-04-18 Brian Gough <bjg@network-theory.co.uk>
44 * gausszig.c (gsl_ran_gaussian_ziggurat): fix prototype const
46 2006-03-26 Brian Gough <bjg@network-theory.co.uk>
48 * multinomial.c (gsl_ran_multinomial_lnpdf): use gsl_sf_lnfact
49 instead of gsl_sf_lngamma for an integer argument
51 2006-03-17 Brian Gough <bjg@network-theory.co.uk>
53 * binomial_tpe.c (gsl_ran_binomial): cast return values to
56 2006-02-27 Brian Gough <bjg@network-theory.co.uk>
58 * beta.c (gsl_ran_beta_pdf): work with logs avoid
61 2006-02-19 Brian Gough <bjg@network-theory.co.uk>
63 * gauss.c (gsl_ran_gaussian): reject case where x=-1 || y=-1
65 (gsl_ran_gaussian_ratio_method): add Leva bounds
67 * exppow.c (gsl_ran_exppow): added faster rejection methods
69 2006-02-01 Brian Gough <bjg@network-theory.co.uk>
71 * gausszig.c: added ziggurat gaussian (Jochen Voss)
73 2006-01-20 Brian Gough <bjg@network-theory.co.uk>
75 * binomial.c (gsl_ran_binomial_pdf): handle the cases p=0 and p=1
76 (gsl_ran_binomial_pdf): use log1p to calculate more accurately
79 2005-08-31 Brian Gough <bjg@network-theory.co.uk>
81 * test.c (main): free allocated memory before exit
83 2005-08-22 Brian Gough <bjg@network-theory.co.uk>
85 * binomial_tpe.c (gsl_ran_binomial): switch to the TPE algorithm
88 * binomial.c (gsl_ran_binomial_knuth): rename the original
89 binomial function to ..._knuth
91 2004-05-30 Brian Gough <bjg@network-theory.co.uk>
93 * landau.c (gsl_ran_landau): fix potential array bounds overflow
96 2004-04-22 Brian Gough <bjg@network-theory.co.uk>
98 * sphere.c (gsl_ran_dir_3d): removed unnecessary check for s==0.0
100 2003-07-25 Brian Gough <bjg@network-theory.co.uk>
102 * dirichlet.c: include gsl_sf_gamma.h instead of gsl_sf.h
104 2003-07-24 Brian Gough <bjg@network-theory.co.uk>
106 * binomial_tpe.c (gsl_ran_binomial_tpe): convert to double to
107 avoid possible signed/unsigned problems in comparison (ix > n)
108 (Stirling): removed spurious trailing ;
110 2003-05-14 Brian Gough <bjg@network-theory.co.uk>
112 * binomial_tpe.c: fast binomial algorithm using TPE method
114 * test.c: added the tests for the fast Binomial TPE routine
116 2003-02-09 Brian Gough <bjg@network-theory.co.uk>
118 * discrete.c (gsl_ran_discrete_preproc): fixed bug reported by
119 ahoward <ahoward@pollux.usc.edu>
121 2003-01-25 Brian Gough <brian.gough@network-theory.co.uk>
123 * chisq.c: corrected comments
125 2002-12-10 Brian Gough <bjg@network-theory.co.uk>
127 * multinomial.c (gsl_ran_multinomial): added multinomial
130 * dirichlet.c (gsl_ran_dirichlet_lnpdf): added logpdf function for
133 Tue Aug 27 19:08:33 2002 Brian Gough <bjg@network-theory.co.uk>
135 * dirichlet.c: added dirichlet distribution
137 Sat Aug 18 22:21:07 2001 Brian Gough <bjg@network-theory.co.uk>
139 * gsl-randist.c: moved to top-level directory
141 Wed Jul 18 12:57:55 2001 Brian Gough <bjg@network-theory.co.uk>
143 * landau.c: added Landau distribution from Dave Morrison
145 Sat Jun 23 12:30:38 2001 Brian Gough <bjg@network-theory.co.uk>
147 * gausstail.c (gsl_ran_gaussian_tail): allow negative values for
148 the tail cutoff parameter.
150 Mon May 21 12:17:07 2001 Brian Gough <bjg@network-theory.co.uk>
152 * shuffle.c (gsl_ran_choose): removed void * return value
153 (gsl_ran_sample): removed void * return value
155 Tue Apr 24 17:10:47 2001 Brian Gough <bjg@network-theory.co.uk>
157 * bernoulli.c (gsl_ran_bernoulli_pdf): removed unnecessary
158 reference to gsl_sf.h
160 Mon Apr 23 10:25:44 2001 Brian Gough <bjg@network-theory.co.uk>
162 * changed calls to old specfunc _impl functions to use new error
165 Tue Apr 17 19:57:59 2001 Brian Gough <bjg@network-theory.co.uk>
167 * weibull.c (gsl_ran_weibull): changed parameter mu to a, since it
169 (gsl_ran_weibull_pdf): changed parameter mu to a, since it
172 * logistic.c (gsl_ran_logistic): changed parameter mu to a, since it
174 (gsl_ran_logistic_pdf): changed parameter mu to a, since it
177 * laplace.c (gsl_ran_laplace): changed parameter mu to a, since it
179 (gsl_ran_laplace_pdf): changed parameter mu to a, since it
182 * exppow.c (gsl_ran_exppow): changed parameter mu to a, since it
184 (gsl_ran_exppow_pdf): changed parameter mu to a, since it
187 * cauchy.c (gsl_ran_cauchy): changed parameter mu to a, since it
189 (gsl_ran_cauchy_pdf): changed parameter mu to a, since it
192 Tue Feb 20 11:14:00 2001 Brian Gough <bjg@network-theory.co.uk>
194 * levy.c: added the skew symmetric routine from Keith Briggs,
195 changed the definition of the original function to match and not
196 use mu as a scale parameter.
198 2000-10-17 Brian Gough <bjg@inweb.aethos.co.uk>
200 * shuffle.c (gsl_ran_shuffle): replaced calls of the form
201 N*gsl_rng_uniform(r) with the integer form gsl_rng_uniform(r, N)
203 Thu Sep 21 18:41:53 2000 Brian Gough <bjg@network-theory.co.uk>
205 * pareto.c (gsl_ran_pareto): made arguments and documentation
208 Wed May 10 14:55:43 2000 Brian Gough <bjg@network-theory.co.uk>
210 * gsl-randist.c (main): fixed bug for lognormal (it was calling
211 exppow) Tadhg O'Meara <tadhg@net-cs.ucd.ie>
213 * gsl-randist.c (main): print out all the dimensions for dir-nd,
216 Tue Apr 25 20:45:14 2000 Brian Gough <bjg@network-theory.co.uk>
218 * shuffle.c (gsl_ran_sample): lifted the restriction that sampling
219 with replacement could only be done less than n times for n objects.
221 Tue Mar 14 21:31:46 2000 Brian Gough <bjg@network-theory.co.uk>
223 * logistic.c (gsl_ran_logistic_pdf): prevent overflow in
224 computation of pdf for x < 0
226 Thu Oct 7 12:55:40 1999 Brian Gough <bjg@network-theory.co.uk>
228 * discrete.c (gsl_ran_discrete_free): removed unreachable code
231 Fri Aug 6 16:02:08 1999 Brian Gough <bjg@network-theory.co.uk>
233 * sphere.c (gsl_ran_dir_nd): number of dimensions is now unsigned
236 * logarithmic.c (gsl_ran_logarithmic_pdf): removed warning about
237 passing arg 2 of `pow' as floating rather than integer due to
240 Sun Aug 1 20:29:43 1999 Brian Gough <bjg@network-theory.co.uk>
242 * discrete.c: converted to GSL_ERROR macros for error handling
244 Tue Jul 27 14:14:38 1999 Brian Gough <bjg@network-theory.co.uk>
246 * sphere.c (gsl_ran_dir_3d): use the Knop method only -- it is the
248 (gsl_ran_dir_2d_trig_method): split out the trig method as an
249 alternative for those platforms where it is faster
251 * bigauss.c: split out the bivariate gaussian into its own source
254 1999-06-30 Mark Galassi <rosalia@lanl.gov>
256 * discrete.c: (thanks to Frederick W. Wheeler
257 <wheeler@cipr.rpi.edu>) changed the type stack_t to gsl_stack_t to
258 avoid a conflict on HPUX.
260 Sun Feb 28 20:41:18 1999 Brian Gough <bjg@netsci.freeserve.co.uk>
262 * gsl-randist.c (main): change cfree() to free(), which is
265 * discrete.c (gsl_ran_discrete_preproc): removed warning, pTotal
266 is now initialized to zero.
268 1999-01-31 James Theiler <jt@lanl.gov>
269 * gauss.c added a new function gsl_ran_ugaussian_tail() which
270 provides random numbers out on the tail of a gaussian. I also
271 added (but then #ifdef'd out) a second implementation of ordinary
272 gaussian numbers. This second implementation passes the tests
273 okay, but it is a touch slower on my home Pentium.
274 * gsl_randist.h added prototypes
275 * test.c added tests for new gaussian tail function; also altered
276 testMoment's ugaussian range (-1,1) value from .68 to a more
278 * ../doc/random.texi further updated
280 1999-01-30 James Theiler <jt@lanl.gov>
281 * discrete.c added implementation of Walker's algorithm for
282 rapidly choosing a random integer k where the k's are distributed
283 by a user-supplied array of probabilities P[k]. This includes
284 functions gsl_ran_discrete(), gsl_ran_discrete_preproc(),
285 gsl_ran_discrete_free(), and gsl_ran_discrete_pdf().
286 * gsl_randist.h added definition of structure gsl_ran_discrete_t,
287 also prototypes of new functions defined in discrete.c
288 * test.c added tests for gsl_ran_discrete(), also
289 * test.c made some essentially cosmetic changes:
290 1/ redefined FUNC and FUNC2 macros so now output looks like
291 "test gsl_ran_poisson" instead of "gsl_ran_test_poisson"
292 2/ changed names of toplevel tests, eg test_moments->testMoments,
293 test_pdf->testPDF, etc, to distinguish them from all the individual
294 functions test_poisson, test_binomial, etc.
296 * ../doc/random.texi updated to reflect the new discrete functions,
297 as well as the new implementations of the sphere.c routines.
299 1999-01-28 James Theiler <jt@lanl.gov>
300 * sphere.c modified gsl_ran_dir_3d, to speed it up about 2x
301 also modified gsl_ran_dir_2d, providing alternative algorithms
302 (#ifdef'd appropriately). which is faster is machine dependent.
303 also gsl_ran_dir_nd for n-dimensional direction, using
304 gaussian random variables, normalized to the unit sphere
305 also added ref's to Knuth and others describing the algorithms
306 * gsl_randist.h added gsl_ran_dir_nd() prototype
307 * gsl-randist.c added dir-nd option
309 Tue Dec 15 23:08:57 1998 Brian Gough <bjg@vvv.lanl.gov>
311 * updated all the functions depending on gsl_sf to use the new
312 special function interface, based on gsl_sf_result
314 Tue Nov 17 17:02:54 1998 Brian Gough <bjg@vvv.lanl.gov>
316 * added #include <config.h> to all top-level source files
318 1998-11-06 <bjg@ancho.lanl.gov>
320 * test.c: ensured that M_PI is available by #include <gsl_math.h>
322 Wed Sep 16 14:44:08 1998 Brian Gough <bjg@vvv.lanl.gov>
324 * rayleigh.c: added rayleigh tail distribution
326 Sat Sep 12 13:03:19 1998 Brian Gough <bjg@vvv.lanl.gov>
328 * rayleigh.c: added rayleigh distribution
330 Mon Aug 31 James Theiler <jt@lanl.gov>
332 * Makefile.am: added ../utils/libutils.a to some LDADD's
334 Mon Aug 17 14:31:55 1998 Brian Gough <bjg@vvv.lanl.gov>
336 * gsl_randist.h: renamed discrete probability distribution
337 parameters to use consistent k,n notation (k = sample, n = total,
338 e.g. p(k) = function(k,n) )
340 Wed Aug 12 14:02:31 1998 Brian Gough <bjg@vvv.lanl.gov>
342 * lognormal.c: added zeta and sigma (location and scale parameters)
344 * logarithmic.c (gsl_ran_logarithmic): added logarithmic distribution
346 Mon Aug 10 14:41:15 1998 Brian Gough <bjg@vvv.lanl.gov>
348 * gsl-randist.c: added random direction functions
350 * gamma.c: added the scale paramter for the gamma distribution
352 Thu Aug 6 12:19:59 1998 Brian Gough <bjg@vvv.lanl.gov>
354 * gauss.c (gsl_ran_bivariate_gaussian): added bivariate with
357 * hyperg.c: renamed variables, fixed bug
359 Wed Aug 5 11:21:45 1998 Brian Gough <bjg@vvv.lanl.gov>
361 * gsl-dist.c: renamed gsl-dist.c to gsl-randist.c, for
364 Tue Aug 4 12:29:17 1998 Brian Gough <bjg@vvv.lanl.gov>
366 * gsl-dist.c: a program for generating samples from the
369 * levy.c (gsl_ran_levy): take care of special case, a=1
371 * logistic.c: allow scale parameter, mu
373 * weibull.c: allow scale parameter, mu
375 * pareto.c: allow scale parameter, mu
377 * exppow.c: handle the case a<1 using a transformation of the
380 * gamma.c (gsl_ran_gamma_int): removed the check for
381 GSL_LOGINIFINITY since underflow can't occur for 32-bit random
382 numbers in double precision.
384 Mon Aug 3 13:09:39 1998 Brian Gough <bjg@vvv.lanl.gov>
386 * test.c: added tests for shuffle and choose
388 * pascal.c: added the Pascal distribution
390 * hyperg.c: added the hypergeometric distribution
392 Fri Jul 31 12:52:12 1998 Brian Gough <bjg@vvv.lanl.gov>
394 * gsl_randist.h: renamed gsl_ran_two_sided_exponential to
397 1998-07-26 Mark Galassi <rosalia@cygnus.com>
399 * Makefile.am (INCLUDES): added -I$(top_srcdir), since gsl_math.h
400 is needed, and that is in the top level source directory. This is
401 necessary for using a separate build directory.
403 Tue Jul 14 12:39:30 1998 Brian Gough <bjg@vvv.lanl.gov>
405 * nbinomial.c: added Negative Binomial distribution
407 * bernoulli.c: added Bernoulli distribution
409 * poisson.c (gsl_ran_poisson): fixed a serious bug in the unrolled
410 recursion which led to an incorrect result being returned for the
411 large t case. This shows the importance of tests that cover all
414 * erlang.c (gsl_ran_erlang_pdf): renamed mu to a for consistency
416 Thu Jul 2 15:47:05 1998 Brian Gough <bjg@vvv.lanl.gov>
418 * added some extra distributions, lognormal.c gaussian.c
419 logistic.c pareto.c geometric.c erlang.c chisq.c weibull.c,
420 although they aren't finished yet
422 Wed Jul 1 11:56:06 1998 Brian Gough <bjg@vvv.lanl.gov>
424 * replace do { u = gsl_rng_uniform(r) } while (u == 0) by a direct
425 call to gsl_rng_uniform_pos.
427 Sun Jun 28 14:21:13 1998 Brian Gough <bjg@vvv.lanl.gov>
429 * converted everything to work with rng style generators
431 Sun Apr 19 19:06:59 1998 Brian Gough <bjg@vvv.lanl.gov>
433 * made the 'gsl-dist' programs just output a single column of
434 their random numbers (previously some of the programs printed both
435 the uniform variate and the transformed number)
437 * got rid of the 'bench-' programs. We will have a full testing
440 * renamed the installed programs from 'dist' to 'gsl-dist' so that
441 they don't overwrite anything, e.g. it's possible the user might
442 have other programs called 'gauss' or 'gamma' installed in
445 Sat Mar 21 16:09:16 1998 Brian Gough <bjg@vvv.lanl.gov>
447 * laplace.c (gsl_ran_laplace): added a Laplace distribution
448 (two-sided exponential)
450 * lorentz.c (gsl_ran_lorentzian): added a Lorentz distribution
452 1998-01-30 Mark Galassi <rosalia@cygnus.com>
454 * Makefile.am (lib_LIBRARIES): now it creates libgslrandist.a so
455 that we have gaussian and poisson distributions.